-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathpyproject.toml
More file actions
125 lines (111 loc) · 3.49 KB
/
Copy pathpyproject.toml
File metadata and controls
125 lines (111 loc) · 3.49 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
[project]
name = "marimba"
version = "1.2.0"
description = "A Python framework for structuring, processing, packaging and distributing FAIR scientific image datasets"
authors = [
{ name = "Chris Jackett", email = "chris.jackett@csiro.au" },
{ name = "Kevin Barnard", email = "kbarnard@mbari.org" },
]
requires-python = ">=3.12,<3.15"
readme = "README.md"
license = {file = "LICENSE"}
dependencies = [
"typer>=0.16.0,<0.27",
"rich>=14.1.0,<16",
"PyYAML~=6.0",
"ifdo>=1.6.0,<2",
"pillow>=12.1.1,<13",
"opencv-python-headless>=4.11.0,<5",
"gitpython>=3.1.45,<4",
"boto3>=1.40.6,<2",
"staticmap>=0.5.7,<0.6",
"PyExifTool>=0.5.6,<1",
"tabulate>=0.9.0,<0.11",
"av>=16.1.0,<18",
# numpy upper-bound tracks opencv-python-headless ABI compat; opencv 4.13 is verified against numpy 2.4. Bump deliberately when opencv builds against the next numpy minor.
"numpy>=2.2.5,<2.6.0",
# botocore is technically a boto3 transitive, but s3.py imports botocore.exceptions.ClientError directly, so we
# pin it explicitly to keep deptry happy and lock the version we're testing against.
"botocore>=1.40.6,<2",
"requests>=2.32.4,<3",
"psutil>=7.0.0,<8",
]
keywords = [
"FAIR", "scientific-data", "image-processing", "marine-science",
"metadata", "iFDO", "dataset", "pipeline", "ocean-imaging",
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Science/Research",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Topic :: Scientific/Engineering :: Image Processing",
"Topic :: Scientific/Engineering :: Information Analysis",
"Topic :: Software Development :: Libraries :: Python Modules",
"License :: Other/Proprietary License",
]
[project.scripts]
marimba = "marimba.main:marimba_cli"
[project.urls]
"Homepage" = "https://github.com/csiro-fair/marimba"
"Documentation" = "https://github.com/csiro-fair/marimba/tree/main/docs"
"Bug Tracker" = "https://github.com/csiro-fair/marimba/issues"
"Changelog" = "https://github.com/csiro-fair/marimba/blob/main/CHANGELOG.md"
"Source" = "https://github.com/csiro-fair/marimba"
[dependency-groups]
dev = [
# Core Project Management
"hatch>=1.14.1,<2",
# Formatting & Linting
"black>=26.3.1,<27",
"ruff>=0.12.8,<0.16",
# Static Type Checking
"mypy>=1.17.1,<3",
"types-pyyaml>=6.0.12.20240311,<7",
"types-tabulate>=0.9.0.20240106,<0.11",
"types-requests>=2.32.0.20240622,<3",
# Testing
"pytest>=9.0.3,<10",
"pytest-cov>=6.2.1,<8",
"pytest-mock>=3.15.0,<4",
# Code & Dependency Analysis
"bandit>=1.7.8,<2",
"deptry>=0.23.0",
"vulture>=2.14.0,<3",
# Git Hooks & Automation
"pre-commit>=4.3.0,<5",
# Packaging & Publishing
"twine>=6.1.0,<7",
]
[tool.black]
line-length = 120
target-version = ['py312']
include = '\.pyi?$'
exclude = '''
/(
\.git
| \.mypy_cache
| \.env
| \.venv
| build
| dist
| temp
)/
'''
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["marimba"]
[tool.hatch.build.targets.wheel.force-include]
"marimba/py.typed" = "marimba/py.typed"
[tool.deptry.package_module_name_map]
pillow = ["PIL"]
PyYAML = ["yaml"]
gitpython = ["git"]
opencv-python-headless = ["cv2"]
PyExifTool = ["exiftool"]