-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpyproject.toml
More file actions
136 lines (121 loc) · 4.32 KB
/
pyproject.toml
File metadata and controls
136 lines (121 loc) · 4.32 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
[project]
name = "ndevio"
dynamic = ["version"]
description = "Read, write, and manage images in napari"
readme = "README.md"
license = "BSD-3-Clause"
license-files = ["LICENSE"]
authors = [
{name = "Tim Monko"},
{email = "timmonko@gmail.com"},
]
classifiers = [
"Development Status :: 2 - Pre-Alpha",
"Framework :: napari",
"Intended Audience :: Developers",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Scientific/Engineering :: Image Processing",
]
requires-python = ">=3.11"
# napari can be included in dependencies if napari imports are required.
# However, you should not include napari[all], napari[qt],
# or any other Qt bindings directly (e.g. PyQt5, PySide2).
# See best practices: https://napari.org/stable/plugins/building_a_plugin/best_practices.html
dependencies = [
"napari",
"ndev-settings>=0.4.1",
"nbatch>=0.0.4",
"natsort",
"magicgui",
"magic-class",
"xarray",
"bioio-base",
"bioio>=3.2.0", # migrates writers to plugins
"bioio-ome-zarr>=3", # Pin to v3.x for zarr 3.x compatibility
"bioio-ome-tiff>=1.2.0", # minimum for migrated writer
"bioio-tifffile", # a backup tifffile reader with better performance than imageio
"bioio-imageio",
"zarr>=3.1.3", # tifffile's ZarrTiffStore needs set_partial_values/supports_partial_writes
"napari-plugin-manager>=0.1.7", # Renamed to PYPI from PIP for tool selection https://github.com/napari/napari-plugin-manager/pull/176
"pooch", # for downloading sample data from remote URLs
]
[project.optional-dependencies]
# Allow easily installation with the full, default napari installation
# (including Qt backend) using ndevio[all].
all = ["napari[all]"]
[dependency-groups]
dev = [
"pytest", # https://docs.pytest.org/en/latest/contents.html
"pytest-cov", # https://pytest-cov.readthedocs.io/en/latest/
"pytest-qt", # https://pytest-qt.readthedocs.io/en/latest/
"napari",
"pyqt6", # Explicitly use PyQt6 (napari's future default, has ARM64 macOS support)
"bioio-czi", # Include an additional priority reader for development/testing
]
[project.entry-points."napari.manifest"]
ndevio = "ndevio:napari.yaml"
[project.entry-points."ndev_settings.manifest"]
ndevio = "ndevio:ndev_settings.yaml"
[project.urls]
"Bug Tracker" = "https://github.com/ndev-kit/ndevio/issues"
"Documentation" = "https://github.com/ndev-kit/ndevio#README.md"
"Source Code" = "https://github.com/ndev-kit/ndevio"
"User Support" = "https://github.com/ndev-kit/ndevio/issues"
[build-system]
requires = ["hatchling", "hatch-vcs"]
build-backend = "hatchling.build"
[tool.hatch.version]
source = "vcs"
fallback_version = "0.0.1+nogit"
[tool.pytest.ini_options]
minversion = "6.0"
addopts = ["-ra", "--showlocals", "--strict-markers", "--strict-config"]
xfail_strict = true
# filterwarnings = ["error"] # recommended by PP309
log_cli_level = "INFO"
testpaths = ["tests"]
markers = [
"network: marks tests as requiring network access (deselect with '-m \"not network\"')",
]
[tool.coverage]
report.fail_under = 80
[tool.ruff]
line-length = 79
format.quote-style = "single"
lint.select = [
"E", "F", "W", #flake8
"UP", # pyupgrade
"I", # isort
"BLE", # flake8-blind-exception
"B", # flake8-bugbear
"A", # flake8-builtins
"C4", # flake8-comprehensions
"ISC", # flake8-implicit-str-concat
"G", # flake8-logging-format
"PIE", # flake8-pie
"SIM", # flake8-simplify
]
lint.ignore = [
"E501", # line too long. handled by formatter
"UP006", "UP007", # type annotation. As using magicgui require runtime type annotation then we disable this.
]
fix = true
[tool.pixi.workspace]
channels = ["conda-forge"]
platforms = ["win-64", "linux-64", "osx-64", "osx-arm64"]
[tool.pixi.dependencies]
python = ">=3.11,<3.14"
[tool.pixi.pypi-dependencies]
ndevio = { path = ".", editable = true }
[tool.pixi.environments]
default = { solve-group = "default" }
all = { features = ["all"], solve-group = "default" }
dev = { features = ["dev"], solve-group = "default" }
[tool.pixi.tasks]
test = { cmd = "pytest -v --color=yes --cov=ndevio --cov-report=xml" }