|
| 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 | + |
1 | 77 | [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" |
4 | 83 |
|
5 | 84 |
|
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" |
63 | 87 |
|
64 | 88 |
|
65 | 89 | [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" |
72 | 92 |
|
73 | 93 |
|
74 | 94 | [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 | + ] |
87 | 112 |
|
88 | 113 |
|
89 | 114 | [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 | + ] |
95 | 122 |
|
96 | 123 | [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 |
114 | 147 |
|
115 | 148 |
|
116 | 149 | [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 |
142 | 191 |
|
143 | 192 |
|
144 | 193 | [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 | + ] |
0 commit comments