Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
124 lines (115 loc) · 3.04 KB
/
Copy pathpyproject.toml
File metadata and controls
124 lines (115 loc) · 3.04 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
[project]
name = "negpy"
description = "A tool for processing film negatives."
readme = "README.md"
license = "GPL-3.0"
authors = [
{ name = "marcinz606" },
{ name = "NegPy Contributors" }
]
dynamic = ["version"]
requires-python = ">=3.13"
dependencies = [
"rawpy==0.27.0",
"tifffile==2026.6.1",
"imagecodecs==2026.6.6",
"imageio==2.37.3",
"jinja2==3.1.6",
"numba==0.65.1",
"numpy==2.4.4",
# Pinned below its latest release: 1.24.0+ dropped macOS x86_64 wheels entirely,
# which breaks install on an Intel Mac. 1.23.2 is the last version with one.
"onnxruntime==1.23.2",
"opencv-python-headless==4.13.0.92",
"pillow==12.2.0",
"pyqt6==6.11.0",
"pyqt6-charts==6.11.0",
"piexif==1.1.3",
"qtawesome==1.4.2",
"wgpu==0.31.1",
"pyserial>=3.5",
]
classifiers = [
"Development Status :: 3 - Alpha",
"Environment :: GPU",
"Intended Audience :: End Users/Desktop",
"Operating System :: Microsoft :: Windows",
"Operating System :: MacOS :: MacOS X",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3.13",
"Topic :: Multimedia :: Graphics :: Graphics Conversion",
"Topic :: Multimedia :: Graphics :: Viewers",
"Topic :: Scientific/Engineering :: Image Processing"
]
[project.optional-dependencies]
nkscan = ["nkscan>=0.12"]
plustek = ["pyopticfilm>=1.3.4"]
sane = ["python-sane>=2.9"]
camera = ["gphoto2>=2.5 ; sys_platform != 'win32'"]
[dependency-groups]
dev = [
"pyinstaller>=6.18.0",
"pytest==9.0.2",
"pytest-cov>=7.0",
"ruff==0.14.10",
"ty>=0.0.26",
]
sane = [
"python-sane>=2.9",
]
plustek = [
"pyopticfilm>=1.3.4",
]
camera = [
# Tethered camera scanning. libgphoto2 has no Windows build, so the wheels — and the
# Camera Scanning tab with them — are macOS and Linux only.
"gphoto2>=2.5 ; sys_platform != 'win32'",
]
pieusb = [
"pieusb>=0.3.7",
]
nkscan = [
# Nikon Coolscan over SCSI/USB. A Rust extension, shipped as wheels.
"nkscan>=0.12",
]
[project.urls]
Homepage = "https://github.com/marcinz606/NegPy"
Documentation = "https://github.com/marcinz606/NegPy/docs"
Repository = "https://github.com/marcinz606/NegPy.git"
Issues = "https://github.com/marcinz606/NegPy/issues"
[build-system]
requires = ["setuptools~=80.10.2"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
include = ["negpy*"]
[tool.setuptools.dynamic]
version = { file = "VERSION" }
[tool.pytest.ini_options]
markers = [
"slow: wall-clock tests that require I/O or a real RAW file (deselect with '-m not slow')",
"metrics: opt-in performance metrics tests",
]
addopts = "-m 'not slow'"
# Lets test modules share helpers via `from conftest import ...` (FakeRepo/FakeController).
pythonpath = ["tests"]
[tool.ruff]
line-length = 140
exclude = [
"venv",
".venv",
"__pycache__",
".git",
".github",
"user",
"docs",
".streamlit",
".pytest_cache",
"icc",
"processed",
"node_modules",
"dist",
"desktop/bin",
"build",
]
[tool.coverage.run]
source = ["negpy"]