Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
144 lines (133 loc) · 5.1 KB
/
Copy pathpyproject.toml
File metadata and controls
144 lines (133 loc) · 5.1 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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# Python package configuration
# ============================================================================ #
[build-system]
requires = [
"scikit-build-core>=0.11.0",
"f90wrap==0.3.0", # f90wrap_gvec.py patches this version's generator internals
"numpy>=2", # for f2py
]
build-backend = "scikit_build_core.build"
# ============================================================================ #
[project]
name = "gvec"
description = "Galerkin Variational Equilibrium Code"
dependencies = [
"PyYAML",
"f90nml",
"f90wrap==0.3.0", # keep the runtime aligned with the patched generator
"matplotlib",
"netcdf4",
"numpy>=2",
"pyevtk",
"requests",
"scipy",
"tabulate",
"tomlkit",
"tqdm",
"xarray",
]
authors = [
{name = "Florian Hindenlang"},
{name = "Robert Babin"},
# with additional contributions from a number of people. Thank you!
]
maintainers = [
{name = "Florian Hindenlang", email = "florian.hindenlang@ipp.mpg.de"},
{name = "Robert Babin", email = "robert.babin@ipp.mpg.de"},
]
requires-python = ">=3.10" # match-case, intrinsic typing union
classifiers = [
"Development Status :: 3 - Alpha",
"Programming Language :: Python :: 3.10", # Ubuntu 22.04
"Programming Language :: Python :: 3.11", # not routinely tested
"Programming Language :: Python :: 3.12", # Ubuntu 24.04
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14", # Ubuntu 26.04
"Programming Language :: Fortran",
"Intended Audience :: Science/Research",
"Topic :: Scientific/Engineering :: Physics",
]
keywords = ["plasma", "mhd", "equilibrium"]
readme.file = "README.md"
readme.content-type = "text/markdown"
license = "MIT"
license-files = ["LICENSE.txt"]
dynamic = ["version"]
[project.urls]
Homepage = "https://gitlab.mpcdf.mpg.de/gvec-group/gvec"
Documentation = "https://gvec.readthedocs.io/latest"
Repository = "https://gitlab.mpcdf.mpg.de/gvec-group/gvec"
Mirror = "https://github.com/gvec-group/gvec"
Issues = "https://gitlab.mpcdf.mpg.de/gvec-group/gvec/-/issues"
[project.optional-dependencies]
dev = ["pytest"]
free_boundary = ["fbtools @ git+https://gitlab.mpcdf.mpg.de/nmpp-mhd-group/fhindenlang/fbtools.git"]
examples = ["jupyter", "ipywidgets", "ipympl", "simsopt", "nbformat", "plotly<6.0"]
[project.scripts]
pygvec = "gvec.scripts.main:main"
# ============================================================================ #
[tool.scikit-build]
minimum-version = "0.11"
logging.level = "DEBUG"
metadata.version.provider = "scikit_build_core.metadata.setuptools_scm"
sdist.include = [
"python/gvec/_version.py",
]
sdist.exclude = [
"CI_templates",
"CI_images",
"docs",
"template",
"test-CI",
"tools",
".gitlab-ci.yml",
".mailmap",
".pre-commit-config.yaml",
]
build-dir = "pybuild"
editable.rebuild = false
build.verbose = true
[tool.scikit-build.cmake]
version = ">=3.22"
build-type = "Release"
[tool.scikit-build.cmake.define]
CMAKE_HOSTNAME = {env="CMAKE_HOSTNAME"}
COMPILE_PYGVEC = "On"
COMPILE_GVEC = "On"
COMPILE_GVEC_TO_CASTOR3D = "On"
COMPILE_GVEC_TO_GENE = "On"
COMPILE_GVEC_TO_JOREK = "On"
COMPILE_GVEC_TO_HOPR = "On"
LINK_GVEC_TO_NETCDF = "On"
COMPILE_GVEC_AS_STATIC_LIB = "On"
USE_OPENMP = "On"
USE_MPI = "Off"
USE_FTIMINGS = "Off"
[tool.setuptools_scm]
version_file = "python/gvec/_version.py"
# ============================================================================ #
[tool.pytest.ini_options]
testpaths = ["test-CI"]
norecursedirs = "tools"
addopts = [
"--import-mode=importlib",
]
markers = [
"slow: mark resolution studies and other tests outside the fast CI budget",
"example: mark test as a example, which are all tests specified in `test-CI/examples`, executed in folder `rundir/example`",
"restart: mark test as a restart (deduced from example folder name). Needs the example to be run first!",
"shortrun: mark test as a short run (executed in folder `rundir/shortrun`, overwrites parameters: `testlevel=-1` and `MaxIter=1`)",
"debugrun: mark test as a debug run (executed in folder `rundir/debugrun`, overwrites parameters: `testlevel=2` and `MaxIter=1`)",
"run_stage: mark test belonging to the run stage (executed for all testgroups into a `rundir`)",
"post_stage: mark test belonging to the post-processing stage (executed for all testgroups into a `postdir/post`, activates visualization parameters). Needs `run_stage` to be executed before in a given `rundir` directory.",
"regression_stage: mark test belonging to the regression stage (compares files from `rundir` and `refdir`. The `--refdir` argument is mandatory!",
"converter_stage: mark test belonging to the post-processing converter stage (executed for all testgroups into a `postdir/converter-name`, for all compiled converters). Needs `run_stage` to be executed before in a given `rundir` directory.",
"unit: mark test as a unittest - a test that is isolated and tests a specific functionality",
"pygvec: mark test that are related to the python bindings",
]
[tool.ruff]
line-length = 96
[tool.ruff.lint.per-file-ignores]
"test_*.py" = ["F841"]
"*.py" = ["F401"]
"docs/conf.py" = ["E402"]