-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathpyproject.toml
More file actions
155 lines (136 loc) · 5.45 KB
/
Copy pathpyproject.toml
File metadata and controls
155 lines (136 loc) · 5.45 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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "bids-manager"
version = "1.2.5.2"
description = "Schema-driven BIDS converter, curator, and editor (re-imagination of BIDS-Manager v0.2.5)"
readme = "README.md"
license = "MIT"
license-files = ["LICENSE"]
authors = [
{name = "Karel Lopez Vilaret", email = "karel.mauricio.lopez.vilaret@uni-oldenburg.de"},
{name = "Karel Lopez Vilaret"},
{name = "Jochem Rieger"},
]
maintainers = [
{name = "ANCP Lab, University of Oldenburg", email = "karel.mauricio.lopez.vilaret@uni-oldenburg.de"},
]
keywords = ["BIDS", "DICOM", "EEG", "MEG", "GUI", "Neuroimaging"]
requires-python = ">=3.10,<3.15"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Environment :: X11 Applications :: Qt",
"Intended Audience :: Science/Research",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"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 :: Scientific/Engineering",
"Topic :: Scientific/Engineering :: Medical Science Apps.",
]
# Core dependencies.
# Bounds strategy:
# lower bound = oldest version that works with any supported Python (3.10+).
# upper bound = latest version tested in the reference env (Python 3.10 venv
# with pandas-3 strict-string-dtype simulated via
# pd.options.future.infer_string; Python 3.14 venv tested
# separately by the user).
# On older Pythons pip picks the newest release that fits both the version
# range AND that Python's compatibility.
dependencies = [
# Schema engine. The keystone of the architecture.
"bidsschematools>=1.0,<=1.2.2",
"ancpbids>=0.3,<=0.3.1",
# BIDS validation engine. The Editor validator + ``bidsmgr-validate`` delegate
# to bidsval (schema-driven, pydantic-typed, false-positive-verified against
# the reference validator). It pulls only deps BIDS Manager already ships
# (bidsschematools, pydantic, nibabel, pandas, mne), so the footprint barely
# changes. 0.0.x is pre-1.0; allow patch releases, not a 0.1 minor bump.
"bidsval>=0.0.2,<0.1.0",
# GUI.
"pyqt6>=6.5,<=6.11.0",
# Strongly-typed core abstractions.
"pydantic>=2.6,<=2.13.4",
# MRI conversion stack. dcm2niix invoked directly.
"dcm2niix>=1.0.20240202,<=1.0.20260416",
"pydicom>=2.4,<=3.0.2",
"nibabel>=5.0,<=5.4.2",
# EEG / MEG / iEEG conversion stack.
"mne>=1.6,<=1.12.1",
"mne-bids>=0.15,<=0.17.0",
"edfio>=0.3,<=0.4.13",
# Physio (Siemens PhysioLog DICOM to BIDS): vendored at
# ``bidsmgr.vendor.bidsphysio`` (MIT, see that subdir's LICENSE).
# No transitive setuptools cap required as a result.
# Data handling.
"pandas>=2.0,<3.0",
"numpy>=1.26,<3.0",
"joblib>=1.3,<=1.5.3",
# System info (CPU thread count, total RAM) shown in Settings and used
# to cap the parallel-workers spinboxes. Already pulled in transitively
# by joblib/loky; declared explicitly so the cap never silently breaks.
"psutil>=5.9,<=7.0.0",
# Editor viewer (NIfTI slices + MEG/EEG time-series + PSD, all
# rendered in-app with pyqtgraph - no matplotlib dependency).
"pyqtgraph>=0.13,<=0.14.0",
"PyOpenGL>=3.1,<=3.1.10",
# GUI icons. Ships its own MDI6 / Font Awesome / Phosphor TTFs so
# toolbar / tab / chip glyphs render identically on macOS, Linux,
# and Windows instead of falling back to per-OS emoji fonts.
"qtawesome>=1.3,<=1.4.2",
]
[project.optional-dependencies]
dev = [
"pytest>=8.0",
"pytest-qt>=4.4",
"ruff>=0.4",
"build>=1.0",
"twine>=4.0",
]
[project.urls]
Homepage = "https://github.com/ANCPLabOldenburg/BIDS-Manager"
Repository = "https://github.com/ANCPLabOldenburg/BIDS-Manager"
Documentation = "https://ancplaboldenburg.github.io/bids_manager_documentation/"
Tracker = "https://github.com/ANCPLabOldenburg/BIDS-Manager/issues"
# Console entry points. All routed through the ``bidsmgr`` package.
# The PyPI distribution is ``bids-manager`` but the import name is
# ``bidsmgr`` (same pattern as ``pip install scikit-learn`` then
# ``import sklearn``).
[project.scripts]
bidsmgr = "bidsmgr.main:main"
bidsmgr-create = "bidsmgr.cli.create:main"
bidsmgr-project = "bidsmgr.cli.project:main"
bidsmgr-scan = "bidsmgr.cli.scan:main"
bidsmgr-convert = "bidsmgr.cli.convert:main"
bidsmgr-rebuild = "bidsmgr.cli.rebuild:main"
bidsmgr-metadata = "bidsmgr.cli.metadata:main"
bidsmgr-validate = "bidsmgr.cli.validate:main"
[tool.setuptools]
include-package-data = true
[tool.setuptools.packages.find]
include = ["bidsmgr*"]
[tool.setuptools.package-data]
"bidsmgr.gui" = [
"*.qss",
"assets/*.png",
"assets/*.jpg",
"assets/*.jpeg",
"assets/macos/*.png",
"assets/macos/*.icns",
"assets/windows/*.ico",
]
"bidsmgr.schema" = ["bundled/**/*"]
"bidsmgr.vendor" = ["README.md"]
"bidsmgr.vendor.bidsphysio" = ["LICENSE"]
[tool.pytest.ini_options]
pythonpath = ["."]
testpaths = ["tests"]
markers = [
"real_data: requires real datasets at /Users/karelo/Development/datasets/BIDS_Manager/raw_data, gated on env vars BIDS_MANAGER_REAL_{MRI,MEG,EEG}_DATA",
"gui: pytest-qt smoke tests, headless OK with QT_QPA_PLATFORM=offscreen",
]