-
Notifications
You must be signed in to change notification settings - Fork 5
/
pyproject.toml
148 lines (131 loc) · 3.9 KB
/
pyproject.toml
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
# Refs:
# https://packaging.python.org/en/latest/specifications/declaring-project-metadata/#example
# https://setuptools.pypa.io/en/latest/userguide/dependency_management.html#dependencies-management-in-setuptools
[build-system]
requires = ["setuptools", "setuptools-scm", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "itwinai"
version = "0.2.3"
description = "AI and ML workflows module for scientific digital twins."
readme = "README.md"
requires-python = ">=3.10"
license = { file = "LICENSE" }
keywords = ["ml", "ai", "hpc"]
maintainers = [
{ name = "Matteo Bunino", email = "[email protected]" },
{ name = "Jarl Sondre Sæther", email = "[email protected]" },
{ name = "Anna Lappe", email = "[email protected]" },
]
classifiers = [
"Development Status :: 4 - Beta",
"Programming Language :: Python",
]
dependencies = [
"rich>=13.5.3",
"typer>=0.9.0",
"numpy<2.0.0",
"wandb>=0.18.7",
"mlflow>=2.17.2",
"wheel>=0.45.0",
"seaborn>=0.13.2",
"py-cpuinfo>=9.0.0",
"packaging",
"pydantic",
"pyyaml>=6.0.2",
"omegaconf>=2.3.0",
"jsonargparse[signatures]>=4.34.0",
"matplotlib>=3.9.2",
"pip>=24.3.1",
"prov4ml@git+https://github.com/matbun/ProvML@new-main",
"ray",
"prov",
]
[project.optional-dependencies]
torch = [
"torch==2.4.*",
"lightning==2.*",
"torchmetrics",
"torchvision",
"torchaudio",
]
tf = [
"tensorflow==2.16.*",
"tf_keras==2.16.*"
]
tf-cuda = [
"tensorflow[and-cuda]==2.16.*",
"tf_keras==2.16.*"
]
dev = [
"pytest>=7.4.2",
"pytest-mock>=3.11.1",
"pytest-cov>=4.1.0",
"ipykernel>=6.29.5",
"ipython",
"isort>=5.13.2",
]
docs = [
"sphinx-rtd-theme==2.0.0",
"nbsphinx==0.9.4",
"myst-parser==2.0.0",
"IPython",
"tensorflow==2.16.*",
]
macos = ["prov4ml[apple]@git+https://github.com/matbun/ProvML@new-main"]
nvidia = ["prov4ml[nvidia]@git+https://github.com/matbun/ProvML@new-main"]
# amd = ["prov4ml[amd]@git+https://github.com/matbun/ProvML@new-main"]
[project.urls]
Homepage = "https://www.intertwin.eu/"
Documentation = "https://itwinai.readthedocs.io/"
Repository = "https://github.com/interTwin-eu/itwinai"
# Changelog = "https://github.com/me/spam/blob/master/CHANGELOG.md"
[project.scripts]
itwinai = "itwinai.cli:app"
# [project.gui-scripts]
# spam-gui = "spam:main_gui"
# [project.entry-points."spam.magical"]
# tomatoes = "spam:main_tomatoes"
[tool.pytest.ini_options]
markers = [
"integration: integration tests (deselect with '-m \"not integration\"')",
"hpc: needs SLURM and HPC resources (multiple GPUs/nodes). (deselect with '-m \"not hpc\"')",
"torch_dist: runs with torch DDP distributed strategy. (deselect with '-m \"not torch_dist\"')",
"deepspeed_dist: runs with torch DeepSpeed distributed strategy. (deselect with '-m \"not deepspeed_dist\"')",
"horovod_dist: runs with torch Horovod distributed strategy. (deselect with '-m \"not horovod_dist\"')",
"functional: functional tests. (deselect with '-m \"not functional\"')",
"memory_heavy: high memory footprint. (deselect with '-m \"not heavy_memory\"')",
]
[tool.uv]
# This is how you can force uv to accept conflicting extras
conflicts = [
[
{ extra = "tf-cuda" },
{ extra = "torch" },
],
]
# Use PyTorch with CUDA for anything that is not macos
[tool.uv.sources]
torch = [
{ index = "pytorch-cu121", marker = "platform_system != 'Darwin'"},
]
torchvision = [
{ index = "pytorch-cu121", marker = "platform_system != 'Darwin'"},
]
# Specific index for pytorch
[[tool.uv.index]]
name = "pytorch-cu121"
url = "https://download.pytorch.org/whl/cu121"
explicit = true
# Ruff configuration: https://docs.astral.sh/ruff/configuration/
[tool.ruff]
line-length = 95
[tool.ruff.lint]
select = ["E", "F", "I", "W"]
ignore = ["E203"]
fixable = ["ALL"]
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
skip-magic-trailing-comma = false
line-ending = "auto"