-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathpyproject.toml
More file actions
98 lines (92 loc) · 3.02 KB
/
Copy pathpyproject.toml
File metadata and controls
98 lines (92 loc) · 3.02 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
[build-system]
build-backend = "mesonpy"
requires = [
"numpy",
"pip",
"meson-python>=0.15.0",
"setuptools>=61.0",
"build",
]
[project]
name = "gospl"
dynamic = ["version"]
description = "Global Landscape Evolution Model"
readme = "README.md"
authors = [
{name = "Tristan Salles", email = "tristan.salles@sydney.edu.au"},
]
maintainers = [
{name = "Tristan Salles", email = "tristan.salles@sydney.edu.au"},
]
license = { file = "LICENSE" }
requires-python = ">=3.11"
classifiers = [
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Scientific/Engineering :: GIS",
"Topic :: Software Development :: Libraries :: Python Modules",
]
keywords = [
"python",
"paleogeography",
"sediment-transport",
"paleoclimate",
"model",
"landscape",
"landscape-evolution",
"basin-modeling",
"erosion-process",
"compaction",
"lithology",
"science",
]
dependencies = [
"numpy>=1.16.0",
"petsc4py",
"scipy",
"numpy-indexed",
"pandas",
"h5py",
"vtk",
"ruamel.yaml",
"mpi4py",
"pyshtools",
]
[tool.setuptools]
packages = [
"gospl",
"gospl._fortran",
"gospl.analyse",
]
[project.optional-dependencies]
dev = ["pip-tools", "pytest"]
# Post-processing analysis tools (gospl.analyse). numba accelerates the
# sediment-provenance routing sweep; geopandas assigns source/sink classes from
# shapefiles; netCDF4 backs the gridexport NetCDF writer; matplotlib draws the
# river profiles, stratigraphic sections, wells and Wheeler diagrams. All
# optional — the tools fall back / error clearly without them.
analysis = ["numba", "geopandas", "netCDF4", "matplotlib"]
# Console entry points for the post-processing tools, so they can be called
# directly as commands (equivalent to `python -m gospl.analyse.<tool>`).
# Available after a (re)install of the package.
[project.scripts]
gospl = "gospl.cli:main"
gospl-strata-volume = "gospl.analyse.stratamesh:main"
gospl-provenance = "gospl.analyse.provenance:main"
gospl-grid = "gospl.analyse.gridexport:main"
gospl-catchment = "gospl.analyse.catchment:main"
gospl-section = "gospl.analyse.stratasection:main"
gospl-ela = "gospl.tools.ela_from_temperature:main"
[tool.pytest.ini_options]
# Marker registry — discovered no matter which directory pytest is
# invoked from (tests/ or benchmarks/). Mirrored in tests/conftest.py
# for backward compatibility but pyproject is the authoritative source.
markers = [
"slow: requires a full goSPL Model instantiation (mesh + PETSc DMPlex + MPI). Skipped when fixture inputs are absent.",
"benchmark: analytical benchmark against exact solutions — requires scipy, matplotlib, pandas; skipped automatically if dependencies unavailable.",
]
[project.urls]
Homepage = "https://github.com/Geodels/gospl"
Documentation = "https://gospl.readthedocs.io"