-
Notifications
You must be signed in to change notification settings - Fork 12
/
pyproject.toml
131 lines (115 loc) · 4.43 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
[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}
[tool.poetry.extras]
dev = ["pre-commit", "ruff", "mypy"]
doc = ["numpydoc", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-openapi"]
test = ["openpyxl", "pytest", "pytest-cov"]
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",
]
[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'