-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
98 lines (86 loc) · 2.86 KB
/
pyproject.toml
File metadata and controls
98 lines (86 loc) · 2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
[project]
name = "adam-assist"
dynamic = ["version"]
description = 'ADAM Core Propagator class using ASSIST'
authors = [
{ name = "Alec Koumjian", email = "akoumjian@gmail.com" },
{ name = "Kathleen Kiker" }
]
readme = "README.md"
license = { file = "LICENSE" }
keywords = ["astronomy", "orbital mechanics", "propagation"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Topic :: Scientific/Engineering :: Astronomy"
]
requires-python = ">3.11.0,<3.13"
dependencies = [
"adam-core>=0.4.0",
"naif-de440",
"jpl-small-bodies-de441-n16",
# Temporary until SPK support is merged and released upstream
"assist-adam-fork==1.1.9.post1",
"numpy",
"ray",
"spiceypy>=6.0.0",
"rebound>=4.4.10",
"timezonefinder==8.0.0",
]
[build-system]
requires = ["pdm-backend"]
build-backend = "pdm.backend"
[tool.pdm.build]
includes = ["src/adam_assist/"]
[tool.pdm.version]
source = "scm"
write_to = "adam_assist/version.py"
write_template = "__version__ = '{}'"
[project.urls]
"Documentation" = "https://github.com/B612-Asteroid-Institute/adam-assist#readme"
"Issues" = "https://github.com/B612-Asteroid-Institute/adam-assist/issues"
"Source" = "https://github.com/B612-Asteroid-Institute/adam-assist"
[project.optional-dependencies]
dev = [
"ruff",
"pdm",
"mypy",
"pytest",
"pytest-cov",
"pytest-mock",
"pytest-benchmark",
"scalene>=1.5.53",
"py-spy>=0.4.1",
"snakeviz>=2.2.2",
"line-profiler>=5.0.0",
"black",
"isort",
"ipython",
]
[tool.pdm.scripts]
check = {composite = ["lint", "typecheck"]}
format = { composite = ["black ./src/adam_assist", "isort ./src/adam_assist"]}
lint = { composite = ["ruff check ./src/adam_assist", "black --check ./src/adam_assist", "isort --check-only ./src/adam_assist"] }
fix = "ruff check ./src/adam_assist --fix"
typecheck = "mypy --strict ./src/adam_assist"
test = "pytest --benchmark-skip {args}"
doctest = "pytest --doctest-plus --doctest-only"
benchmark = "pytest --benchmark-only {args}"
coverage = "pytest --cov=src --cov-report=xml"
# Convenience scripts for local and CI benchmark workflows (pytest-benchmark)
# Save a named run for later comparison
bench_save = "pytest --benchmark-only --benchmark-save={args}"
# Export the latest run to JSON (useful for CI artifacts)
bench_export = "pytest --benchmark-only --benchmark-autosave --benchmark-json=benchmark.json {args}"
# Compare two saved runs (ref and contender). Example usage:
# pdm run bench_compare --benchmark-compare=0001 --benchmark-compare=0002
bench_compare = "pytest --benchmark-only --benchmark-compare {args}"
[tool.black]
line-length = 88
[tool.isort]
profile = "black"
[tool.mypy]
ignore_missing_imports = true