Skip to content

Commit 4224512

Browse files
committed
🔧 config: update dependency specifcation
1 parent d66d085 commit 4224512

File tree

3 files changed

+2807
-137
lines changed

3 files changed

+2807
-137
lines changed

pyproject.toml

Lines changed: 187 additions & 136 deletions
Original file line numberDiff line numberDiff line change
@@ -1,156 +1,207 @@
1+
[project]
2+
name = "galactic_dynamics_interoperability"
3+
authors = [
4+
{ name = "Galactic Dynamics Interoperability Library Maintainers", email = "nstarman@users.noreply.github.com" },
5+
]
6+
description = "Interoperability Between Galactic Dynamics Libraries"
7+
readme = "README.md"
8+
license.file = "LICENSE"
9+
requires-python = ">=3.10"
10+
classifiers = [
11+
"Development Status :: 1 - Planning",
12+
"Intended Audience :: Developers",
13+
"Intended Audience :: Science/Research",
14+
"License :: OSI Approved :: MIT License",
15+
"Operating System :: OS Independent",
16+
"Programming Language :: Python :: 3 :: Only",
17+
"Programming Language :: Python :: 3",
18+
"Programming Language :: Python :: 3.10",
19+
"Programming Language :: Python :: 3.11",
20+
"Programming Language :: Python :: 3.12",
21+
"Programming Language :: Python",
22+
"Topic :: Scientific/Engineering",
23+
"Typing :: Typed",
24+
]
25+
dynamic = [
26+
"version",
27+
]
28+
dependencies = [
29+
"plum-dispatch",
30+
]
31+
32+
[project.optional-dependencies]
33+
all = [
34+
"galactic_dynamics_interoperability[gala]",
35+
"galactic_dynamics_interoperability[galax]",
36+
"galactic_dynamics_interoperability[galpy]",
37+
]
38+
galax = [
39+
"galax; python_version >= '3.11'",
40+
]
41+
gala = [
42+
"gala",
43+
]
44+
galpy = [
45+
"galpy",
46+
]
47+
48+
[project.urls]
49+
Homepage = "https://github.com/GalacticDynamics/galactic_dynamics_interoperability"
50+
"Bug Tracker" = "https://github.com/GalacticDynamics/galactic_dynamics_interoperability/issues"
51+
Discussions = "https://github.com/GalacticDynamics/galactic_dynamics_interoperability/discussions"
52+
Changelog = "https://github.com/GalacticDynamics/galactic_dynamics_interoperability/releases"
53+
54+
55+
[dependency-groups]
56+
dev = [
57+
"ipykernel>=6.29.5",
58+
"cz-conventional-gitmoji>=0.6.1",
59+
{ include-group = "docs" },
60+
{ include-group = "test" },
61+
"pre-commit>=4.1.0",
62+
]
63+
test = [
64+
"pytest >=6",
65+
"pytest-cov >=3",
66+
"sybil",
67+
]
68+
docs = [
69+
"furo>=2023.08.17",
70+
"myst_parser>=0.13",
71+
"sphinx>=7.0",
72+
"sphinx_autodoc_typehints",
73+
"sphinx_copybutton",
74+
]
75+
76+
177
[build-system]
2-
requires = ["hatchling", "hatch-vcs"]
3-
build-backend = "hatchling.build"
78+
requires = [
79+
"hatch-vcs",
80+
"hatchling",
81+
]
82+
build-backend = "hatchling.build"
483

584

