satkit 0.9.2

Satellite Toolkit
Documentation
[build-system]
requires = ["setuptools", "setuptools-rust", "setuptools-scm>=8"]
build-backend = "setuptools.build_meta"

[project]
name = "satkit"
dependencies = ["numpy>=1.0.0", "satkit-data>=0.7.0"]
requires-python = ">= 3.8"
authors = [{ name = "Steven Michael", email = "ssmichael@gmail.com" }]
maintainers = [{ name = "Steven Michael", email = "ssmichael@gmail.com" }]
readme = "README.md"
version = "0.9.1"
license = { file = "LICENSE" }
description = "Satellite Orbital Dynamics Toolkit"
keywords = [
    "satellite",
    "orbit",
    "astrodynamics",
    "SGP4",
    "TLE",
    "JPL",
    "Ephemeris",
]
classifiers = [
    # How mature is this project? Common values are
    #   3 - Alpha
    #   4 - Beta
    #   5 - Production/Stable
    "Development Status :: 4 - Beta",

    # Specify the Python versions you support here.
    "Programming Language :: Python :: 3.8",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Programming Language :: Python :: 3.14",
]
[project.optional-dependencies]
test = ["pytest", "xmltodict"]


[tool.setuptools.packages.find]
where = ["python"]
include = ["satkit*"]
exclude = ["test*", "docs*", "examples*"]

[tool.cibuildwheel]
build = [
    "cp314-*",
    "cp313-*",
    "cp312-*",
    "cp311-*",
    "cp310-*",
    "cp39-*",
    "cp38-*",
]
test-skip = "*-macosx_arm64 *-macosx_universal2:arm64"
skip = ["pp*", "*_i686", "*_s390x", "*_ppc64le", "*-musllinux*"]


[tool.cibuildwheel.macos]
archs = ["x86_64", "arm64"]
before-build = [
    "pip install -U setuptools-rust",
    "rustup default stable",
    "rustup target add aarch64-apple-darwin",
    "rustup target add x86_64-apple-darwin",
    "rustup show",
]
environment = { PATH = "$PATH:$HOME/.cargo/bin", MACOSX_DEPLOYMENT_TARGET = "10.12" }
# Skip trying to test arm64 builds on Intel Macs
test-requires = "pytest xmltodict"
test-command = [
    "SATKIT_DATA={package}/astro-data SATKIT_TESTVEC_ROOT={package}/satkit-testvecs pytest {project}/python/test/test.py",
]


[tool.cibuildwheel.linux]
archs = ["native"]
environment = { PATH = "$PATH:$HOME/.cargo/bin" }
before-build = [
    "pip install -U setuptools-rust",
    "curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain=stable --profile=minimal -y",
    "rustup show",
]
test-requires = "pytest xmltodict"
test-command = [
    "SATKIT_DATA={package}/astro-data SATKIT_TESTVEC_ROOT={package}/satkit-testvecs pytest {project}/python/test/test.py",
]

[tool.cibuildwheel.windows]
archs = ["AMD64"]
environment = { PATH = '$UserProfile\.cargo\bin;$PATH' }
before-build = [
    "pip install -U setuptools-rust",
    "rustup toolchain install stable-x86_64-pc-windows-msvc",
    "rustup default stable-x86_64-pc-windows-msvc",
    "rustup override set stable-x86_64-pc-windows-msvc",
    "rustup show",
]
test-requires = "pytest xmltodict"
before-test = [
    "set SATKIT_DATA={package}\\astro-data",
    "set SATKIT_TESTVEC_ROOT={package}\\satkit-testvecs",
]
test-command = [
    "set SATKIT_DATA={package}\\astro-data&&set SATKIT_TESTVEC_ROOT={package}\\satkit-testvecs&&pytest {project}\\python\\test\\test.py",
]


[[tool.setuptools-rust.ext-modules]]
features = ["pybindings"]
args = ["--crate-type", "cdylib"]
target = "satkit/satkit"
path = "Cargo.toml"
binding = "PyO3"
py-limited-api = "auto"

[tool.setuptools_scm]
version_file = "python/satkit/_version.py"