[project]
name = "finguard"
version = "0.4.2"
description = "FinGuard \u2014 Open-source LLM safety layer for financial AI"
authors = [
    { name = "FinGuard Authors" }
]
readme = "README.md"
license = { text = "MIT" }
requires-python = ">=3.10,<3.13"
dependencies = [
    "presidio-analyzer>=2.2.35",
    "presidio-anonymizer>=2.2.35",
    "llm-guard[onnxruntime]>=0.3.14",
    "pydantic",
    "pyyaml>=6.0",
    "numpy<2.0.0",
    "torch>=2.4.0",
    "onnx",
    "onnxruntime",
    "optimum",
    "huggingface_hub[hf_xet]",
    "pip"
]

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

[project.optional-dependencies]
dev = [
    "pytest>=7.0.0",
    "pytest-asyncio>=0.23.0",
]
observability = [
    "langfuse>=4.0.0",
    "opentelemetry-api>=1.40.0",
    "opentelemetry-sdk>=1.40.0"
]
all = [
    "pytest>=7.0.0",
    "pytest-asyncio>=0.23.0",
    "langfuse>=4.0.0",
    "opentelemetry-api>=1.40.0",
    "opentelemetry-sdk>=1.40.0",
    "mkdocs-material",
    "mkdocstrings[python]",
    "pymdown-extensions"
]
docs = [
    "mkdocs-material",
    "mkdocstrings[python]",
    "pymdown-extensions"
]

[tool.hatch.build.targets.wheel]
packages = ["finguard"]

[tool.pytest.ini_options]
pythonpath = ["."]
asyncio_mode = "auto"

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