[project]
name = "oersted"
dynamic = ["version"]
authors = [{name = "Ryan Etkins", email = "retkins@pm.me"}]
description = "Lightning-fast magnetic fields calculations"
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
    "numpy>=2.0.0",     # atan2 introduced here
]

# Optional deps not exposed to pypi install interface 
[dependency-groups]
dev = [
    # Test
    "pytest==9.0.2",
    "ty==0.0.22",
    "ruff==0.15.5",
    "matplotlib>=3.10",
    # Docs
    "mkdocs>=1.6.0",
    "mkdocs-terminal==4.8.0",
    "mkdocs-material>=9.5.25",
    "mkdocstrings[python]==1.0.3",
]

# optional, but accessible from pypi
[project.optional-dependencies]
mesh = [
    "gmsh>=4.15", 
    "pyvista>=0.43"
]

[build-system]
requires = ["maturin>=1.0,<2.0"]
build-backend = "maturin"

[tool.maturin]
python-source = "src"
python-packages = ["oersted"]
module-name = "oersted._oersted"
features = ["python", "parallel"]
profile = "release"
version = { source = "cargo" }
include = [
  { path = "all", format = ["sdist", "wheel"] },
]

[tool.ruff]
#line-length = 150

[tool.ruff.lint]
select = [
    # pycodestyle
    "E",
    # Pyflakes
    "F",
    # pyupgrade
    "UP",
    # flake8-bugbear
    "B",
    # flake8-simplify
    "SIM",
]