[project]
name = "ptyx"
version = "30.0.0"
description = "pTyX is a python precompiler for LaTeX."
authors = [{ name = "Nicolas Pourcelot", email = "nicolas.pourcelot@gmail.com" }]
requires-python = ">=3.10"
readme = "README.md"
license = "GPL-3.0-or-later"
keywords = [
    "python",
    "tikz",
    "latex",
    "pdf",
    "exam",
    "mcq",
    "student",
]
dependencies = [
    "numpy>=2.1.3,<3",
    "sympy>=1.10.1,<2",
    "psutil>=5.9.4",
    "pymupdf>=1.21.1",
]

[project.urls]
Repository = "https://github.com/wxgeo/ptyx"

[project.scripts]
ptyx = "ptyx.script:ptyx"

[dependency-groups]
dev = [
    "pytest>=7.2.1,<8",
    "mypy>=1.0.1,<2",
    "black>=24.10.0,<25",
    "sphinx-autodoc-typehints>=1.19.5,<2",
    "sphinx-rtd-theme>=1.0.0,<2",
    "myst-parser>=0.18.0,<0.19",
    "python-semantic-release==7.28.1",
    "ruff>=0.7.2,<0.8",
    "rust-just>=1.43.0",
]

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.semantic_release]
version_variable = "pyproject.toml:version"

[tool.mypy]
ignore_missing_imports = true
implicit_optional = true
warn_unused_ignores = true
strict_equality = true

[tool.pytest.ini_options]
testpaths = [
    "tests",
]
filterwarnings = [
    'ignore:builtin type swigvarlink has no __module__ attribute:DeprecationWarning',
    'ignore:builtin type SwigPyPacked has no __module__ attribute:DeprecationWarning',
    'ignore:builtin type SwigPyObject has no __module__ attribute:DeprecationWarning',
]

[tool.black]
line-length = 110

[tool.ruff]
line-length = 110

