-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathpyproject.toml
More file actions
131 lines (123 loc) · 3.27 KB
/
Copy pathpyproject.toml
File metadata and controls
131 lines (123 loc) · 3.27 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
[build-system]
build-backend = "setuptools.build_meta"
requires = [ "setuptools>=80", "wheel" ]
[project]
name = "fhir-pyrate"
version = "0.2.5"
description = """\
FHIR-PYrate is a package that provides a high-level API to query FHIR Servers for bundles of resources and return \
the structured information as pandas DataFrames. It can also be used to filter resources using RegEx and SpaCy and \
download DICOM studies and series.\
"""
readme = "README.md"
keywords = [ "data-science", "fhir", "fhirpath", "healthcare", "python" ]
license-files = [ "LICENSE" ]
authors = [
{ name = "Giulia Baldini", email = "giulia.baldini@uk-essen.de" },
{ name = "Rene Hosch", email = "rene.hosch@uk-essen.de" },
]
requires-python = ">=3.10"
classifiers = [
"Programming Language :: Python :: 3 :: Only",
"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",
]
dependencies = [
"fhirpathpy>=0.2.2",
"numpy>=2",
"pandas>=2",
"pyjwt>=2.4",
"requests>=2.31",
"requests-cache>=0.9.7",
"tqdm>=4.56",
]
optional-dependencies.all = [
"dicomweb-client>=0.52",
"pydicom>=3.0.1",
"simpleitk>=2.0.2",
"spacy>=3.0.6",
]
optional-dependencies.downloader = [
"dicomweb-client>=0.52",
"pydicom>=2.1.2",
"simpleitk>=2.0.2",
]
optional-dependencies.miner = [
"spacy>=3.0.6",
]
urls = { Repository = "https://github.com/UMEssen/FHIR-PYrate" }
[dependency-groups]
dev = [
"beautifulsoup4>=4.11.1,<5",
"jupyter>=1,<2",
"pre-commit>=4.5.1",
"pytest>=9.0.2",
"python-dotenv>=1.2.1",
]
[tool.setuptools]
packages.find.include = [ "fhir_pyrate*" ]
[tool.ruff]
target-version = "py310"
# Same as Black
line-length = 88
lint.select = [
"ARG", # Unused arguments
"B", # flake8-bugbear
"C", # flake8-comprehensions
"D401", # First line of docstring should be in imperative mood
"E", # pycodestyle errors
"EXE", # flake8-executable
"F", # pyflakes
"G", # flake8-logging-format
"I", # isort
"N", # Naming conventions
"PERF", # perflint
"PL", # pylint
"RUF", # ruff
"S", # flake8-bandit (security)
"SIM", # flake8-simplify
"UP", # PyUpgrade
"W", # pycodestyle warnings
]
lint.ignore = [
"ARG001", # Unused function argument
"ARG002", # Unused method argument
"C901", # Too complex
"E501", # line too long, handled by black
"N813", # Camelcase imported as lowercase
"PLR", # pylint refactoring
"S101", # Use of assert detected
]
lint.unfixable = [
"F401", # Do not fix unused imports, it's annoying during development
]
lint.pydocstyle.convention = "google"
[tool.mypy]
# Ensure full coverage
check_untyped_defs = true
disallow_untyped_defs = true
disallow_incomplete_defs = true
disallow_untyped_decorators = true
# Restrict dynamic typing
disallow_any_generics = true
disallow_subclassing_any = true
warn_return_any = true
# Know exactly what you're doing
warn_redundant_casts = true
warn_unused_ignores = true
warn_unused_configs = true
warn_unreachable = true
show_error_codes = true
[tool.pytest]
ini_options.testpaths = [ "tests" ]
[tool.markdownlint]
# Disable rules globally
disable = [
"MD013", # line-length
]
[virtualenvs]
create = true
in-project = true