[project]
name = "momapy"
dynamic = ["version"]
description = "A library to work with molecular maps"
authors = [{ name = "Adrien Rougny", email = "adrienrougny@gmail.com" }]
dependencies = [
  "frozendict>=2.3.10",
  "numpy>=1.26.2",
  "pyparsing>=3.1.1",
  "shapely>=2.0.2",
  "colorama>=0.4.6",
  "bezier>=2023.7.28",
  "lxml>=5.3.2",
  "uharfbuzz>=0.53.0",
  "matplotlib>=3.10.8",
  "typing-extensions>=4.15.0",
]
requires-python = ">=3.10"
readme = "README.md"
license = { text = "GPL-3.0-or-later" }
classifiers = [
  "Programming Language :: Python :: 3",
  "Programming Language :: Python :: 3.10",
  "Programming Language :: Python :: 3.11",
  "Programming Language :: Python :: 3.12",
  "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
  "Operating System :: OS Independent",
]

[project.urls]
Homepage = "https://github.com/adrienrougny/momapy"
Issues = "https://github.com/adrienrougny/momapy/issues"

[project.optional-dependencies]
skia = ["skia-python>=138.0"]
cairo = ["pycairo>=1.29.0", "pygobject>=3.54.5"]
all = ["momapy[cairo, skia]"]

[dependency-groups]
dev = [
  "griffe-fieldz>=0.1.2",
  "mkdocstrings-python>=1.16.12",
  "mkdocs-material>=9.6.16",
  "griffe-inherited-docstrings>=1.1.1",
  "mkdocs-jupyter>=0.25.1",
  "mkdocs-pygments>=0.0.2",
  "ruff>=0.12.8",
  "pre-commit>=4.5.1",
  "git-cliff>=2.12.0",
  { include-group = "test" },
]
test = ["pytest>=9.0.2"]

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

[build-system]
requires = ["hatchling", "hatch-vcs"]
build-backend = "hatchling.build"

[tool.hatch.version]
source = "vcs"

[tool.hatch.version.raw-options]
tag_regex = '^v(?P<version>([0-9].*))'

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