Pybind11 check_orbit extension built with CMake
Project description
check_orbit
A high-performance Python extension for checking orbital geometry bounds, built with C++ and pybind11.
?? Installation
The easiest way to install is from PyPI:
pip install check-orbit
Pre-built wheels are available for:
- Windows (x86_64): Python 3.8-3.12
- macOS (Intel x86_64 & Apple Silicon arm64): Python 3.8-3.12
- Linux (x86_64 manylinux): Python 3.8-3.12
No build tools required! ??
?? Usage
import check_orbit
# Check if orbit geometry intersects with lat/lon bounds
geom_blob = b"0,1,45.5,123.4\n1,2,46.2,124.1\n"
result = check_orbit.check_orbit_in_bounds(
geom_blob,
min_lat=45.0,
max_lat=47.0,
start_lon=120.0,
end_lon=130.0
)
print(result) # True
# Load geometry from SQLite database
latitudes, longitudes = check_orbit.load_geom_from_db(
orbit_number=12345,
db_path="orbits.db"
)
??? Building from Source
If you need to build from source (e.g., for development):
Prerequisites
- Python development headers and a C/C++ toolchain:
- macOS: Xcode command line tools (
xcode-select --install) - Windows: Visual Studio 2017+ with C++ tools
- Linux: GCC or Clang
- macOS: Xcode command line tools (
- CMake 3.15+
Build and Install
python -m pip install --upgrade pip setuptools wheel scikit-build pybind11 cmake
cd NewPicker/core/cpp
python -m pip install .
Create Distribution Wheel
cd NewPicker/core/cpp
python -m pip wheel . -w dist
??? Development & Contributing
Project Structure
core/cpp/
??? check_orbit.cpp # C++ implementation
??? CMakeLists.txt # CMake build configuration
??? pyproject.toml # Python package metadata
??? check_orbit/ # Python package
? ??? __init__.py # Package initialization
??? .circleci/
??? config.yml # Multi-platform CI/CD
Building Multi-Platform Wheels
We use CircleCI to automatically build wheels for all platforms. See CIRCLECI_SETUP.md for setup instructions.
For local multi-platform builds, use:
# Requires appropriate platform and build tools
python -m cibuildwheel --platform <windows|macos|linux>
Running Tests
cd NewPicker/core/cpp
python -m pytest tests/
?? Documentation
- CIRCLECI_SETUP.md - Set up automated multi-platform builds
- BUILD_SUMMARY.md - Build troubleshooting and solutions
- PUBLISHING_GUIDE.md - How to publish to PyPI
- TROUBLESHOOTING.md - Common build errors and fixes
?? License
See LICENSE for details.
?? Links
? Performance
This extension uses optimized C++ code for fast geometry checking:
- Native C++ performance (100-1000x faster than pure Python)
- Minimal memory overhead
- GIL release for multi-threaded applications
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file check_orbit-0.1.2-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: check_orbit-0.1.2-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 670.7 kB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
027b4813a9c4e12d87995407f9d8ebdb7a3bea072a2b4fd0571f23e6a864bd2b
|
|
| MD5 |
5b3a8a6f2628f69c02838e2b5e1fb224
|
|
| BLAKE2b-256 |
f41a59d2b8637b486f2cdeeaa5aaa88301e85390f33c3ebda62d201f23d81ce0
|
File details
Details for the file check_orbit-0.1.2-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: check_orbit-0.1.2-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 651.2 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b00aac6d3090f4e8c51844640ff7d7b446bd867d5c42ab47c0b700c00fcbffc
|
|
| MD5 |
85658c7b92e51ae24302858802951eb3
|
|
| BLAKE2b-256 |
d2b8a7abbf96212969d3fe0727330f51fcd6e165b2eac1350ec6ee91c3cb514d
|
File details
Details for the file check_orbit-0.1.2-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: check_orbit-0.1.2-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 651.3 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b6bf46cb0594b8c457a40489b9df720f83850512dd20e2af2498f15d31288c3
|
|
| MD5 |
94786fe1609881085f5a6da4136cd3d0
|
|
| BLAKE2b-256 |
72891b0fec9f45c759ebc3acf5e13868b095f9417c0744c244a2c9a30b95a4a8
|
File details
Details for the file check_orbit-0.1.2-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: check_orbit-0.1.2-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 651.2 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
775a26e2660071730003a70e80d1c344be6c077f2fb684673b2ace98308ffe2f
|
|
| MD5 |
f8890bc13b1634294b11c49941a2a29e
|
|
| BLAKE2b-256 |
ddd4437b31af665a4eadff05f79393c2ae6483b9c5702e80756d9d38d0b56340
|
File details
Details for the file check_orbit-0.1.2-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: check_orbit-0.1.2-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 650.0 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
08d3ec439b7d98745f6292c0740b04d35e2476583baee8bd81228086873f2df7
|
|
| MD5 |
2d5ca9d646c0104f50fd7334239c8db9
|
|
| BLAKE2b-256 |
1f153dbd4d56dcf1974b21c533a84443fa916fc5412942ed66934f31dca8b8b1
|
File details
Details for the file check_orbit-0.1.2-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: check_orbit-0.1.2-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 649.3 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06b99e20a34574f8b1a3c8fa4cc81ddb82aba523724534bb565682760e489112
|
|
| MD5 |
21e12eed53c0e560a740f7696e07fcab
|
|
| BLAKE2b-256 |
6c4a8c5d48d3d3eb85147f05a83411fb473f6fc9306d32f905f4cd46ce74d3ab
|
File details
Details for the file check_orbit-0.1.2-cp38-cp38-win_amd64.whl.
File metadata
- Download URL: check_orbit-0.1.2-cp38-cp38-win_amd64.whl
- Upload date:
- Size: 649.8 kB
- Tags: CPython 3.8, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d992f0e38782b18be273cbd31e3345ccebb2462af4a3bcd687d0c9a30db248c9
|
|
| MD5 |
fa8c8367117a88e20364fb57716c16f7
|
|
| BLAKE2b-256 |
710caf824d219b9a6294b64c1d8d78e08ddcb601238d0aeb77cd33fb22e00bb5
|