[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

[tool.poetry]
name = "fietsboek"
description = "GPX file sharing website"
version = "0.9.0"
license = "AGPL-3.0-or-later"
readme = "README.md"
authors = [
    "Daniel Schadt <fietsboek@kingdread.de>",
]
classifiers = [
    'Development Status :: 3 - Alpha',
    'Framework :: Pyramid',
    'Operating System :: POSIX :: Linux',
    'Topic :: Internet :: WWW/HTTP',
    'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
    'Topic :: Internet :: WWW/HTTP :: WSGI :: Application',
]
documentation = "https://docs.fietsboek.org/"
homepage = "https://fietsboek.org/"
repository = "https://gitlab.com/dunj3/fietsboek"
keywords = ["web", "gpx"]

[tool.poetry.dependencies]
python = "^3.9"

pyramid = "^2"
pyramid_jinja2 = "^2.10"
pyramid_debugtoolbar = "^4.9"
pyramid_retry = "^2.1"
pyramid_tm = "^2.5"
waitress = "^3"

SQLAlchemy = { version = "^2.0.15", extras = ["mypy"] }
alembic = "^1.8"
transaction = "^4"
"zope.sqlalchemy" = "^3.0"
redis = "^5"

Babel = "^2.11"
cryptography = "^42"
gpxpy = "^1.5"
markdown = "^3.4"
nh3 = "^0.2.9"
Click = "^8.1"
requests = "^2.28.1"

pydantic = "^2"
termcolor = "^2.1.1"
filelock = "^3.8.2"
brotli = "^1.0.9"
click-option-group = "^0.5.5"
fitparse = "^1.2.0"

[tool.poetry.group.docs]
optional = true

[tool.poetry.group.docs.dependencies]
Sphinx = "^7.0"
sphinx-autodoc-typehints = "^1.19.5"

[tool.poetry.group.testing]
optional = true

[tool.poetry.group.testing.dependencies]
pytest = "^8.0.0"
webtest = "^3.0.0"
pytest-cov = "^5.0.0"
pytest-playwright = "^0.4.0"

[tool.poetry.group.linters]
optional = true

[tool.poetry.group.linters.dependencies]
pylint = "^3"
black = "^24.0.0"

[tool.poetry.group.types]
optional = true

[tool.poetry.group.types.dependencies]
mypy = "^1.1"
types-markdown = "^3.4.2.1"
types-requests = "^2.28.11.5"
types-babel = "^2.11.0.7"
types-redis = "^4.3.21.6"

[tool.poetry.scripts]
fietsctl = "fietsboek.scripts.fietsctl:cli"
fietscron = "fietsboek.scripts.fietscron:cli"
fietsupdate = "fietsboek.updater.cli:cli"

[tool.poetry.plugins."paste.app_factory"]
main = "fietsboek:main"

[tool.black]
line-length = 100
extend-exclude = '''upd_.+\.py|^/fietsboek/alembic/versions/.+'''

[tool.isort]
profile = "black"
line_length = 99
known_local_folder = ["fietsboek"]