# -*- coding: utf-8 -*- # # Copyright (C) 2024-2025 TU Wien. # # Invenio-Config-TUW is free software; you can redistribute it and/or modify # it under the terms of the MIT License; see LICENSE file for more details. [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.version] path = "invenio_config_tuw/__init__.py" [tool.hatch.build.targets.sdist] exclude = [ "sonar-project.properties", ".gitlab-ci.yml", ] [project] name = "invenio-config-tuw" dynamic = ["version"] description = "Workflow customizations and config overrides for TU Wien." keywords = ["invenio", "configuration", "tu wien"] requires-python = ">=3.12" readme = "README.rst" license = "MIT" authors = [ {name = "Team of the Center for Research Data Management (TU Wien)", email = "tudata@tuwien.ac.at"}, ] classifiers = [ "Environment :: Web Environment", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules", "Programming Language :: Python", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Development Status :: 5 - Production/Stable", ] dependencies = [ "Invenio-App-RDM>=12.0.0,<13.0.0", "Invenio-Search>=2.1.0,<3.0.0", "Flask>=2.0.2", "Flask-Minify>=0.47", "Invenio-DAMAP>=0.1.1", "Invenio-Curations>=0.1.0", ] [project.optional-dependencies] tests = [ "pytest-ruff>=0.4.1", "pytest-black>=0.3.0", "pytest-invenio>=1.4.0,<3.0.0", "invenio-search[opensearch2]>=2.1.0,<3.0.0", "httpretty>=1.1.4", "ipdb>=0.13.13", "ipython>=8.18.1", "pytest-mock>=3.14.0", ] [project.urls] Repository = "https://gitlab.tuwien.ac.at/crdm/invenio-config-tuw" # Entrypoints # ----------- # note: we omit the usual "invenio_*" prefix here, to be listed *before* the other # invenio extensions in lexicographic ordering so that we can piece together # the config items before they get picked up by the other extensions # since lexicographic ordering is currently not the default however, this # requires a hack performed in "invenio_config_tuw.config" [project.entry-points."invenio_base.apps"] config_tuw = "invenio_config_tuw:InvenioConfigTUW" [project.entry-points."invenio_base.api_apps"] config_tuw = "invenio_config_tuw:InvenioConfigTUW" [project.entry-points."invenio_base.blueprints"] invenio_config_tuw_settings = "invenio_config_tuw.users.views:user_settings_blueprint" [project.entry-points."invenio_base.finalize_app"] invenio_config_tuw_mail_handler = "invenio_config_tuw.startup:register_smtp_error_handler" invenio_config_tuw_search_drafts = "invenio_config_tuw.startup:override_search_drafts_options" invenio_config_tuw_curation_settings = "invenio_config_tuw.startup:register_menu_entries" invenio_config_tuw_curation_request = "invenio_config_tuw.startup:customize_curation_request_type" invenio_config_tuw_patch_flask = "invenio_config_tuw.startup:patch_flask_create_url_adapter" [project.entry-points."invenio_base.api_finalize_app"] invenio_config_tuw_mail_handler = "invenio_config_tuw.startup:register_smtp_error_handler" invenio_config_tuw_search_drafts = "invenio_config_tuw.startup:override_search_drafts_options" invenio_config_tuw_curation_request = "invenio_config_tuw.startup:customize_curation_request_type" invenio_config_tuw_patch_flask = "invenio_config_tuw.startup:patch_flask_create_url_adapter" [project.entry-points."invenio_i18n.translations"] messages = "invenio_config_tuw" [project.entry-points."invenio_celery.tasks"] invenio_config_tuw = "invenio_config_tuw.tasks" invenio_config_tuw_tiss = "invenio_config_tuw.tiss.tasks" invenio_config_tuw_curations = "invenio_config_tuw.curations.tasks" # note: similar to above, we try to get listed *after* all the "invenio_*" entrypoints # so that we can override other packages' configuration items, but still get # executed before "invenio.cfg" (so that the values there take precedence) # unlike above, the lexicographic sorting is performed by `Invenio-Config` # out of the box [project.entry-points."invenio_config.module"] tuw_config = "invenio_config_tuw.config" # Configuration for tools # ----------------------- [tool.isort] profile = "black" [tool.pytest.ini_options] addopts = '--ruff --black --isort --pydocstyle --doctest-glob="*.rst" --doctest-modules --cov=invenio_config_tuw --cov-report=term-missing' testpaths = "tests invenio_config_tuw" [tool.pydocstyle] add_ignore = "D401"