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

[project]
name = "merm"
description = "Pure Python Mermaid diagram renderer"
requires-python = ">=3.10"
dynamic = ["version"]
readme = "README.md"
license = "MIT"
keywords = ["mermaid", "diagram", "svg", "flowchart", "sequence-diagram"]
classifiers = [
    "Development Status :: 3 - Alpha",
    "Intended Audience :: Developers",
    "License :: OSI Approved :: MIT License",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Topic :: Software Development :: Libraries",
    "Topic :: Multimedia :: Graphics",
]

[project.optional-dependencies]
fonts = ["fonttools"]
png = ["Pillow"]

[project.scripts]
merm = "merm.cli:main"

[dependency-groups]
dev = [
    "cairosvg>=2.8.2",
    "hatch",
    "mutmut>=3.5.0",
    "pillow>=12.1.1",
    "pytest",
    "pytest-cov",
    "ruff",
    "scikit-image>=0.25.2",
]

[tool.ruff]
target-version = "py310"
line-length = 88

[tool.ruff.lint]
select = ["E", "F", "I", "W"]

[tool.pytest.ini_options]
markers = [
    "comparison: marks tests that compare merm output against mmdc reference SVGs",
]

[tool.mutmut]
paths_to_mutate = ["src/merm/render/svg.py", "src/merm/render/edges.py", "src/merm/render/shapes.py"]
tests_dir = ["tests/"]
also_copy = ["src/"]
pytest_add_cli_args = ["-x", "-q", "--ignore=tests/test_cli.py", "--ignore=tests/test_comparison.py", "--ignore=tests/test_corpus.py", "--ignore=tests/test_corpus_rendering.py", "--ignore=tests/test_flowchart_parser.py", "--ignore=tests/test_mutation_killing.py", "--ignore=tests/test_lr_subgraph_layout.py"]

[tool.hatch.version]
path = "src/merm/__version__.py"

[tool.hatch.build.targets.wheel]
packages = ["src/merm"]
