-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpyproject.toml
More file actions
115 lines (100 loc) · 2.81 KB
/
Copy pathpyproject.toml
File metadata and controls
115 lines (100 loc) · 2.81 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
[build-system]
requires = ["hatchling", "hatch-vcs"]
build-backend = "hatchling.build"
[project]
name = "heiplanet-models"
license = {text = "MIT License"}
license-files = ["LICEN[CS]E*"]
readme = "README.md"
description = "Model backend for the HeiPlanet project"
requires-python = ">=3.11"
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
]
authors = [
{ name = "Scientific Software Center", email = "ssc@uni-heidelberg.de" },
]
dynamic = ["version"]
dependencies = [
"xarray[parallel]",
"netcdf4",
"matplotlib",
"numpy",
"dask",
"jupyter",
"cftime>=1.6.4.post1",
"geopandas>=1.0.1",
"scipy>=1.13.1",
"numba>=0.65.1",
"jax[cpu]>=0.10.0",
"diffrax>=0.7.2",
"rich>=15.0.0",
"cartopy>=0.25.0",
]
[project.optional-dependencies]
viz = ["graphviz"]
dev = [
"pre-commit",
"pytest",
"pytest-cov",
"graphviz", # we need this for the viz tests
"huggingface-hub", # for the hf_integration tests, which pull/push fixture data from/to the Hub
]
docs = [
"mkdocs-material",
"mkdocs-include-markdown-plugin",
"mkdocs-glightbox",
"mkdocs-jupyter",
"mkdocs-gen-files",
"mkdocs-literate-nav",
"mkdocs-section-index",
"mkdocs-minify-plugin",
"mkdocstrings-python",
]
[project.urls]
Homepage = "https://github.com/ssciwr/heiplanet-models"
Issues = "https://github.com/ssciwr/heiplanet-models/issues"
# tool-specific configurations
[tool.hatch.build.targets.wheel]
packages = ["src/heiplanet_models"]
[tool.hatch.version]
source = "vcs"
tag-pattern = "v(?P<version>.+)"
# test config
[tool.coverage.run]
branch = true
source = ["./src/heiplanet_models"]
omit = [
"src/heiplanet_models/__init__.py",
"src/heiplanet_models/*/__init__.py",
"src/heiplanet_models/Pmodel/run_model.py",
"test/*.py",
"scripts/*"
]
[tool.coverage.report]
# Regexes for lines to exclude from consideration
exclude_also = [
# Don't complain if non-runnable code isn't run:
"if __name__ == .__main__.:",
# Don't complain about abstract methods, they aren't run:
"@(abc\\.)?abstractmethod",
]
fail_under = 80
[tool.ruff.lint]
ignore = [
# Module names match the model class they define (e.g. Jmodel.py, Pmodel_*.py);
# renaming to snake_case would break imports across src/test/docs/scripts.
"N999",
]
[tool.ruff.lint.per-file-ignores]
# Exploratory notebooks intentionally return display fallbacks for arbitrary data errors.
"notebooks/*.ipynb" = ["BLE001"]
[tool.pytest.ini_options]
pythonpath = ["."]
markers = [
"integration: end-to-end tests with filesystem and model pipeline",
"regression: tests comparing against golden reference outputs",
"hf_integration: end-to-end tests against real Hugging Face Hub dataset repos; needs network and HF_TOKEN, run via the integration.yml workflow",
]