pyproject.toml
Rama main · réplica de lectura del repositorio original.
[build-system]
requires = ["setuptools>=68"]
build-backend = "setuptools.build_meta"
[project]
name = "maskgate"
version = "0.1.0"
description = "Open-source, self-hosted data masking proxy for LLM APIs"
readme = "README.md"
requires-python = ">=3.11"
license = { text = "Apache-2.0" }
authors = [{ name = "MaskGate contributors" }]
dependencies = [
"fastapi>=0.115,<1.0",
"httpx>=0.27,<1.0",
"pydantic>=2.7,<3.0",
"defusedxml>=0.7,<1.0",
"python-multipart>=0.0.20,<1.0",
"python-dotenv>=1.0,<2.0",
"PyYAML>=6.0,<7.0",
"uvicorn[standard]>=0.30,<1.0",
]
[project.optional-dependencies]
dev = [
"httpx2>=2.9,<3.0",
"pytest>=9.0.3,<10.0",
"pytest-cov>=5.0,<7.0",
"ruff>=0.12,<1.0",
"pip-audit>=2.9,<3.0",
"uv>=0.8,<1.0",
"playwright>=1.62,<2.0",
]
media = [
"onnxruntime>=1.20,<2.0",
"opencv-python>=4.10,<5.0",
"Pillow>=11.0,<13.0",
"pypdfium2>=5.0,<6.0",
"rapidocr>=3.9,<4.0",
]
[tool.setuptools.packages.find]
include = ["app*"]
[tool.pytest.ini_options]
testpaths = ["app/tests"]
addopts = "-q"
[tool.coverage.run]
branch = true
omit = ["app/tests/*"]
[tool.coverage.report]
show_missing = true
skip_covered = false
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "I"]
[tool.ruff.lint.per-file-ignores]
# Inline OOXML fixtures are intentionally kept readable as complete XML tags.
"app/tests/test_media_anonymization.py" = ["E501"]
"app/tests/test_media_security.py" = ["E501"]