# -*- coding: utf-8 -*-
#
# This file is part of Invenio.
# Copyright (C) 2015-2018 CERN.
# Copyright (C) 2022-2024 Graz University of Technology.
#
# Invenio is free software; you can redistribute it and/or modify it
# under the terms of the MIT License; see LICENSE file for more details.

[metadata]
name = invenio-oauth2server
version = attr: invenio_oauth2server.__version__
description = "Invenio module that implements OAuth 2 server."
long_description = file: README.rst, CHANGES.rst
keywords = invenio OAuth2 server
license = MIT
author = CERN
author_email = info@inveniosoftware.org
platforms = any
url = https://github.com/inveniosoftware/invenio-oauth2server
classifiers =
    Development Status :: 5 - Production/Stable

[options]
include_package_data = True
packages = find:
python_requires = >=3.7
zip_safe = False
install_requires =
    cachelib>=0.1
    Flask-OAuthlib-Invenio>=1.0.0
    Flask-WTF>=0.14.3
    future>=0.16.0
    invenio-accounts>=6.0.0,<7.0.0
    invenio-base>=2.0.0,<3.0.0
    invenio-i18n>=3.0.0,<4.0.0
    invenio-theme>=4.0.0,<5.0.0
    pyjwt>=1.5.0
    requests-oauthlib>=1.1.0
    WTForms-Alchemy>=0.15.0
    WTForms>=3.0.0
    importlib_metadata>=4.4

[options.extras_require]
tests =
    pytest-black-ng>=0.4.0
    pytest-invenio>=3.0.0,<4.0.0
    invenio-admin>=1.2.1
    sphinx>=4.5
    redis>=2.10.5
    invenio-db[mysql,postgresql,versioning]>=2.0.0,<3.0.0
# Kept for backwards compatibility
admin =
docs =
redis =
mysql =
postgresql =
sqlite =

[options.entry_points]
flask.commands =
    tokens = invenio_oauth2server.cli:tokens
invenio_admin.views =
    invenio_oauth2server_clients_adminview = invenio_oauth2server.admin:oauth2server_clients_adminview
    invenio_oauth2server_tokens_adminview = invenio_oauth2server.admin:oauth2server_tokens_adminview
invenio_base.apps =
    invenio_oauth2server = invenio_oauth2server:InvenioOAuth2Server
invenio_base.api_apps =
    invenio_oauth2server = invenio_oauth2server:InvenioOAuth2Server
    invenio_oauth2server_rest = invenio_oauth2server:InvenioOAuth2ServerREST
invenio_base.blueprints =
    invenio_oauth2server = invenio_oauth2server.views.server:blueprint
    invenio_oauth2server_settings = invenio_oauth2server.views.settings:blueprint
invenio_db.alembic =
    invenio_oauth2server = invenio_oauth2server:alembic
invenio_db.models =
    invenio_oauth2server = invenio_oauth2server.models
invenio_oauth2server.scopes =
    oauth_email = invenio_oauth2server.scopes:email_scope
invenio_i18n.translations =
    messages = invenio_oauth2server
invenio_base.secret_key =
    invenio_oauth2server = invenio_oauth2server.utils:rebuild_access_tokens
invenio_base.finalize_app =
    invenio_oauth2server = invenio_oauth2server.ext:finalize_app

[build_sphinx]
source-dir = docs/
build-dir = docs/_build
all_files = 1

[bdist_wheel]
universal = 1

[compile_catalog]
directory = invenio_oauth2server/translations/
use-fuzzy = True

[extract_messages]
copyright_holder = CERN
msgid_bugs_address = info@inveniosoftware.org
mapping-file = babel.ini
output-file = invenio_oauth2server/translations/messages.pot
add-comments = NOTE

[init_catalog]
input-file = invenio_oauth2server/translations/messages.pot
output-dir = invenio_oauth2server/translations/

[update_catalog]
input-file = invenio_oauth2server/translations/messages.pot
output-dir = invenio_oauth2server/translations/

[pydocstyle]
add_ignore = D401

[isort]
profile=black

[check-manifest]
ignore =
    *-requirements.txt

[tool:pytest]
addopts = --black --isort --pydocstyle --doctest-glob="*.rst" --doctest-modules --cov=invenio_oauth2server --cov-report=term-missing
testpaths = tests invenio_oauth2server