[tool.poetry]
name = "fittrackee"
version = "0.7.28"
description = "Self-hosted outdoor workout/activity tracker"
authors = ["SamR1"]
license = "AGPL-3.0"
readme = "README.md"
homepage = "https://github.com/SamR1/FitTrackee"
documentation = "https://samr1.github.io/FitTrackee"
classifiers = [
    "Development Status :: 4 - Beta",
    "Environment :: Web Environment",
    "Framework :: Flask",
    "License :: OSI Approved :: GNU Affero General Public License v3",
    "Operating System :: POSIX :: Linux",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.8",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: JavaScript"
]
exclude = ["fittrackee/tests"]

[tool.poetry.dependencies]
python = "^3.8.1"
authlib = "=1.3.0"
babel = "^2.11.0"
click = "^8.1.7"
dramatiq = {version = "^1.15.0", extras = ["redis"]}
flask = "^3.0.0"
flask-bcrypt = "^1.0.1"
flask-dramatiq = "^0.6.0"
flask-limiter = {version = "^3.5.0", extras = ["redis"]}
flask-migrate = "^4.0.5"
flask-sqlalchemy = "3.0.5"
gpxpy = "=1.6.2"
gunicorn = "^21.2.0"
humanize = "^4.9.0"
psycopg2-binary = "^2.9.9"
pyjwt = "^2.8.0"
pyopenssl = "^23.3.0"
pytz = "^2023.3"
shortuuid = "^1.0.11"
staticmap = "^0.5.7"
sqlalchemy = "=1.4.51"
ua-parser = "^0.18.0"

[tool.poetry.group.dev.dependencies]
bandit = "^1.7.6"
black = "^23.12.1"
flake8 = "^7.0.0"  # requires Python >=3.8.1
freezegun = "^1.4.0"
furo = "^2023.9.10"
mypy = "^1.8.0"
pytest = "^7.4.4"
pytest-black = "^0.3.12"
pytest-cov = "^4.1.0"
pytest-html = "^3.2.0"
pytest-isort = "^3.1.0"
pytest-runner = "^6.0.1"
pytest-selenium = "^4.0.1"
pytest-xdist = {extras = ["psutil"], version = "^3.5.0"}
recommonmark = "^0.7.1"
selenium = "4.9.1"
sphinx = "^7.1"
sphinx-copybutton = "^0.5.2"
sphinx-intl = "^2.1.0"
sphinxcontrib-httpdomain = "^1.8.1"
types-freezegun = "^1.1"
types-pytz = "^2023.3"
types-redis = "^4.6"
types-requests = "^2.31"

[tool.poetry.scripts]
fittrackee = 'fittrackee.__main__:main'
fittrackee_worker = 'fittrackee.__main__:worker'  # disabled
ftcli = 'fittrackee.cli:cli'
fittrackee_set_admin = 'fittrackee.__main__:set_admin'  # deprecated
fittrackee_upgrade_db = 'fittrackee.__main__:upgrade_db'  # deprecated

[tool.black]
line-length = 79
skip-string-normalization = true
target-version = ["py38"]
include = ".py$"
exclude = "migrations"

[tool.isort]
multi_line_output = 3
include_trailing_comma = true
force_grid_wrap = 0
combine_as_imports = true

[tool.bandit]
exclude_dirs = ["fittrackee/tests/*", "fittrackee/migrations/*"]

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