6-
[project]
7-
name = "galactic_dynamics_interoperability"
8-
authors = [
9-
{ name = "Galactic Dynamics Interoperability Library Maintainers", email = "nstarman@users.noreply.github.com" },
10-
]
11-
description = "Interoperability Between Galactic Dynamics Libraries"
12-
readme = "README.md"
13-
license.file = "LICENSE"
14-
requires-python = ">=3.10"
15-
classifiers = [
16-
"Development Status :: 1 - Planning",
17-
"Intended Audience :: Science/Research",
18-
"Intended Audience :: Developers",
19-
"License :: OSI Approved :: MIT License",
20-
"Operating System :: OS Independent",
21-
"Programming Language :: Python",
22-
"Programming Language :: Python :: 3",
23-
"Programming Language :: Python :: 3 :: Only",
24-
"Programming Language :: Python :: 3.10",
25-
"Programming Language :: Python :: 3.11",
26-
"Programming Language :: Python :: 3.12",
27-
"Topic :: Scientific/Engineering",
28-
"Typing :: Typed",
29-
]
30-
dynamic = ["version"]
31-
dependencies = [
32-
"plum-dispatch",
33-
]
34-
35-
[project.optional-dependencies]
36-
all = ["galax", "gala", "galpy"]
37-
galax = ["galax"]
38-
gala = ["gala"]
39-
galpy = ["galpy"]
40-
test = [
41-
"pytest >=6",
42-
"pytest-cov >=3",
43-
"sybil",
44-
]
45-
docs = [
46-
"sphinx>=7.0",
47-
"myst_parser>=0.13",
48-
"sphinx_copybutton",
49-
"sphinx_autodoc_typehints",
50-
"furo>=2023.08.17",
51-
]
52-
dev = [
53-
"galactic_dynamics_interoperability[all]",
54-
"galactic_dynamics_interoperability[test]",
55-
"galactic_dynamics_interoperability[docs]",
56-
]
57-
58-
[project.urls]
59-
Homepage = "https://github.com/GalacticDynamics/galactic_dynamics_interoperability"
60-
"Bug Tracker" = "https://github.com/GalacticDynamics/galactic_dynamics_interoperability/issues"
61-
Discussions = "https://github.com/GalacticDynamics/galactic_dynamics_interoperability/discussions"
62-
Changelog = "https://github.com/GalacticDynamics/galactic_dynamics_interoperability/releases"
85+
[tool.commitizen]
86+
name = "cz_gitmoji"
6387

6488

6589
[tool.hatch]
66-
version.source = "vcs"
67-
build.hooks.vcs.version-file = "src/galactic_dynamics_interoperability/_version.py"
68-
69-
[tool.hatch.envs.default]
70-
features = ["test"]
71-
scripts.test = "pytest {args}"
90+
version.source = "vcs"
91+
build.hooks.vcs.version-file = "src/galactic_dynamics_interoperability/_version.py"
7292

7393

7494
[tool.pytest.ini_options]
75-
minversion = "6.0"
76-
addopts = ["-ra", "--showlocals", "--strict-markers", "--strict-config"]
77-
xfail_strict = true
78-
filterwarnings = [
79-
"error",
80-
"ignore:ast\\.Str is deprecated:DeprecationWarning", # from Sybil
81-
"ignore:Attribute s is deprecated", # from Sybil
82-
]
83-
log_cli_level = "INFO"
84-
testpaths = [
85-
"tests",
86-
]
95+
minversion = "8.0"
96+
addopts = [
97+
"--showlocals",
98+
"--strict-config",
99+
"--strict-markers",
100+
"-ra",
101+
]
102+
xfail_strict = true
103+
filterwarnings = [
104+
"error",
105+
"ignore:Attribute s is deprecated", # from Sybil
106+
"ignore:ast\\.Str is deprecated:DeprecationWarning", # from Sybil
107+
]
108+
log_cli_level = "INFO"
109+
testpaths = [
110+
"tests",
111+
]
87112

88113

89114
[tool.coverage]
90-
run.source = ["galactic_dynamics_interoperability"]
91-
report.exclude_also = [
92-
'\.\.\.',
93-
'if typing.TYPE_CHECKING:',
94-
]
115+
run.source = [
116+
"galactic_dynamics_interoperability",
117+
]
118+
report.exclude_also = [
119+
'\.\.\.',
120+
'if typing.TYPE_CHECKING:',
121+
]
95122

