-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
139 lines (126 loc) · 3.94 KB
/
pyproject.toml
File metadata and controls
139 lines (126 loc) · 3.94 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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
[project]
name = "mast_contributor_tools"
description = "This package contains a set of tools for use by MAST community contributors (High Level Science Products and MAST Community Contributed Missions). "
requires-python = ">=3.11"
readme = { file = "README.md", content-type = "text/x-rst" }
license = { file = "licenses/LICENSE.rst", content-type = "text/plain" }
authors = [
{ name = "Mikulski Archive for Space Telescopes", email = "mast_contrib@stsci.edu" },
]
dependencies = [
"astropy >= 7.2.0",
"click >= 8.1.0",
"openpyxl >= 3.1.5",
"pandas >= 2.3.3",
"pyyaml > 6.0.1",
"setuptools-scm >= 8.3.1",
"tqdm >= 4.67.1",
]
dynamic = ["version"]
[project.optional-dependencies]
dev = [
"pre-commit >=4.2.0",
"ruff >= 0.11.13",
]
test = [
"pytest",
"pytest-doctestplus",
"pytest-cov",
"pytest-mock",
]
docs = [
"linkify-it-py",
"myst-parser",
"sphinx",
"sphinx-astropy",
"sphinx-autobuild",
"sphinx-automodapi",
"sphinx-book-theme",
"sphinx-rtd-theme",
"sphinx-copybutton",
"enchant",
"sphinxcontrib-spelling",
"sphinx_click",
"tomli; python_version <\"3.11\"",
]
all = ["mast_contributor_tools[dev, test, docs]"]
# Customize ruff lint here. The default setting if not specified will follow the configurations on https://docs.astral.sh/ruff/configuration/
[build-system]
requires = [
"setuptools>=62.1",
"setuptools_scm[toml]>=6.2",
"wheel",]
build-backend = "setuptools.build_meta"
[tool.ruff]
line-length = 120
[tool.ruff.lint]
select = [
"E4", # pycodestyle (E4xx): Various style errors (like indentation)
"E7", # pycodestyle (E7xx): Statement issues (e.g., multiple statements on one line)
"E9", # pycodestyle (E9xx): Syntax errors detected
"F", # Pyflakes checks: General code correctness
"I", # Import-related checks (e.g., isort ordering)
"PL", # Pylint checks (if integrated)
"C901", # McCabe complexity check: function too complex
"RUF010", # Ruff-specific code checks (e.g., invalid `noqa` directives)
"W291" # pycodestyle trailing whitespace errors
]
ignore = ["PLR"] # Ignore specific Pylint refactor messages
[project.urls]
repository = "https://github.com/spacetelescope/mast_contributor_tools"
[project.scripts]
mct = "mast_contributor_tools.mast_cli:cli"
[tool.setuptools]
zip-safe = false
include-package-data = true
[tool.setuptools.packages.find]
exclude = ["mast_contributor_tools._dev*"]
[tool.setuptools_scm]
write_to = "mast_contributor_tools/_version.py"
[tool.pytest.ini_options]
testpaths = [
"mast_contributor_tools/tests",
"docs",
]
python_files = "test_*.py"
# commenting these out for now until docs are added
# doctest_plus = "enabled"
# text_file_format = "rst"
# addopts = "--doctest-rst"
[tool.coverage.run]
omit = [
"mast_contributor_tools/__init*",
"mast_contributor_tools/conftest.py",
"mast_contributor_tools/*setup_package*",
"mast_contributor_tools/tests/*",
"mast_contributor_tools/*/tests/*",
"mast_contributor_tools/extern/*",
"mast_contributor_tools/version*",
"*/mast_contributor_tools/__init*",
"*/mast_contributor_tools/conftest.py",
"*/mast_contributor_tools/*setup_package*",
"*/mast_contributor_tools/tests/*",
"*/mast_contributor_tools/*/tests/*",
"*/mast_contributor_tools/extern/*",
"*/mast_contributor_tools/version*",
]
[tool.coverage.report]
exclude_lines = [
# Have to re-enable the standard pragma
"pragma: no cover",
# Don't complain about packages we have installed
"except ImportError",
# Don't complain if tests don't hit assertions
"raise AssertionError",
"raise NotImplementedError",
# Don't complain about script hooks
"def main(.*):",
# Ignore branches that don't pertain to this version of Python
"pragma: py{ignore_python_version}",
# Don't complain about IPython completion helper
"def _ipython_key_completions_",
# typing.TYPE_CHECKING is False at runtime
"if TYPE_CHECKING:",
# Ignore typing overloads
"@overload",
]