[project] name = "gramps-webapi" description = "A RESTful web API for the Gramps genealogical database." authors = [ { name = "Gramps Development Team" }, { name = "David M. Straub", email = "straub@protonmail.com" } ] license = "AGPL-3.0-or-later" readme = "README.md" dynamic = ["version"] keywords = ["RESTful", "web API", "genealogy", "Gramps"] classifiers = [ "Programming Language :: Python :: 3", "Operating System :: OS Independent", ] requires-python = ">=3.11" dependencies = [ "gramps[all]>=6.0.4,<6.1.0", "PYGObject<=3.50.0", # keep in sync with Dockerfile.base "orjson", "Click>=7.0", "Flask>=2.1.0", "Flask-Caching>=2.0.0", "Flask-Compress>=1.17", "Flask-Cors", "Flask-JWT-Extended>=4.2.1,!=4.4.0,!=4.4.1", "Flask-Limiter>=2.9.0", "limits", # used directly to parse rate limit strings "Flask-SQLAlchemy", "marshmallow>=3.13.0", "waitress", "webargs", "SQLAlchemy>=2.0.0", "pdf2image", "Pillow>=11.2.1", "bleach[css]>=5.0.0", "jsonschema>=4", "ffmpeg-python", "boto3", "alembic", "celery[redis]", "Unidecode", "pytesseract", "gramps-object-query-language>=0.5.7,<0.6", "gramps-ql>=0.5.0", "psycopg2-binary", # PostgreSQL driver for the user DB and search index "requests", "yclade>=0.5.0", "Authlib>=1.9.0", "gramps-gedcom7>=0.4.0", "flask-smorest", "typing-extensions>=4.13.0", "pywebpush>=2.5.0,<3.0.0", "cryptography>=47.0.0", "py-vapid>=1.7.0", ] [project.optional-dependencies] # keep the providers in sync with Dockerfile.base ai = ["pydantic-ai-slim[openai,anthropic,google,mistral,groq,bedrock]>=1.101.0,<2.0.0"] face = ["opencv-python-headless>=4.8,<6"] sentry = ["sentry-sdk[flask]>=2.0.0"] test = ["pytest", "PyYAML"] all = ["pydantic-ai-slim[openai,anthropic,google,mistral,groq,bedrock]>=1.101.0,<2.0.0", "opencv-python-headless>=4.8,<6", "sentry-sdk[flask]>=2.0.0", "pytest", "PyYAML"] [project.urls] homepage = "https://github.com/gramps-project/gramps-web-api" repository = "https://github.com/gramps-project/gramps-web-api" [build-system] requires = ["setuptools>=64.0", "setuptools_scm[toml]>=6.2", "wheel"] build-backend = "setuptools.build_meta" [tool.isort] profile = "black" [tool.setuptools.dynamic] version = {attr = "gramps_webapi.__version__"} [tool.setuptools.packages.find] include = ["gramps_webapi", "gramps_webapi.*"]