96123
[tool.mypy]
97-
files = ["src"]
98-
python_version = "3.10"
99-
warn_unused_configs = true
100-
strict = true
101-
enable_error_code = ["ignore-without-code", "redundant-expr", "truthy-bool"]
102-
warn_unreachable = true
103-
disallow_untyped_defs = false
104-
disallow_incomplete_defs = false
105-
106-
[[tool.mypy.overrides]]
107-
module = "galactic_dynamics_interoperability.*"
108-
disallow_untyped_defs = true
109-
disallow_incomplete_defs = true
110-
111-
[[tool.mypy.overrides]]
112-
module = "plum.*"
113-
ignore_missing_imports = true
124+
files = [
125+
"src",
126+
]
127+
python_version = "3.10"
128+
warn_unused_configs = true
129+
strict = true
130+
enable_error_code = [
131+
"ignore-without-code",
132+
"redundant-expr",
133+
"truthy-bool",
134+
]
135+
warn_unreachable = true
136+
disallow_untyped_defs = false
137+
disallow_incomplete_defs = false
138+
139+
[[tool.mypy.overrides]]
140+
module = "galactic_dynamics_interoperability.*"
141+
disallow_untyped_defs = true
142+
disallow_incomplete_defs = true
143+
144+
[[tool.mypy.overrides]]
145+
module = "plum.*"
146+
ignore_missing_imports = true
114147

115148

116149
[tool.ruff]
117-
src = ["src"]
118-
target-version = "py310"
119-
120-
[tool.ruff.lint]
121-
extend-select = ["ALL"]
122-
ignore = [
123-
"ANN401", # Dynamically typed expressions
124-
"D203", # 1 blank line required before class docstring
125-
"D213", # multi-line-summary-second-line
126-
"ISC001", # Conflicts with formatter
127-
"PLR09", # Too many <...>
128-
"PLR2004", # Magic value used in comparison
129-
"TCH001", # Move into type-checking block <-- plum-dispatch
130-
]
131-
132-
[tool.ruff.lint.per-file-ignores]
133-
"tests/**" = ["ANN", "INP001", "S101", "T20"]
134-
"noxfile.py" = ["T20"]
135-
"docs/conf.py" = ["INP001"]
136-
137-
[tool.ruff.lint.isort]
138-
extra-standard-library = ["typing_extensions"]
139-
known-first-party = ["galactic_dynamics_interoperability"]
140-
combine-as-imports = true
141-
150+
src = [
151+
"src",
152+
]
153+
target-version = "py310"
154+
155+
[tool.ruff.lint]
156+
extend-select = [
157+
"ALL",
158+
]
159+
ignore = [
160+
"ANN401", # Dynamically typed expressions
161+
"D203", # 1 blank line required before class docstring
162+
"D213", # multi-line-summary-second-line
163+
"ISC001", # Conflicts with formatter
164+
"PLR09", # Too many <...>
165+
"PLR2004", # Magic value used in comparison
166+
"TCH001", # Move into type-checking block <-- plum-dispatch
167+
]
168+
169+
[tool.ruff.lint.per-file-ignores]
170+
"tests/**" = [
171+
"ANN",
172+
"INP001",
173+
"S101",
174+
"T20",
175+
]
176+
"noxfile.py" = [
177+
"T20",
178+
]
179+
"docs/conf.py" = [
180+
"INP001",
181+
]
182+
183+
[tool.ruff.lint.isort]
184+
extra-standard-library = [
185+
"typing_extensions",
186+
]
187+
known-first-party = [
188+
"galactic_dynamics_interoperability",
189+
]
190+
combine-as-imports = true
142191

143192

144193
[tool.pylint]
145-
py-version = "3.10"
146-
ignore-paths = [".*/_version.py"]
147-
reports.output-format = "colorized"
148-
similarities.ignore-imports = "yes"
149-
messages_control.disable = [
150-
"design",
151-
"fixme",
152-
"line-too-long",
153-
"missing-module-docstring",
154-
"missing-function-docstring",
155-
"wrong-import-position",
156-
]
194+
py-version = "3.10"
195+
ignore-paths = [
196+
".*/_version.py",
197+
]
198+
reports.output-format = "colorized"
199+
similarities.ignore-imports = "yes"
200+
messages_control.disable = [
201+
"design",
202+
"fixme",
203+
"line-too-long",
204+
"missing-function-docstring",
205+
"missing-module-docstring",
206+
"wrong-import-position",
207+
]

src/galactic_dynamics_interoperability/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
66
"""
77

8-
__all__ = [
8+
__all__ = [ # noqa: RUF022
99
"__version__",
1010
# Core
1111
"convert_potential",

0 commit comments

Comments
 (0)