-
Notifications
You must be signed in to change notification settings - Fork 100
/
Copy pathpyproject.toml
125 lines (113 loc) · 3.27 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
[project]
name = "pylinac"
requires-python = ">=3.9"
description = "A toolkit for performing TG-142 QA-related tasks on a linear accelerator"
authors = [
{name = "James Kerns", email = "[email protected]"}
]
dynamic = [
"version" # this will be set by hatch
]
license = "MIT"
readme = "README.rst"
documentation = "https://pylinac.readthedocs.io/en/latest/"
repository = "https://github.com/jrkerns/pylinac"
keywords = ["medical", "physics", "image", "analysis", "TG-142"]
classifiers=[
"Intended Audience :: Developers",
"Intended Audience :: Healthcare Industry",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Topic :: Scientific/Engineering :: Medical Science Apps.",
"Topic :: Scientific/Engineering :: Image Recognition",
"Topic :: Scientific/Engineering :: Physics",
"Topic :: Software Development :: Libraries"
]
dependencies = [
"scikit-image>=0.18",
"numpy>=1.20,<2",
"scipy>=1.11",
"tqdm>=3.8",
"Pillow>=4.0",
"argue~=0.3.1",
"py-linq~=1.4.0",
"reportlab>=3.3",
"pydicom>=2.0,<3",
"matplotlib>=3.0",
"tabulate~=0.9.0",
"pydantic>=2.0",
"eval-type-backport; python_version<='3.9'",
"quaac",
"plotly>=5.0",
]
# unfortunately, RTD doesn't support custom installes like `uv sync`. Only "extra" dependencies are supported.
# this extra dependency entry point shouldn't be used outside of RTD.
# Use `uv sync` for local development.
[project.optional-dependencies]
docs = [
"sphinx-autobuild>=2021.3.14",
"sphinx-copybutton>=0.5.2",
"sphinx-design>=0.6.0",
"sphinx>=7.1.2",
"furo>=2024.8.6",
"autodoc-pydantic>=2.1.0",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build]
directory = "dist"
[tool.hatch.version]
# https://hatch.pypa.io/latest/version/
path = "pylinac/version.py" # hatch will automatically set the version to the value in this file.
[tool.hatch.build.targets.wheel]
packages = ["pylinac"]
include = ['pylinac/files/*.png']
exclude = ['pylinac/demo_files/**']
[tool.hatch.build.targets.sdist]
packages = ["pylinac"]
include = ['pylinac/files/*.png']
exclude = ['pylinac/demo_files/**']
[tool.pytest.ini_options]
testpaths = "tests_basic"
python_files = "test_*.py"
addopts = "--dist loadscope"
filterwarnings = [
"ignore::UserWarning:pydicom",
"ignore:FigureCanvasAgg.*:UserWarning"
]
markers = [
'catphan604',
]
[tool.coverage.run]
source = [
"pylinac"
]
[tool.ruff]
exclude = ['playground.py']
lint.select = ['E', 'F', 'I', 'UP', "W", "NPY", "FLY"]
lint.ignore = ['E501']
line-length = 88 # to match black; may change in the future
target-version = 'py39'
[tool.ruff.lint.per-file-ignores]
"*/__init__.py" = ["F401"]
"pylinac/calibration/trs398.py" = ["F401", "I001"]
"pylinac/core/profile.py" = ['F821']
[tool.uv]
dev-dependencies = [
"autodoc-pydantic>=2.1.0",
"furo>=2024.8.6",
"google-cloud-storage>=2.18.2",
"nox>=2024.4.15",
"parameterized>=0.9.0",
"pytest-cov>=5.0.0",
"pytest-xdist>=3.6.1",
"pytest>=8.3.2",
"sphinx-autobuild>=2021.3.14",
"sphinx-copybutton>=0.5.2",
"sphinx-design>=0.6.0",
"sphinx>=7.1.2",
]