-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathpyproject.toml
More file actions
132 lines (122 loc) · 3.17 KB
/
pyproject.toml
File metadata and controls
132 lines (122 loc) · 3.17 KB
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
[build-system]
requires = ["setuptools", "setuptools-scm"]
build-backend = "setuptools.build_meta"
[project]
name = "tifftools"
dynamic = ["version"]
description = "Pure python tiff tools to handle all tags and IFDs."
license = {text = "Apache-2.0"}
readme = {file = "README.rst", content-type = "text/x-rst"}
authors = [{name = "Kitware, Inc.", email = "kitware@kitware.com"}]
keywords = ["tiff"]
classifiers = [
'Development Status :: 5 - Production/Stable',
'Natural Language :: English',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: 3.12',
'Programming Language :: Python :: 3.13',
'Programming Language :: Python :: 3.14',
'Topic :: Utilities',
]
urls = {Repository = "https://github.com/DigitalSlideArchive/tifftools"}
requires-python = ">=3.8"
[project.scripts]
tifftools = "tifftools:main"
[project.optional-dependencies]
geo = ['pyproj']
[tool.setuptools]
packages = { find = { exclude = ["tests*"] } }
[tool.setuptools_scm]
fallback_version = "0.0.0"
local_scheme = "no-local-version"
[tool.ruff]
include = ["*.py", "*.pyi", "**/pyproject.toml"]
exclude = [
"build",
"*/web_client/*",
"*/*egg*/*",
]
lint.ignore = [
"B017", # assert raises exception
"B026", # star arg unpacking after keyword arg
"B904", # raise without from inside except
"C408", # unnecessary collection call (would prohibit dict())
"C901", # complexity
"D100",
"D101",
"D102",
"D103",
"D104",
"D105",
"D106",
"D107",
"D200",
"D203",
"D205",
"D212",
"D213",
"D400",
"D401",
"D404",
"D415",
"E501", # line length
"E741", # ambiguous variable name
"G002", # logging
"G004", # logging
"NPY002", # numpy-legacy-random
"PT011", # pytest-raises-too-broad
"PT012", # pytest-raises-with-multiple-statements
"PT017", # pytest-assert-in-except
"RET503", # implict-return on function that can return non-none
"RET504", # unncessary-assign before return
]
line-length = 100
lint.select = [
"ASYNC",
"B", # bugbear
"C4",
"C90", # mccabe
"COM",
"D", # pydocstyle
"DTZ",
"E", # pycodestyle errors
"EM",
"EXE",
"F", # pyflakes
"G",
# "I", # isort
"ISC",
# "N", # pep8-naming
"NPY",
"PIE",
"PT",
"PYI",
"Q", # flake8-quotes
"RET",
"RSE",
"SIM",
"T", # print statements
"W", # pycodestyle warnings
"YTT", # flake8-2020
]
[tool.ruff.lint.per-file-ignores]
# allow "useless expressions" as it shows output
# allow non-top level imports
# allow long lines
".circleci/dcm4chee/*.py" = ["T201", "T203"]
"docs/*.ipynb" = ["B018", "E402", "E501", "T201", "T203"]
"docs/*.py" = ["E501", "T201", "T203"]
"examples/*" = ["T201", "T203"]
"tests/*" = ["T201", "T203", "SIM115", "SIM300"]
[tool.ruff.lint.flake8-quotes]
inline-quotes = "single"
[tool.ruff.lint.mccabe]
max-complexity = 14
[tool.yamlfix]
line_length = 200
preserve_quotes = true
sequence_style = "block_style"