-
Notifications
You must be signed in to change notification settings - Fork 10
/
pyproject.toml
182 lines (170 loc) · 5.03 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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
[build-system]
build-backend = "setuptools.build_meta"
requires = [
"setuptools>=64",
"setuptools-scm[toml]>=6.2",
"wheel",
]
[project]
name = "weldx"
description = "Python API for the WelDX file format and standard"
readme = "README.md"
keywords = [
"bam", # TODO: add more keywords here! think of them as in a journal article.
"welding",
"weldx",
]
license = { file = "LICENSE", name = "BSD License" }
authors = [
{ name = "Çağtay Fabry", email = "[email protected]" },
{ name = "Volker Hirthammer", email = "[email protected]" },
{ name = "Martin K. Scherer", email = "[email protected]" },
{ name = "Michael Winkler", email = "[email protected]" },
]
requires-python = ">=3.9,<3.13"
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Education",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: BSD License",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Scientific/Engineering :: Physics", # TODO: add more topics here!
]
dynamic = [
# see: https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html#dynamic-metadata
"version", # version gets derived from git by setuptools_scm.
]
dependencies = [
"asdf>=2.15.1,<4",
"bidict",
"boltons",
"bottleneck>=1.3.3",
"fs",
"ipython",
"meshio",
"networkx>=2.8.2",
"numpy>=1.20,<2",
"pandas>=1.5",
"pint>=0.21",
"pint-xarray>=0.3",
"psutil",
"scipy>=1.6.2",
"sympy>=1.6",
"xarray>=2022.9",
]
optional-dependencies.docs = [
"docutils>=0.19",
"numpydoc>=0.5",
"pydata-sphinx-theme<0.15", # parallel-write-unsafe
"sphinx>=4.1.1,==7.2",
"sphinx-autodoc-typehints>=1.21.8,==2",
"sphinx-copybutton==0.5",
"typing-extensions",
"urllib3<2",
]
optional-dependencies.media = [
"av",
"dask-image",
"pims",
"tifffile", # required by dask-image, but not listed in their requirements
]
optional-dependencies.test = [
"nbval",
"pytest>=6",
"pytest-cov",
"pytest-xdist",
]
optional-dependencies.vis = [
"weldx-widgets>=0.2.3",
]
urls.bug_tracker = "https://github.com/BAMweldx/weldx/issues"
urls.changelog = "https://github.com/BAMweldx/weldx/blob/master/CHANGELOG.md"
urls.documentation = "https://weldx.readthedocs.io"
urls.repository = "https://github.com/BAMweldx/weldx"
scripts.welding_schema = "weldx.asdf.cli.welding_schema:main"
entry-points."asdf.extensions".weldx = "weldx.asdf.extension:get_extensions"
entry-points."asdf.resource_mappings".weldx_schemas = "weldx.asdf.extension:get_resource_mappings"
[tool.setuptools.packages.find]
where = [
".",
]
[tool.setuptools_scm]
write_to = "weldx/_version.py"
write_to_template = '__version__ = "{version}"'
[tool.nbqa.addopts]
ruff = [
"--extend-ignore=B018",
]
[tool.pytest.ini_options]
addopts = "--tb=short --color=yes -rsw --cov=weldx --cov-report=term-missing:skip-covered --doctest-modules"
#addopts = --tb=short --color=yes -rs -p no:cov
testpaths = "weldx"
# custom test markers, see https://docs.pytest.org/en/latest/example/markers.html#mark-examples
markers = "slow: marks tests as slow to run (skipped by default, enable with --runslow option)"
asdf_schema_root = "weldx/schemas/weldx.bam.de/weldx" # TODO: couldn't we just use the entry points to resolve this?
#asdf_schema_tests_enabled = true
#asdf_schema_skip_tests =
# weldx.bam.de/weldx/datamodels/single_pass_weld-1.0.0.schema.yaml
norecursedirs = [
"doc",
".ipynb_checkpoints",
]
filterwarnings = [
"ignore::DeprecationWarning:traittypes.*:",
"ignore:Passing method to :FutureWarning:xarray.*:",
"error::pint.UnitStrippedWarning",
#"error::FutureWarning", # todo: we want to enable this, as it notifies us about upcoming failures due to upstream changes.
]
[tool.coverage.run]
source = [
"weldx",
]
[tool.coverage.report]
omit = [
"weldx/_version.py",
"weldx/tests/*",
]
exclude_lines = [
# Have to re-enable the standard pragma
"pragma: no cover",
# ignore class __repr__-like functions:
"def __repr__",
"def __str__",
"def _ipython_display_",
]
[tool.mypy]
python_version = "3.9"
files = "weldx"
ignore_missing_imports = true # TODO: this is bad!
strict_optional = false
pretty = true
allow_redefinition = true
show_error_context = true
show_error_codes = true
show_column_numbers = true
sqlite_cache = true
# MyPy per-module options:
[[tool.mypy.overrides]]
module = [
"weldx.asdf.*",
"weldx.tags.*",
"weldx.tests.*",
"weldx.welding.groove.*",
"weldx.geometry.*",
]
ignore_errors = true
# this is a workaround for an xarray related mypy bug
# see https://github.com/python/mypy/pull/9495
# and https://github.com/space-physics/msise00/commit/8b59a9383dd6fcc54b7dac74eb95a350308d7b62
# TODO: is this still mandatory?
[[tool.mypy.overrides]]
module = "xarray"
follow_imports = "skip"
ignore_errors = true