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

[project]
name = "openetruscan"
version = "0.3.0"
description = "Open-source tools for ancient epigraphy — built for Etruscan, designed to be copied."
readme = "README.md"
license = {text = "MIT"}
requires-python = ">=3.10"
authors = [
    {name = "OpenEtruscan Contributors"},
]
keywords = [
    "etruscan",
    "epigraphy",
    "ancient-languages",
    "digital-humanities",
    "normalization",
    "old-italic",
    "tei",
    "epidoc",
]
classifiers = [
    "Development Status :: 3 - Alpha",
    "Intended Audience :: Science/Research",
    "License :: OSI Approved :: MIT License",
    "Operating System :: OS Independent",
    "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 :: Text Processing :: Linguistic",
    "Topic :: Scientific/Engineering",
]
dependencies = [
    "click>=8.0",
    "pyyaml>=6.0",
]

[project.optional-dependencies]
epidoc = ["lxml>=4.9"]
corpus = ["openetruscan[epidoc]"]
postgres = ["psycopg2-binary>=2.9"]
prosopography = ["networkx>=3.0"]
server = ["fastapi", "uvicorn", "pydantic", "slowapi>=0.1.9"]
stats = ["numpy>=1.24", "scipy>=1.11"]
all = ["openetruscan[epidoc,prosopography,postgres,server,stats]"]
dev = [
    "pytest>=7.0",
    "pytest-cov>=4.0",
    "ruff>=0.4",
    "openetruscan[all]",
]

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

[project.urls]
Homepage = "https://openetruscan.com"
Documentation = "https://github.com/Eddy1919/openEtruscan#readme"
Repository = "https://github.com/Eddy1919/openEtruscan"
Issues = "https://github.com/Eddy1919/openEtruscan/issues"

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

[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["src"]

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

[tool.ruff.lint]
select = ["E", "F", "W", "I", "N", "UP", "B", "SIM"]
