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
|
[build-system]
requires = [
"scikit-build-core[pyproject]",
"nanobind>=2.0.0",
"petsc4py",
"mpi4py",
]
build-backend = "scikit_build_core.build"
[project]
name = "dolfinx_mpc"
version = "0.9.3"
description = "DOLFINx_MPC Python interface"
readme = "README.md"
requires-python = ">=3.8.0"
license = { file = "LICENSE" }
authors = [{ email = "dokken@simula.no", name = "Jørgen S. Dokken" }]
dependencies = [
"numpy>=1.21",
"cffi",
"petsc4py",
"mpi4py",
"fenics-dolfinx>=0.9.0",
]
[project.optional-dependencies]
docs = ['jupyter-book', 'jupytext', "scipy"]
lint = ["ruff", "mypy"]
optional = ["numba"]
test = ["pytest", "coverage", "scipy"]
all = [
"dolfinx_mpc[docs]",
"dolfinx_mpc[optional]",
"dolfinx_mpc[lint]",
"dolfinx_mpc[test]",
]
[tool.scikit-build]
wheel.packages = ["dolfinx_mpc"]
sdist.exclude = ["*.cpp"]
cmake.build-type = "Release"
[tool.pytest]
junit_family = "xunit2"
[tool.mypy]
ignore_missing_imports = true
# Folders to exclude
exclude = ["docs/", "build/"]
# Folder to check with mypy
files = ["src", "tests"]
[tool.ruff]
src = ["benchmarks", "demos", "dolfinx_mpc"]
line-length = 120
indent-width = 4
[tool.ruff.lint]
select = [
# Pyflakes
"F",
# Pycodestyle
"E",
"W",
# isort
"I001",
]
[tool.ruff.lint.isort]
known-first-party = ["dolfinx_mpc"]
known-third-party = [
"basix",
"dolfinx",
"ffcx",
"ufl",
"gmsh",
"numpy",
"pytest",
]
section-order = [
"future",
"standard-library",
"mpi",
"third-party",
"first-party",
"local-folder",
]
[tool.ruff.lint.isort.sections]
"mpi" = ["mpi4py", "petsc4py"]
|