-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathpyproject.toml
124 lines (108 loc) · 2.48 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
[build-system]
requires = ["flit_core >=3.2,<4"]
build-backend = "flit_core.buildapi"
[project]
name = "zospy"
authors = [
{name = "Luc van Vught"},
{name = "Jan-Willem Beenakker"},
{name = "Corné Haasjes"}
]
maintainers = [
{name = "MReye research group", email = "[email protected]"}
]
description = "A Python package used to communicate with Zemax OpticStudio through the API"
readme = "README.md"
license = {file = "LICENSE.txt"}
keywords = ["Zemax", "OpticStudio", "API", "ZOSAPI"]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Programming Language :: Python :: 3",
"Typing :: Typed"
]
requires-python = ">=3.9,<3.13"
dependencies = [
"lark ~= 1.2.0",
"pythonnet >=3.0.0,<4",
"pandas",
"pydantic >= 2.4.0",
"numpy",
"semver >= 3.0.0,<4",
"eval_type_backport", # TODO: Remove when dropping support for Python 3.9
]
dynamic = ["version"]
[project.urls]
Source = "https://github.com/MREYE-LUMC/ZOSPy"
Documentation = "https://mreye-lumc.github.io/ZOSPy"
[project.optional-dependencies]
# Dependencies for unit testing
test = [
"pytest",
"tox",
]
# Dependencies for building the documentation
docs = [
"ipython",
"myst-parser",
"nbsphinx",
"numpydoc",
"sphinx",
"sphinx-book-theme",
"sphinx-design",
]
# Development tools
dev = [
"zospy[test]",
"black[jupyter] == 23.3.0",
"isort",
"ruff",
]
[tool.pytest.ini_options]
markers = [
"must_pass: test must pass, otherwise all other tests will be skipped",
"require_mode: requires the specified connection mode, otherwise the test will be skipped",
"xfail_for_opticstudio_versions: test is expected to fail for specific OpticStudio versions",
"skip_for_opticstudio_versions: test is skipped for specific OpticStudio versions"
]
[tool.mypy]
files = [
"zospy"
]
pretty = true
[[tool.mypy.overrides]]
module = [
"zospy.api._ZOSAPI",
"zospy.api._ZOSAPI_constants"
]
ignore_errors = "True"
[tool.black]
line-length = 120
[tool.isort]
profile = "black"
[tool.ruff]
line-length = 120
ignore-init-module-imports = true
exclude = [
"zospy/api/_ZOSAPI",
"zospy/api/_ZOSAPI_constants"
]
# Rule sets for linting
select = [
"F", # pyflakes
"E", # pycodestyle error
"W", # pycodestyle warning
"I", # isort
"D", # pydocstyle
"NPY", # numpy-specific
]
ignore = [
"D100",
"D101",
"D102",
"D103",
"D104",
"D105",
"D401"
]
[tool.ruff.pydocstyle]
convention = "numpy"