cygv 0.1.2

Compute GV and GW invariants of CY manifolds.
Documentation
[build-system]
requires = ["maturin>=1.5,<2.0"]
build-backend = "maturin"

[project]
name = "cygv"
requires-python = ">=3.9"
readme = "README.md"
authors = [
    {name = "Andres Rios Tascon"}
]
classifiers = [
    "Development Status :: 3 - Alpha",
    "Intended Audience :: Science/Research",
    "License :: OSI Approved :: Apache Software License",
    "License :: OSI Approved :: MIT License",
    "Operating System :: MacOS",
    "Operating System :: Microsoft :: Windows",
    "Operating System :: POSIX :: Linux",
    "Programming Language :: Rust",
    "Programming Language :: Python",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3 :: Only",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Programming Language :: Python :: Implementation :: CPython",
    "Topic :: Scientific/Engineering",
    "Topic :: Scientific/Engineering :: Mathematics",
    "Topic :: Scientific/Engineering :: Physics",
]
dynamic = ["version"]
dependencies = [
    "mpmath",
    "numpy",
]

[project.optional-dependencies]
tests = [
    "pytest",
]

[project.urls]
Repository = "https://github.com/ariostas/cygv"

[tool.maturin]
python-source = "python"
features = ["pyo3/extension-module"]

[tool.pytest.ini_options]
minversion = "7.0"
addopts = ["-ra", "--showlocals", "--strict-markers", "--strict-config"]
xfail_strict = true
filterwarnings = ["error"]
log_cli_level = "info"
testpaths = [
    "python/tests",
]

[tool.ruff]
src = ["python"]

[tool.ruff.lint]
extend-select = [
    "B",        # flake8-bugbear
    "I",        # isort
    "ARG",      # flake8-unused-arguments
    "C4",       # flake8-comprehensions
    "EM",       # flake8-errmsg
    "ICN",      # flake8-import-conventions
    "G",        # flake8-logging-format
    "PGH",      # pygrep-hooks
    "PIE",      # flake8-pie
    "PL",       # pylint
    "PT",       # flake8-pytest-style
    "PTH",      # flake8-use-pathlib
    "RET",      # flake8-return
    "RUF",      # Ruff-specific
    "SIM",      # flake8-simplify
    "T20",      # flake8-print
    "UP",       # pyupgrade
    "YTT",      # flake8-2020
    "EXE",      # flake8-executable
    "NPY",      # NumPy specific rules
    "PD",       # pandas-vet
    "FURB",     # refurb
    "PYI",      # flake8-pyi
]
ignore = [
    "PLR09",    # Too many <...>
    "PLR2004",  # Magic value used in comparison
    "ISC001",   # Conflicts with formatter
]
typing-modules = ["mypackage._compat.typing"]
isort.required-imports = ["from __future__ import annotations"]

[tool.ruff.lint.per-file-ignores]
"python/tests/**" = ["T20"]

[tool.mypy]
files = "python"
python_version = "3.9"
strict = true
enable_error_code = ["ignore-without-code", "redundant-expr", "truthy-bool"]
warn_unreachable = true
ignore_missing_imports = true