-
Notifications
You must be signed in to change notification settings - Fork 75
/
pyproject.toml
138 lines (122 loc) · 3.78 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
136
137
138
[build-system]
requires = ["setuptools>=61", "wheel", "setuptools_scm[toml]>=3.4"]
build-backend = "setuptools.build_meta"
[project]
name = "siphon"
description = "A collection of Python utilities for interacting with the Unidata technology stack."
readme = "README.rst"
dynamic = ["version"]
maintainers = [{name = "Siphon Developers", email = "support-python@unidata.ucar.edu"}]
license = {text = "BSD-3-Clause"}
keywords = ["meteorology", "weather"]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Programming Language :: Python",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Scientific/Engineering",
"Topic :: Scientific/Engineering :: Atmospheric Science",
"Intended Audience :: Science/Research",
"Operating System :: OS Independent",
"License :: OSI Approved :: BSD License"
]
requires-python = ">=3.10"
dependencies = [
"beautifulsoup4>=4.9.1",
"numpy>=1.22.0",
"pandas>=1.4.3",
"protobuf>=3.20.0",
"requests>=2.30.0"
]
[project.optional-dependencies]
doc = [
"sphinx>=3.0",
"sphinx-gallery>=0.4",
"myst-parser",
"sphinx-rtd-theme",
"siphon[examples]"
]
examples = [
"matplotlib>=3.5",
"cartopy>=0.21",
"netCDF4",
"metpy",
]
test = [
"pytest>=7.0",
"netCDF4>=1.5.8",
"vcrpy>=4.3.1",
"siphon[extras]"
]
extras = [
"xarray>=2022.6.0"
]
[project.urls]
"homepage" = "https://github.com/Unidata/siphon"
"Documentation" = "https://unidata.github.io/siphon/"
"Release Notes" = "https://github.com/Unidata/siphon/releases"
"Bug Tracker" = "https://github.com/Unidata/siphon/issues"
"Source Code" = "https://github.com/Unidata/siphon"
[tool.codespell]
skip = "*.ipynb,*.pdf,.git,./docs/build,./docs/examples,./tests/fixtures,./tests/cdmr/fixtures,AUTHORS.txt"
exclude-file = ".codespellexclude"
ignore-words = ".codespellignore"
[tool.doc8]
ignore-path = ["docs/build", "docs/api/generated", "docs/_templates", "docs/examples"]
file-encoding = "utf8"
max-line-length = 95
[tool.isort]
line_length = 95
known_first_party = ["siphon"]
force_single_line = false
reverse_relative = true
use_parentheses = true
force_sort_within_sections = true
order_by_type = false
sort_relative_in_force_sorted_sections = true
combine_as_imports = true
combine_star = true
[tool.pytest.ini_options]
norecursedirs = "build docs .idea"
doctest_optionflags = "NORMALIZE_WHITESPACE"
xfail_strict = true
filterwarnings = [
"error",
"ignore:numpy.ndarray size changed:RuntimeWarning",
]
[tool.ruff]
line-length = 95
exclude = ["docs", "build", "src/siphon/cdmr/*_pb2.py"]
preview = true
[tool.ruff.lint]
select = ["A", "B", "C", "CPY001", "D", "E", "E226", "F", "G", "I", "N", "NPY", "PIE", "Q", "R", "S", "SIM", "T", "U", "W"]
# NPY201 ignores the use of 'trapz' false alarm
ignore = ["F405", "I001", "NPY201", "RET504", "RET505", "RET506", "RET507", "RUF100", "S314"]
explicit-preview-rules = true
[tool.ruff.lint.per-file-ignores]
"ci/filter_links.py" = ["E731", "T201", "S603", "S607"]
"examples/*.py" = ["D", "T201", "B018"]
"tests/*/*.py" = ["S101"]
"tests/test_*.py" = ["S101"]
[tool.ruff.lint.flake8-copyright]
# Needed to avoid need for spaces after a comma
notice-rgx = "(?i)Copyright\\s+(\\(C\\)\\s+)?\\d{4}([-,]\\d{4})*"
author = "Siphon Contributors"
[tool.ruff.lint.flake8-quotes]
inline-quotes = "single"
multiline-quotes = "double"
[tool.ruff.lint.isort]
known-first-party = ["siphon"]
force-single-line = false
relative-imports-order = "closest-to-furthest"
force-sort-within-sections = true
order-by-type = false
combine-as-imports = true
[tool.ruff.lint.mccabe]
max-complexity = 61
[tool.ruff.lint.pydocstyle]
convention = "numpy"
[tool.setuptools_scm]
version_scheme = "post-release"