[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.3"
license = { file = "LICENSE" }
description = "Satellite Orbital Dynamics Toolkit"
keywords = [
"satellite",
"orbit",
"astrodynamics",
"SGP4",
"TLE",
"JPL",
"Ephemeris",
]
classifiers = [
"Development Status :: 4 - Beta",
"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]
license-files = ["LICENSE"]
[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" }
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"]
no-default-features = true
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"