forked from IMAP-Science-Operations-Center/imap_processing
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pyproject.toml
135 lines (119 loc) · 4.62 KB
/
pyproject.toml
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
[build-system]
requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning>=1.0.0,<2.0.0"]
build-backend = "poetry_dynamic_versioning.backend"
[tool.poetry]
name = "imap-processing"
# Gets updated dynamically by the poetry-dynamic-versioning plugin
version = "0.0.0"
description = "IMAP Science Operations Center Processing"
authors = ["IMAP SDC Developers <[email protected]>"]
readme = "README.md"
include = ["imap_processing/_version.py"]
license = "MIT"
keywords = ["IMAP", "SDC", "SOC", "Science Operations"]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Software Development",
"Topic :: Scientific/Engineering",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Operating System :: Unix",
"Operating System :: MacOS",
]
[tool.poetry.dependencies]
cdflib = "==1.2.6"
imap-data-access = ">=0.5.0"
python = ">=3.9,<4"
space_packet_parser = ">=4.2.0"
spiceypy = ">=6.0.0"
xarray = '>=2023.0.0'
pyyaml = "^6.0.1"
numpy = "<=3"
# Optional dependencies
numpydoc = {version="^1.5.0", optional=true}
openpyxl = {version=">=3.0.7", optional=true}
pandas = {version=">=2.0.0", optional=true}
pre-commit = {version="^3.3.3", optional=true}
pydata-sphinx-theme = {version="*", optional=true}
pytest = {version=">=6.2.5", optional=true}
pytest-cov = {version="^4.0.0", optional=true}
ruff = {version="==0.2.1", optional=true}
sphinx = {version="*", optional=true}
sphinxcontrib-openapi = {version="^0.8.3", optional=true}
mypy = {version="1.10.1", optional=true}
requests = {version = "^2.32.3", optional = true}
[tool.poetry.extras]
dev = ["pre-commit", "ruff", "mypy"]
doc = ["numpydoc", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-openapi"]
test = ["openpyxl", "pytest", "pytest-cov", "requests"]
tools= ["openpyxl", "pandas"]
[project.urls]
homepage = "https://github.com/IMAP-Science-Operations-Center"
repository = "https://github.com/IMAP-Science-Operations-Center/imap_processing"
[tool.pytest.ini_options]
testpaths = [
"imap_processing/tests",
]
addopts = "-ra"
filterwarnings = [
"ignore:Converting non-nanosecond:UserWarning:cdflib",
"ignore:datetime.datetime.utcfromtimestamp:DeprecationWarning:cdflib",
]
markers = [
"external_kernel: marks tests as requiring external SPICE kernels (deselect with '-m \"not external_kernel\"')",
]
[tool.ruff]
target-version = "py39"
lint.select = ["B", "D", "E", "F", "I", "N", "S", "W", "PL", "PT", "UP", "RUF"]
# D104: Missing docstring in public package
# PLR2004: Magic value in comparison
# RUF200: pyproject missing field (poetry doesn't follow the spec)
# PLR0915: too-many-statements error
lint.ignore = ["D104", "PLR2004", "RUF200", "S311", "PLR0915"]
[tool.ruff.lint.per-file-ignores]
# S603 unchecked input in subprocess call is fine in our tests
# PT006 Wrong type passed to first argument of @pytest.mark.parametrize
"*/tests/*" = ["D", "S101", "S603", "PT006"]
[tool.ruff.lint.pydocstyle]
convention = "numpy"
[tool.poetry.scripts]
imap_cli = 'imap_processing.cli:main'
imap_xtce = 'imap_processing.ccsds.excel_to_xtce:main'
[tool.codespell]
ignore-words-list = "livetime"
[tool.poetry-dynamic-versioning]
enable = true
vcs = "git"
[tool.poetry-dynamic-versioning.files."imap_processing/_version.py"]
persistent-substitution = true
initial-content = """
# These version placeholders will be replaced later during substitution.
__version__ = "0.0.0"
__version_tuple__ = (0, 0, 0)
"""
[tool.numpydoc_validation]
checks = ["all", #report on all checks, except the following
"EX01", # Ignore No examples section found
"SA01", # Ignore See Also section not found
"ES01", # Ignore No extended summary found
"RT02" ] # Ignore The first line of the Returns section
exclude = ['__init__' ] # don't report on objects that match any of these regex
[tool.mypy]
disable_error_code = ['import-not-found', # Unable to locate module or package specified
'import-untyped', # The import lacks type information
'no-untyped-call', # Function calls are only made to functions that are fully typed
'type-arg' ] # Requires type arguments to be specified in list[] and dict[]
strict = true
explicit_package_bases = true
follow_imports = 'skip' #may want to remove
exclude = ["tests"]
packages = ["imap_processing" , "tools"]
plugins = 'numpy.typing.mypy_plugin'