-
Notifications
You must be signed in to change notification settings - Fork 55
Expand file tree
/
Copy pathpyproject.toml
More file actions
109 lines (96 loc) · 2.68 KB
/
pyproject.toml
File metadata and controls
109 lines (96 loc) · 2.68 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
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "loris"
version = "27.0.0"
description = "The LORIS Python package"
readme = "README.md"
license = "GPL-3.0-or-later"
license-files = ["LICENSE"]
requires-python = ">= 3.11"
dependencies = [
"boto3==1.35.99",
"mat73",
"mysqlclient",
"nibabel",
"nilearn",
"nose",
"numpy",
"pybids==0.17.0",
"pydicom",
"python-dateutil",
"scikit-learn",
"scipy",
"sqlalchemy>=2.0.0",
"virtualenv",
"loris-bids-reader @ {root:uri}/python/loris_bids_reader",
"loris-ephys-chunker @ {root:uri}/python/loris_ephys_chunker",
"loris-utils @ {root:uri}/python/loris_utils",
]
[project.optional-dependencies]
dev = [
"pyright",
"pytest",
"ruff",
]
[project.urls]
Homepage = "https://github.com/aces/loris-mri"
[tool.hatch.metadata]
allow-direct-references = true
[tool.hatch.build.targets.wheel]
packages = [
"python/lib",
"python/tests",
]
[tool.uv.workspace]
members = ["python/loris_*"]
[tool.uv.sources]
loris_bids_reader = { workspace = true }
loris_ephys_chunker = { workspace = true }
loris_utils = { workspace = true }
[tool.ruff]
src = ["python"]
include = ["python/**/*.py"]
line-length = 120
preview = true
[tool.ruff.lint]
ignore = ["E202", "E203", "E221", "E241", "E251", "E272"]
select = ["E", "EXE", "F", "I", "N", "RUF", "UP", "W"]
[tool.ruff.lint.pycodestyle]
max-doc-length = 100
[tool.ruff.lint.per-file-ignores]
# ORM models often have very long lines.
"python/lib/db/models/*.py" = ["E501"]
# The strict type checking configuration is used to type check only the modern (typed) modules. An
# additional basic type checking configuration to type check legacy modules can be found in the
# `test` directory.
[tool.pyright]
include = [
"python/tests",
"python/lib/db",
"python/lib/imaging_lib",
"python/lib/import_bids_dataset",
"python/lib/import_dicom_study",
"python/lib/physio",
"python/lib/config.py",
"python/lib/config_file.py",
"python/lib/env.py",
"python/lib/get_session_info.py",
"python/lib/logging.py",
"python/lib/make_env.py",
"python/scripts/import_dicom_study.py",
"python/scripts/summarize_dicom_study.py",
"python/loris_bids_reader",
"python/loris_ephys_chunker",
"python/loris_utils",
]
exclude = [
"python/loris_ephys_chunker/src/loris_ephys_chunker/protocol_buffers",
]
typeCheckingMode = "strict"
reportMissingTypeStubs = "none"
[tool.pytest.ini_options]
# Integration tests are located in `python/tests/integration`, but they should be ran from the
# appropriate Docker image (usually using GitHub Actions).
testpaths = ["python/tests/unit"]