[metadata]
name = Canaille
version = 0.0.5
url = https://gitlab.com/yaal/canaille
project_urls =
    Code = https://gitlab.com/yaal/canaille
    Issue Tracker = https://gitlab.com/yaal/canaille/-/issues
license = MIT
license_files = LICENSE.md
maintainer = Yaal
maintainer_email = contact@yaal.fr
description = Simple OAuth2/OpenID Connect server based upon LDAP
long_description = file: README.md
long_description_content_type = text/markdown
classifiers =
    Environment :: Web Environment
    License :: OSI Approved :: MIT License
    Operating System :: OS Independent
    Programming Language :: Python
    Topic :: System :: Systems Administration :: Authentication/Directory
    Topic :: System :: Systems Administration :: Authentication/Directory :: LDAP

[options]
packages = find:
include_package_data = true
python_requires = >= 3.7
install_requires =
    authlib
    click
    email_validator
    flask
    flask-babel
    flask-themer
    flask-wtf
    python-ldap
    sentry-sdk[flask]
    toml
    wtforms
    dataclasses;python_version<'3.7'

[options.packages.find]
exclude =
    tests

[options.entry_points]
console_scripts =
    canaille = canaille.commands:cli

[tox:tox]
envlist =
    style
    py37
    py38
    py39
    py310
    doc
    coverage
skipsdist=True

[testenv]
install_command = pip install {packages}
commands = {envbindir}/pytest --showlocals --full-trace {posargs}
deps =
    --editable .
    flask-webtest
    mock
    pdbpp
    pyquery
    pytest
    slapd
    smtpdfix

[testenv:style]
deps = pre-commit
skip_install = true
commands = pre-commit run --all-files

[testenv:doc]
deps =
    --requirement doc/requirements.txt
commands =
    sphinx-build doc build/sphinx/html

[testenv:coverage]
skip_install = true
deps =
    --editable .
    flask-webtest
    mock
    pdbpp
    pyquery
    pytest
    pytest-coverage
    slapd
    smtpdfix

commands =
    {envbindir}/pytest --cov {posargs}
    coverage html

[coverage:run]
source =
    canaille
    tests

[extract_messages]
copyright_holder = Yaal Coop Team
input_paths = canaille
output_file = canaille/translations/messages.pot

[init_catalog]
input_file = canaille/translations/messages.pot
output_dir = canaille/translations/
domain = canaille

[update_catalog]
input_file = canaille/translations/messages.pot
output_dir = canaille/translations/
domain = canaille
update-header-comment = true
no-fuzzy-matching = true
ignore-obsolete = true

[compile_catalog]
directory = canaille/translations/
domain = canaille
statistics = true
