[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 :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "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