From e0b344267b46530c426c5f358f9fd241a557f9ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89loi=20Rivard?= Date: Fri, 5 Apr 2024 09:46:25 +0200 Subject: [PATCH] chore: stop support for python 3.8 --- .github/workflows/Check_local_run.yml | 2 +- .pre-commit-config.yaml | 2 +- poetry.lock | 47 +------ pyproject.toml | 4 +- web/b3desk/settings.py | 18 ++- web/requirements.app.txt | 144 ++++++++++---------- web/requirements.dev.txt | 148 ++++++++++---------- web/requirements.doc.txt | 186 +++++++++++++------------- 8 files changed, 251 insertions(+), 300 deletions(-) diff --git a/.github/workflows/Check_local_run.yml b/.github/workflows/Check_local_run.yml index 7fd1e674..c1cf4136 100644 --- a/.github/workflows/Check_local_run.yml +++ b/.github/workflows/Check_local_run.yml @@ -27,10 +27,10 @@ jobs: strategy: matrix: python: + - '3.12' - '3.11' - '3.10' - '3.9' - - '3.8' steps: - name: Setup git diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d3fbd651..7c68284a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -29,4 +29,4 @@ repos: rev: v3.15.2 hooks: - id: pyupgrade - args: ["--py38-plus"] + args: ["--py39-plus"] diff --git a/poetry.lock b/poetry.lock index 47d7c741..ff3a8a5f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -38,8 +38,6 @@ files = [ ] [package.dependencies] -importlib-metadata = {version = "*", markers = "python_version < \"3.9\""} -importlib-resources = {version = "*", markers = "python_version < \"3.9\""} Mako = "*" SQLAlchemy = ">=1.3.0" typing-extensions = ">=4" @@ -72,9 +70,6 @@ files = [ {file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"}, ] -[package.dependencies] -typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.9\""} - [[package]] name = "async-timeout" version = "4.0.3" @@ -142,7 +137,6 @@ files = [ ] [package.dependencies] -importlib-metadata = {version = ">1", markers = "python_version <= \"3.8\""} pydantic = ">=2.0,<3.0.0" pydantic-settings = ">=2.0,<3.0.0" Sphinx = ">=4.0" @@ -164,43 +158,9 @@ files = [ {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, ] -[package.dependencies] -pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} - [package.extras] dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] -[[package]] -name = "backports-zoneinfo" -version = "0.2.1" -description = "Backport of the standard library zoneinfo module" -optional = false -python-versions = ">=3.6" -files = [ - {file = "backports.zoneinfo-0.2.1-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:da6013fd84a690242c310d77ddb8441a559e9cb3d3d59ebac9aca1a57b2e18bc"}, - {file = "backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:89a48c0d158a3cc3f654da4c2de1ceba85263fafb861b98b59040a5086259722"}, - {file = "backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:1c5742112073a563c81f786e77514969acb58649bcdf6cdf0b4ed31a348d4546"}, - {file = "backports.zoneinfo-0.2.1-cp36-cp36m-win32.whl", hash = "sha256:e8236383a20872c0cdf5a62b554b27538db7fa1bbec52429d8d106effbaeca08"}, - {file = "backports.zoneinfo-0.2.1-cp36-cp36m-win_amd64.whl", hash = "sha256:8439c030a11780786a2002261569bdf362264f605dfa4d65090b64b05c9f79a7"}, - {file = "backports.zoneinfo-0.2.1-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:f04e857b59d9d1ccc39ce2da1021d196e47234873820cbeaad210724b1ee28ac"}, - {file = "backports.zoneinfo-0.2.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:17746bd546106fa389c51dbea67c8b7c8f0d14b5526a579ca6ccf5ed72c526cf"}, - {file = "backports.zoneinfo-0.2.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5c144945a7752ca544b4b78c8c41544cdfaf9786f25fe5ffb10e838e19a27570"}, - {file = "backports.zoneinfo-0.2.1-cp37-cp37m-win32.whl", hash = "sha256:e55b384612d93be96506932a786bbcde5a2db7a9e6a4bb4bffe8b733f5b9036b"}, - {file = "backports.zoneinfo-0.2.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a76b38c52400b762e48131494ba26be363491ac4f9a04c1b7e92483d169f6582"}, - {file = "backports.zoneinfo-0.2.1-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:8961c0f32cd0336fb8e8ead11a1f8cd99ec07145ec2931122faaac1c8f7fd987"}, - {file = "backports.zoneinfo-0.2.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e81b76cace8eda1fca50e345242ba977f9be6ae3945af8d46326d776b4cf78d1"}, - {file = "backports.zoneinfo-0.2.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7b0a64cda4145548fed9efc10322770f929b944ce5cee6c0dfe0c87bf4c0c8c9"}, - {file = "backports.zoneinfo-0.2.1-cp38-cp38-win32.whl", hash = "sha256:1b13e654a55cd45672cb54ed12148cd33628f672548f373963b0bff67b217328"}, - {file = "backports.zoneinfo-0.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:4a0f800587060bf8880f954dbef70de6c11bbe59c673c3d818921f042f9954a6"}, - {file = "backports.zoneinfo-0.2.1.tar.gz", hash = "sha256:fadbfe37f74051d024037f223b8e001611eac868b5c5b06144ef4d8b799862f2"}, -] - -[package.dependencies] -tzdata = {version = "*", optional = true, markers = "extra == \"tzdata\""} - -[package.extras] -tzdata = ["tzdata"] - [[package]] name = "beautifulsoup4" version = "4.12.3" @@ -294,7 +254,6 @@ files = [ ] [package.dependencies] -"backports.zoneinfo" = {version = ">=0.2.1", markers = "python_version < \"3.9\""} billiard = ">=4.2.0,<5.0" click = ">=8.1.2,<9.0" click-didyoumean = ">=0.3.0" @@ -800,7 +759,6 @@ files = [ [package.dependencies] python-dateutil = ">=2.4" -typing-extensions = {version = ">=3.10.0.1", markers = "python_version <= \"3.8\""} [[package]] name = "filelock" @@ -1251,7 +1209,6 @@ files = [ [package.dependencies] amqp = ">=5.1.1,<6.0.0" -"backports.zoneinfo" = {version = ">=0.2.1", extras = ["tzdata"], markers = "python_version < \"3.9\""} typing-extensions = {version = "*", markers = "python_version < \"3.10\""} vine = "*" @@ -2952,5 +2909,5 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" -python-versions = ">=3.8.1,<4.0" -content-hash = "83bdc5f44aac2ddc4e08a7856fb5f8d1a60cf1ecd726cabd34c25619ed3d4780" +python-versions = ">=3.9,<4.0" +content-hash = "8b4de0bd382a742b2334b748475c9d07d4bd8f22c568c0a1bee1f8eccd0b080b" diff --git a/pyproject.toml b/pyproject.toml index 04b5d2eb..eba0c224 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,7 @@ authors = ["Your Name "] readme = "README.md" [tool.poetry.dependencies] -python = ">=3.8.1,<4.0" +python = ">=3.9,<4.0" celery = "^5.2.7" filetype = "^1.2.0" flask = "^3.0.0" @@ -82,10 +82,10 @@ isolated_build = true skipsdist = true envlist = style - py38 py39 py310 py311 + py312 coverage doc diff --git a/web/b3desk/settings.py b/web/b3desk/settings.py index 32d6a318..d61d600a 100644 --- a/web/b3desk/settings.py +++ b/web/b3desk/settings.py @@ -2,8 +2,6 @@ import json from typing import Annotated from typing import Any -from typing import Dict -from typing import List from typing import Optional from flask_babel import lazy_gettext as _ @@ -24,7 +22,7 @@ def split_comma_separated_strings(value): return map(str.strip, value.split(",")) -ListOfStrings = Annotated[List[str], BeforeValidator(split_comma_separated_strings)] +ListOfStrings = Annotated[list[str], BeforeValidator(split_comma_separated_strings)] AVAILABLE_WORDINGS = { @@ -231,7 +229,7 @@ class MainSettings(BaseSettings): MAX_MEETINGS_PER_USER: int = 50 """Le nombre maximum de séminaires que peut créer un utilisateur.""" - ALLOWED_MIME_TYPES_SERVER_SIDE: Optional[List[str]] = [ + ALLOWED_MIME_TYPES_SERVER_SIDE: Optional[list[str]] = [ "application/pdf", "image/vnd.dwg", "image/x-xcf", @@ -268,9 +266,9 @@ class MainSettings(BaseSettings): @field_validator("ALLOWED_MIME_TYPES_SERVER_SIDE", mode="before") def get_allowed_mime_types_server_side( cls, - allowed_mime_types_server_side: Optional[List[str]], + allowed_mime_types_server_side: Optional[list[str]], info: ValidationInfo, - ) -> List[str]: + ) -> list[str]: if not allowed_mime_types_server_side: return [] @@ -318,7 +316,7 @@ def get_allowed_mime_types_server_side( https://flask-pyoidc.readthedocs.io/en/latest/api.html?highlight=userinfo_http_method#flask_pyoidc.provider_configuration.ProviderConfiguration """ - OIDC_INFO_REQUESTED_FIELDS: List[str] = ["email", "given_name", "family_name"] + OIDC_INFO_REQUESTED_FIELDS: list[str] = ["email", "given_name", "family_name"] """Probablement un relicat de flask-oidc, semble inutilisé.""" OIDC_ISSUER: Optional[str] = None @@ -492,7 +490,7 @@ def get_attendee_attendee_scopes( """Semble inutilisé.""" @computed_field - def DOCUMENTATION_LINK(self) -> Dict[str, Any]: + def DOCUMENTATION_LINK(self) -> dict[str, Any]: return { "url": self.DOCUMENTATION_LINK_URL, "label": self.DOCUMENTATION_LINK_LABEL, @@ -821,7 +819,7 @@ def get_meeting_mail_subject( """Sous-titre de la page de documentation.""" @computed_field - def WORDINGS(self) -> Dict[str, Any]: + def WORDINGS(self) -> dict[str, Any]: return { "a_meeting": self.WORDING_A_MEETING, "the_meeting": self.WORDING_THE_MEETING, @@ -960,7 +958,7 @@ def get_moderator_welcome_message( @field_validator("EMAIL_WHITELIST") def get_email_whitelist( - cls, email_whitelist: List[str], info: ValidationInfo + cls, email_whitelist: list[str], info: ValidationInfo ) -> str: if not email_whitelist: return DEFAULT_EMAIL_WHITELIST diff --git a/web/requirements.app.txt b/web/requirements.app.txt index 4cb192d2..f5f57ca1 100644 --- a/web/requirements.app.txt +++ b/web/requirements.app.txt @@ -1,73 +1,71 @@ -alembic==1.13.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -amqp==5.2.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -annotated-types==0.6.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -async-timeout==4.0.3 ; python_full_version >= "3.8.1" and python_full_version < "3.11.3" -babel==2.14.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -backports-zoneinfo==0.2.1 ; python_full_version >= "3.8.1" and python_version < "3.9" -backports-zoneinfo[tzdata]==0.2.1 ; python_full_version >= "3.8.1" and python_version < "3.9" -billiard==4.2.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -blinker==1.7.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -cachelib==0.9.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -celery==5.3.6 ; python_full_version >= "3.8.1" and python_version < "4.0" -certifi==2024.2.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -cffi==1.16.0 ; python_full_version >= "3.8.1" and python_version < "4.0" and platform_python_implementation != "PyPy" -charset-normalizer==3.3.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -click-didyoumean==0.3.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -click-plugins==1.1.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -click-repl==0.3.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -click==8.1.7 ; python_full_version >= "3.8.1" and python_version < "4.0" -colorama==0.4.6 ; python_full_version >= "3.8.1" and python_version < "4.0" and platform_system == "Windows" -cryptography==42.0.5 ; python_full_version >= "3.8.1" and python_version < "4.0" -defusedxml==0.7.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -filetype==1.2.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -flask-babel==4.0.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -flask-caching==2.1.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -flask-migrate==4.0.7 ; python_full_version >= "3.8.1" and python_version < "4.0" -flask-pyoidc==3.14.3 ; python_full_version >= "3.8.1" and python_version < "4.0" -flask-sqlalchemy==3.0.5 ; python_full_version >= "3.8.1" and python_version < "4.0" -flask-uploads==0.2.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -flask-wtf==1.2.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -flask==3.0.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -future==1.0.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -greenlet==3.0.3 ; python_full_version >= "3.8.1" and (platform_machine == "aarch64" or platform_machine == "ppc64le" or platform_machine == "x86_64" or platform_machine == "amd64" or platform_machine == "AMD64" or platform_machine == "win32" or platform_machine == "WIN32") and python_version < "4.0" -gunicorn==21.2.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -idna==3.6 ; python_full_version >= "3.8.1" and python_version < "4.0" -importlib-metadata==7.1.0 ; python_full_version >= "3.8.1" and python_version < "3.10" -importlib-resources==6.4.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -itsdangerous==2.1.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -jinja2==3.1.3 ; python_full_version >= "3.8.1" and python_version < "4.0" -kombu==5.3.6 ; python_full_version >= "3.8.1" and python_version < "4.0" -lxml==5.2.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -mako==1.3.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -markupsafe==2.1.5 ; python_full_version >= "3.8.1" and python_version < "4.0" -netaddr==1.2.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -oic==1.6.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -packaging==24.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -prompt-toolkit==3.0.43 ; python_full_version >= "3.8.1" and python_version < "4.0" -psycopg2==2.9.9 ; python_full_version >= "3.8.1" and python_version < "4.0" -pycparser==2.22 ; python_full_version >= "3.8.1" and python_version < "4.0" and platform_python_implementation != "PyPy" -pycryptodomex==3.20.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -pydantic-core==2.16.3 ; python_full_version >= "3.8.1" and python_version < "4.0" -pydantic-settings==2.2.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -pydantic==2.6.4 ; python_full_version >= "3.8.1" and python_version < "4.0" -pyjwkest==1.4.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -python-dateutil==2.9.0.post0 ; python_full_version >= "3.8.1" and python_version < "4.0" -python-dotenv==1.0.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -python-slugify==8.0.4 ; python_full_version >= "3.8.1" and python_version < "4.0" -pytz==2024.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -redis==5.0.3 ; python_full_version >= "3.8.1" and python_version < "4.0" -requests==2.31.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -six==1.16.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -sqlalchemy-json==0.7.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -sqlalchemy-utils==0.41.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -sqlalchemy==1.4.52 ; python_full_version >= "3.8.1" and python_version < "4.0" -text-unidecode==1.3 ; python_full_version >= "3.8.1" and python_version < "4.0" -typing-extensions==4.10.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -tzdata==2024.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -urllib3==2.2.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -vine==5.1.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -wcwidth==0.2.13 ; python_full_version >= "3.8.1" and python_version < "4.0" -webdavclient3==3.14.6 ; python_full_version >= "3.8.1" and python_version < "4.0" -werkzeug==3.0.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -wtforms==3.1.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -zipp==3.18.1 ; python_full_version >= "3.8.1" and python_version < "3.10" +alembic==1.13.1 ; python_version >= "3.9" and python_version < "4.0" +amqp==5.2.0 ; python_version >= "3.9" and python_version < "4.0" +annotated-types==0.6.0 ; python_version >= "3.9" and python_version < "4.0" +async-timeout==4.0.3 ; python_version >= "3.9" and python_full_version < "3.11.3" +babel==2.14.0 ; python_version >= "3.9" and python_version < "4.0" +billiard==4.2.0 ; python_version >= "3.9" and python_version < "4.0" +blinker==1.7.0 ; python_version >= "3.9" and python_version < "4.0" +cachelib==0.9.0 ; python_version >= "3.9" and python_version < "4.0" +celery==5.3.6 ; python_version >= "3.9" and python_version < "4.0" +certifi==2024.2.2 ; python_version >= "3.9" and python_version < "4.0" +cffi==1.16.0 ; python_version >= "3.9" and python_version < "4.0" and platform_python_implementation != "PyPy" +charset-normalizer==3.3.2 ; python_version >= "3.9" and python_version < "4.0" +click-didyoumean==0.3.1 ; python_version >= "3.9" and python_version < "4.0" +click-plugins==1.1.1 ; python_version >= "3.9" and python_version < "4.0" +click-repl==0.3.0 ; python_version >= "3.9" and python_version < "4.0" +click==8.1.7 ; python_version >= "3.9" and python_version < "4.0" +colorama==0.4.6 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Windows" +cryptography==42.0.5 ; python_version >= "3.9" and python_version < "4.0" +defusedxml==0.7.1 ; python_version >= "3.9" and python_version < "4.0" +filetype==1.2.0 ; python_version >= "3.9" and python_version < "4.0" +flask-babel==4.0.0 ; python_version >= "3.9" and python_version < "4.0" +flask-caching==2.1.0 ; python_version >= "3.9" and python_version < "4.0" +flask-migrate==4.0.7 ; python_version >= "3.9" and python_version < "4.0" +flask-pyoidc==3.14.3 ; python_version >= "3.9" and python_version < "4.0" +flask-sqlalchemy==3.0.5 ; python_version >= "3.9" and python_version < "4.0" +flask-uploads==0.2.1 ; python_version >= "3.9" and python_version < "4.0" +flask-wtf==1.2.1 ; python_version >= "3.9" and python_version < "4.0" +flask==3.0.2 ; python_version >= "3.9" and python_version < "4.0" +future==1.0.0 ; python_version >= "3.9" and python_version < "4.0" +greenlet==3.0.3 ; python_version >= "3.9" and (platform_machine == "aarch64" or platform_machine == "ppc64le" or platform_machine == "x86_64" or platform_machine == "amd64" or platform_machine == "AMD64" or platform_machine == "win32" or platform_machine == "WIN32") and python_version < "4.0" +gunicorn==21.2.0 ; python_version >= "3.9" and python_version < "4.0" +idna==3.6 ; python_version >= "3.9" and python_version < "4.0" +importlib-metadata==7.1.0 ; python_version >= "3.9" and python_version < "3.10" +importlib-resources==6.4.0 ; python_version >= "3.9" and python_version < "4.0" +itsdangerous==2.1.2 ; python_version >= "3.9" and python_version < "4.0" +jinja2==3.1.3 ; python_version >= "3.9" and python_version < "4.0" +kombu==5.3.6 ; python_version >= "3.9" and python_version < "4.0" +lxml==5.2.1 ; python_version >= "3.9" and python_version < "4.0" +mako==1.3.2 ; python_version >= "3.9" and python_version < "4.0" +markupsafe==2.1.5 ; python_version >= "3.9" and python_version < "4.0" +netaddr==1.2.1 ; python_version >= "3.9" and python_version < "4.0" +oic==1.6.1 ; python_version >= "3.9" and python_version < "4.0" +packaging==24.0 ; python_version >= "3.9" and python_version < "4.0" +prompt-toolkit==3.0.43 ; python_version >= "3.9" and python_version < "4.0" +psycopg2==2.9.9 ; python_version >= "3.9" and python_version < "4.0" +pycparser==2.22 ; python_version >= "3.9" and python_version < "4.0" and platform_python_implementation != "PyPy" +pycryptodomex==3.20.0 ; python_version >= "3.9" and python_version < "4.0" +pydantic-core==2.16.3 ; python_version >= "3.9" and python_version < "4.0" +pydantic-settings==2.2.1 ; python_version >= "3.9" and python_version < "4.0" +pydantic==2.6.4 ; python_version >= "3.9" and python_version < "4.0" +pyjwkest==1.4.2 ; python_version >= "3.9" and python_version < "4.0" +python-dateutil==2.9.0.post0 ; python_version >= "3.9" and python_version < "4.0" +python-dotenv==1.0.1 ; python_version >= "3.9" and python_version < "4.0" +python-slugify==8.0.4 ; python_version >= "3.9" and python_version < "4.0" +pytz==2024.1 ; python_version >= "3.9" and python_version < "4.0" +redis==5.0.3 ; python_version >= "3.9" and python_version < "4.0" +requests==2.31.0 ; python_version >= "3.9" and python_version < "4.0" +six==1.16.0 ; python_version >= "3.9" and python_version < "4.0" +sqlalchemy-json==0.7.0 ; python_version >= "3.9" and python_version < "4.0" +sqlalchemy-utils==0.41.2 ; python_version >= "3.9" and python_version < "4.0" +sqlalchemy==1.4.52 ; python_version >= "3.9" and python_version < "4.0" +text-unidecode==1.3 ; python_version >= "3.9" and python_version < "4.0" +typing-extensions==4.10.0 ; python_version >= "3.9" and python_version < "4.0" +tzdata==2024.1 ; python_version >= "3.9" and python_version < "4.0" +urllib3==2.2.1 ; python_version >= "3.9" and python_version < "4.0" +vine==5.1.0 ; python_version >= "3.9" and python_version < "4.0" +wcwidth==0.2.13 ; python_version >= "3.9" and python_version < "4.0" +webdavclient3==3.14.6 ; python_version >= "3.9" and python_version < "4.0" +werkzeug==3.0.2 ; python_version >= "3.9" and python_version < "4.0" +wtforms==3.1.2 ; python_version >= "3.9" and python_version < "4.0" +zipp==3.18.1 ; python_version >= "3.9" and python_version < "3.10" diff --git a/web/requirements.dev.txt b/web/requirements.dev.txt index 7d3b6cb1..67ee1237 100644 --- a/web/requirements.dev.txt +++ b/web/requirements.dev.txt @@ -1,74 +1,74 @@ -aiosmtpd==1.4.5 ; python_full_version >= "3.8.1" and python_version < "4" -annotated-types==0.6.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -atpublic==4.1.0 ; python_full_version >= "3.8.1" and python_version < "4" -attrs==23.2.0 ; python_full_version >= "3.8.1" and python_version < "4" -authlib==1.3.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -beautifulsoup4==4.12.3 ; python_full_version >= "3.8.1" and python_version < "4" -blinker==1.7.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -canaille[oidc]==0.0.44 ; python_full_version >= "3.8.1" and python_version < "4.0" -cffi==1.16.0 ; python_full_version >= "3.8.1" and python_version < "4" and platform_python_implementation != "PyPy" -cfgv==3.4.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -click==8.1.7 ; python_full_version >= "3.8.1" and python_version < "4.0" -colorama==0.4.6 ; python_full_version >= "3.8.1" and python_version < "4.0" and (sys_platform == "win32" or platform_system == "Windows") -coverage==7.4.4 ; python_full_version >= "3.8.1" and python_version < "4.0" -coverage[toml]==7.4.4 ; python_full_version >= "3.8.1" and python_version < "4.0" -cryptography==42.0.5 ; python_full_version >= "3.8.1" and python_version < "4" -cssselect==1.2.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -defusedxml==0.7.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -distlib==0.3.8 ; python_full_version >= "3.8.1" and python_version < "4.0" -enum-extend==0.1.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -exceptiongroup==1.2.0 ; python_full_version >= "3.8.1" and python_version < "3.11" -faker==24.4.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -filelock==3.13.3 ; python_full_version >= "3.8.1" and python_version < "4.0" -flake8==7.0.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -flask-webtest==0.1.4 ; python_full_version >= "3.8.1" and python_version < "4.0" -flask-wtf==1.2.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -flask==3.0.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -freezegun==1.4.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -identify==2.5.35 ; python_full_version >= "3.8.1" and python_version < "4.0" -importlib-metadata==7.1.0 ; python_full_version >= "3.8.1" and python_version < "3.10" -iniconfig==2.0.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -itsdangerous==2.1.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -jinja2==3.1.3 ; python_full_version >= "3.8.1" and python_version < "4.0" -json5==0.9.24 ; python_full_version >= "3.8.1" and python_version < "4.0" -lxml==5.2.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -markupsafe==2.1.5 ; python_full_version >= "3.8.1" and python_version < "4.0" -mccabe==0.7.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -nodeenv==1.8.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -packaging==24.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -platformdirs==4.2.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -pluggy==1.4.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -portpicker==1.6.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -pre-commit==3.5.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -psutil==5.9.8 ; python_full_version >= "3.8.1" and python_version < "4.0" -pycodestyle==2.11.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -pycparser==2.22 ; python_full_version >= "3.8.1" and python_version < "4" and platform_python_implementation != "PyPy" -pydantic-core==2.16.3 ; python_full_version >= "3.8.1" and python_version < "4.0" -pydantic-settings==2.2.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -pydantic==2.6.4 ; python_full_version >= "3.8.1" and python_version < "4.0" -pyflakes==3.2.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -pyquery==2.0.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -pytest-cov==5.0.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -pytest-dotenv==0.5.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -pytest-iam==0.0.8 ; python_full_version >= "3.8.1" and python_version < "4.0" -pytest-mock==3.14.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -pytest-smtpd==0.1.0 ; python_full_version >= "3.8.1" and python_version < "4" -pytest==8.1.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -python-dateutil==2.9.0.post0 ; python_full_version >= "3.8.1" and python_version < "4.0" -python-dotenv==1.0.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -pyyaml==6.0.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -setuptools==69.2.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -six==1.16.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -smtpdfix==0.5.1 ; python_full_version >= "3.8.1" and python_version < "4" -soupsieve==2.5 ; python_full_version >= "3.8.1" and python_version < "4" -sphinx-enum-extend==0.1.3 ; python_full_version >= "3.8.1" and python_version < "4.0" -tomli==2.0.1 ; python_full_version >= "3.8.1" and python_full_version <= "3.11.0a6" -typing-extensions==4.10.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -virtualenv==20.25.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -waitress==3.0.0 ; python_full_version >= "3.8.1" and python_version < "4" -webob==1.8.7 ; python_full_version >= "3.8.1" and python_version < "4" -webtest==3.0.0 ; python_full_version >= "3.8.1" and python_version < "4" -werkzeug==3.0.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -wsgidav==4.3.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -wtforms==3.1.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -zipp==3.18.1 ; python_full_version >= "3.8.1" and python_version < "3.10" +aiosmtpd==1.4.5 ; python_version >= "3.9" and python_version < "4" +annotated-types==0.6.0 ; python_version >= "3.9" and python_version < "4.0" +atpublic==4.1.0 ; python_version >= "3.9" and python_version < "4" +attrs==23.2.0 ; python_version >= "3.9" and python_version < "4" +authlib==1.3.0 ; python_version >= "3.9" and python_version < "4.0" +beautifulsoup4==4.12.3 ; python_version >= "3.9" and python_version < "4" +blinker==1.7.0 ; python_version >= "3.9" and python_version < "4.0" +canaille[oidc]==0.0.45 ; python_version >= "3.9" and python_version < "4.0" +cffi==1.16.0 ; python_version >= "3.9" and python_version < "4" and platform_python_implementation != "PyPy" +cfgv==3.4.0 ; python_version >= "3.9" and python_version < "4.0" +click==8.1.7 ; python_version >= "3.9" and python_version < "4.0" +colorama==0.4.6 ; python_version >= "3.9" and python_version < "4.0" and (sys_platform == "win32" or platform_system == "Windows") +coverage==7.4.4 ; python_version >= "3.9" and python_version < "4.0" +coverage[toml]==7.4.4 ; python_version >= "3.9" and python_version < "4.0" +cryptography==42.0.5 ; python_version >= "3.9" and python_version < "4" +cssselect==1.2.0 ; python_version >= "3.9" and python_version < "4.0" +defusedxml==0.7.1 ; python_version >= "3.9" and python_version < "4.0" +distlib==0.3.8 ; python_version >= "3.9" and python_version < "4.0" +enum-extend==0.1.1 ; python_version >= "3.9" and python_version < "4.0" +exceptiongroup==1.2.0 ; python_version >= "3.9" and python_version < "3.11" +faker==24.4.0 ; python_version >= "3.9" and python_version < "4.0" +filelock==3.13.3 ; python_version >= "3.9" and python_version < "4.0" +flake8==7.0.0 ; python_version >= "3.9" and python_version < "4.0" +flask-webtest==0.1.4 ; python_version >= "3.9" and python_version < "4.0" +flask-wtf==1.2.1 ; python_version >= "3.9" and python_version < "4.0" +flask==3.0.2 ; python_version >= "3.9" and python_version < "4.0" +freezegun==1.4.0 ; python_version >= "3.9" and python_version < "4.0" +identify==2.5.35 ; python_version >= "3.9" and python_version < "4.0" +importlib-metadata==7.1.0 ; python_version >= "3.9" and python_version < "3.10" +iniconfig==2.0.0 ; python_version >= "3.9" and python_version < "4.0" +itsdangerous==2.1.2 ; python_version >= "3.9" and python_version < "4.0" +jinja2==3.1.3 ; python_version >= "3.9" and python_version < "4.0" +json5==0.9.24 ; python_version >= "3.9" and python_version < "4.0" +lxml==5.2.1 ; python_version >= "3.9" and python_version < "4.0" +markupsafe==2.1.5 ; python_version >= "3.9" and python_version < "4.0" +mccabe==0.7.0 ; python_version >= "3.9" and python_version < "4.0" +nodeenv==1.8.0 ; python_version >= "3.9" and python_version < "4.0" +packaging==24.0 ; python_version >= "3.9" and python_version < "4.0" +platformdirs==4.2.0 ; python_version >= "3.9" and python_version < "4.0" +pluggy==1.4.0 ; python_version >= "3.9" and python_version < "4.0" +portpicker==1.6.0 ; python_version >= "3.9" and python_version < "4.0" +pre-commit==3.5.0 ; python_version >= "3.9" and python_version < "4.0" +psutil==5.9.8 ; python_version >= "3.9" and python_version < "4.0" +pycodestyle==2.11.1 ; python_version >= "3.9" and python_version < "4.0" +pycparser==2.22 ; python_version >= "3.9" and python_version < "4" and platform_python_implementation != "PyPy" +pydantic-core==2.16.3 ; python_version >= "3.9" and python_version < "4.0" +pydantic-settings==2.2.1 ; python_version >= "3.9" and python_version < "4.0" +pydantic==2.6.4 ; python_version >= "3.9" and python_version < "4.0" +pyflakes==3.2.0 ; python_version >= "3.9" and python_version < "4.0" +pyquery==2.0.0 ; python_version >= "3.9" and python_version < "4.0" +pytest-cov==5.0.0 ; python_version >= "3.9" and python_version < "4.0" +pytest-dotenv==0.5.2 ; python_version >= "3.9" and python_version < "4.0" +pytest-iam==0.0.9 ; python_version >= "3.9" and python_version < "4.0" +pytest-mock==3.14.0 ; python_version >= "3.9" and python_version < "4.0" +pytest-smtpd==0.1.0 ; python_version >= "3.9" and python_version < "4" +pytest==8.1.1 ; python_version >= "3.9" and python_version < "4.0" +python-dateutil==2.9.0.post0 ; python_version >= "3.9" and python_version < "4.0" +python-dotenv==1.0.1 ; python_version >= "3.9" and python_version < "4.0" +pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "4.0" +setuptools==69.2.0 ; python_version >= "3.9" and python_version < "4.0" +six==1.16.0 ; python_version >= "3.9" and python_version < "4.0" +smtpdfix==0.5.1 ; python_version >= "3.9" and python_version < "4" +soupsieve==2.5 ; python_version >= "3.9" and python_version < "4" +sphinx-enum-extend==0.1.3 ; python_version >= "3.9" and python_version < "4.0" +tomli==2.0.1 ; python_version >= "3.9" and python_full_version <= "3.11.0a6" +typing-extensions==4.10.0 ; python_version >= "3.9" and python_version < "4.0" +virtualenv==20.25.1 ; python_version >= "3.9" and python_version < "4.0" +waitress==3.0.0 ; python_version >= "3.9" and python_version < "4" +webob==1.8.7 ; python_version >= "3.9" and python_version < "4" +webtest==3.0.0 ; python_version >= "3.9" and python_version < "4" +werkzeug==3.0.2 ; python_version >= "3.9" and python_version < "4.0" +wsgidav==4.3.2 ; python_version >= "3.9" and python_version < "4.0" +wtforms==3.1.2 ; python_version >= "3.9" and python_version < "4.0" +zipp==3.18.1 ; python_version >= "3.9" and python_version < "3.10" diff --git a/web/requirements.doc.txt b/web/requirements.doc.txt index f1838552..968fc6d9 100644 --- a/web/requirements.doc.txt +++ b/web/requirements.doc.txt @@ -1,94 +1,92 @@ -alabaster==0.7.13 ; python_full_version >= "3.8.1" and python_version < "4.0" -alembic==1.13.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -amqp==5.2.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -annotated-types==0.6.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -async-timeout==4.0.3 ; python_full_version >= "3.8.1" and python_full_version < "3.11.3" -autodoc-pydantic==2.1.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -babel==2.14.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -backports-zoneinfo==0.2.1 ; python_full_version >= "3.8.1" and python_version < "3.9" -backports-zoneinfo[tzdata]==0.2.1 ; python_full_version >= "3.8.1" and python_version < "3.9" -billiard==4.2.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -blinker==1.7.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -cachelib==0.9.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -celery==5.3.6 ; python_full_version >= "3.8.1" and python_version < "4.0" -certifi==2024.2.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -cffi==1.16.0 ; python_full_version >= "3.8.1" and python_version < "4.0" and platform_python_implementation != "PyPy" -charset-normalizer==3.3.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -click-didyoumean==0.3.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -click-plugins==1.1.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -click-repl==0.3.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -click==8.1.7 ; python_full_version >= "3.8.1" and python_version < "4.0" -colorama==0.4.6 ; python_full_version >= "3.8.1" and python_version < "4.0" and (sys_platform == "win32" or platform_system == "Windows") -cryptography==42.0.5 ; python_full_version >= "3.8.1" and python_version < "4.0" -defusedxml==0.7.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -docutils==0.20.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -filetype==1.2.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -flask-babel==4.0.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -flask-caching==2.1.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -flask-migrate==4.0.7 ; python_full_version >= "3.8.1" and python_version < "4.0" -flask-pyoidc==3.14.3 ; python_full_version >= "3.8.1" and python_version < "4.0" -flask-sqlalchemy==3.0.5 ; python_full_version >= "3.8.1" and python_version < "4.0" -flask-uploads==0.2.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -flask-wtf==1.2.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -flask==3.0.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -future==1.0.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -greenlet==3.0.3 ; python_full_version >= "3.8.1" and (platform_machine == "aarch64" or platform_machine == "ppc64le" or platform_machine == "x86_64" or platform_machine == "amd64" or platform_machine == "AMD64" or platform_machine == "win32" or platform_machine == "WIN32") and python_version < "4.0" -gunicorn==21.2.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -idna==3.6 ; python_full_version >= "3.8.1" and python_version < "4.0" -imagesize==1.4.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -importlib-metadata==7.1.0 ; python_full_version >= "3.8.1" and python_version < "3.10" -importlib-resources==6.4.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -itsdangerous==2.1.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -jinja2==3.1.3 ; python_full_version >= "3.8.1" and python_version < "4.0" -kombu==5.3.6 ; python_full_version >= "3.8.1" and python_version < "4.0" -lxml==5.2.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -mako==1.3.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -markdown-it-py==3.0.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -markupsafe==2.1.5 ; python_full_version >= "3.8.1" and python_version < "4.0" -mdit-py-plugins==0.4.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -mdurl==0.1.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -myst-parser==2.0.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -netaddr==1.2.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -oic==1.6.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -packaging==24.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -prompt-toolkit==3.0.43 ; python_full_version >= "3.8.1" and python_version < "4.0" -psycopg2==2.9.9 ; python_full_version >= "3.8.1" and python_version < "4.0" -pycparser==2.22 ; python_full_version >= "3.8.1" and python_version < "4.0" and platform_python_implementation != "PyPy" -pycryptodomex==3.20.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -pydantic-core==2.16.3 ; python_full_version >= "3.8.1" and python_version < "4.0" -pydantic-settings==2.2.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -pydantic==2.6.4 ; python_full_version >= "3.8.1" and python_version < "4.0" -pygments==2.17.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -pyjwkest==1.4.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -python-dateutil==2.9.0.post0 ; python_full_version >= "3.8.1" and python_version < "4.0" -python-dotenv==1.0.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -python-slugify==8.0.4 ; python_full_version >= "3.8.1" and python_version < "4.0" -pytz==2024.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -pyyaml==6.0.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -redis==5.0.3 ; python_full_version >= "3.8.1" and python_version < "4.0" -requests==2.31.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -six==1.16.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -snowballstemmer==2.2.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -sphinx-issues==4.0.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -sphinx-rtd-theme==2.0.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -sphinx==7.1.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -sphinxcontrib-applehelp==1.0.4 ; python_full_version >= "3.8.1" and python_version < "4.0" -sphinxcontrib-devhelp==1.0.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -sphinxcontrib-htmlhelp==2.0.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -sphinxcontrib-jquery==4.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -sphinxcontrib-jsmath==1.0.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -sphinxcontrib-qthelp==1.0.3 ; python_full_version >= "3.8.1" and python_version < "4.0" -sphinxcontrib-serializinghtml==1.1.5 ; python_full_version >= "3.8.1" and python_version < "4.0" -sqlalchemy-json==0.7.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -sqlalchemy-utils==0.41.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -sqlalchemy==1.4.52 ; python_full_version >= "3.8.1" and python_version < "4.0" -text-unidecode==1.3 ; python_full_version >= "3.8.1" and python_version < "4.0" -typing-extensions==4.10.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -tzdata==2024.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -urllib3==2.2.1 ; python_full_version >= "3.8.1" and python_version < "4.0" -vine==5.1.0 ; python_full_version >= "3.8.1" and python_version < "4.0" -wcwidth==0.2.13 ; python_full_version >= "3.8.1" and python_version < "4.0" -webdavclient3==3.14.6 ; python_full_version >= "3.8.1" and python_version < "4.0" -werkzeug==3.0.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -wtforms==3.1.2 ; python_full_version >= "3.8.1" and python_version < "4.0" -zipp==3.18.1 ; python_full_version >= "3.8.1" and python_version < "3.10" +alabaster==0.7.13 ; python_version >= "3.9" and python_version < "4.0" +alembic==1.13.1 ; python_version >= "3.9" and python_version < "4.0" +amqp==5.2.0 ; python_version >= "3.9" and python_version < "4.0" +annotated-types==0.6.0 ; python_version >= "3.9" and python_version < "4.0" +async-timeout==4.0.3 ; python_version >= "3.9" and python_full_version < "3.11.3" +autodoc-pydantic==2.1.0 ; python_version >= "3.9" and python_version < "4.0" +babel==2.14.0 ; python_version >= "3.9" and python_version < "4.0" +billiard==4.2.0 ; python_version >= "3.9" and python_version < "4.0" +blinker==1.7.0 ; python_version >= "3.9" and python_version < "4.0" +cachelib==0.9.0 ; python_version >= "3.9" and python_version < "4.0" +celery==5.3.6 ; python_version >= "3.9" and python_version < "4.0" +certifi==2024.2.2 ; python_version >= "3.9" and python_version < "4.0" +cffi==1.16.0 ; python_version >= "3.9" and python_version < "4.0" and platform_python_implementation != "PyPy" +charset-normalizer==3.3.2 ; python_version >= "3.9" and python_version < "4.0" +click-didyoumean==0.3.1 ; python_version >= "3.9" and python_version < "4.0" +click-plugins==1.1.1 ; python_version >= "3.9" and python_version < "4.0" +click-repl==0.3.0 ; python_version >= "3.9" and python_version < "4.0" +click==8.1.7 ; python_version >= "3.9" and python_version < "4.0" +colorama==0.4.6 ; python_version >= "3.9" and python_version < "4.0" and (sys_platform == "win32" or platform_system == "Windows") +cryptography==42.0.5 ; python_version >= "3.9" and python_version < "4.0" +defusedxml==0.7.1 ; python_version >= "3.9" and python_version < "4.0" +docutils==0.20.1 ; python_version >= "3.9" and python_version < "4.0" +filetype==1.2.0 ; python_version >= "3.9" and python_version < "4.0" +flask-babel==4.0.0 ; python_version >= "3.9" and python_version < "4.0" +flask-caching==2.1.0 ; python_version >= "3.9" and python_version < "4.0" +flask-migrate==4.0.7 ; python_version >= "3.9" and python_version < "4.0" +flask-pyoidc==3.14.3 ; python_version >= "3.9" and python_version < "4.0" +flask-sqlalchemy==3.0.5 ; python_version >= "3.9" and python_version < "4.0" +flask-uploads==0.2.1 ; python_version >= "3.9" and python_version < "4.0" +flask-wtf==1.2.1 ; python_version >= "3.9" and python_version < "4.0" +flask==3.0.2 ; python_version >= "3.9" and python_version < "4.0" +future==1.0.0 ; python_version >= "3.9" and python_version < "4.0" +greenlet==3.0.3 ; python_version >= "3.9" and (platform_machine == "aarch64" or platform_machine == "ppc64le" or platform_machine == "x86_64" or platform_machine == "amd64" or platform_machine == "AMD64" or platform_machine == "win32" or platform_machine == "WIN32") and python_version < "4.0" +gunicorn==21.2.0 ; python_version >= "3.9" and python_version < "4.0" +idna==3.6 ; python_version >= "3.9" and python_version < "4.0" +imagesize==1.4.1 ; python_version >= "3.9" and python_version < "4.0" +importlib-metadata==7.1.0 ; python_version >= "3.9" and python_version < "3.10" +importlib-resources==6.4.0 ; python_version >= "3.9" and python_version < "4.0" +itsdangerous==2.1.2 ; python_version >= "3.9" and python_version < "4.0" +jinja2==3.1.3 ; python_version >= "3.9" and python_version < "4.0" +kombu==5.3.6 ; python_version >= "3.9" and python_version < "4.0" +lxml==5.2.1 ; python_version >= "3.9" and python_version < "4.0" +mako==1.3.2 ; python_version >= "3.9" and python_version < "4.0" +markdown-it-py==3.0.0 ; python_version >= "3.9" and python_version < "4.0" +markupsafe==2.1.5 ; python_version >= "3.9" and python_version < "4.0" +mdit-py-plugins==0.4.0 ; python_version >= "3.9" and python_version < "4.0" +mdurl==0.1.2 ; python_version >= "3.9" and python_version < "4.0" +myst-parser==2.0.0 ; python_version >= "3.9" and python_version < "4.0" +netaddr==1.2.1 ; python_version >= "3.9" and python_version < "4.0" +oic==1.6.1 ; python_version >= "3.9" and python_version < "4.0" +packaging==24.0 ; python_version >= "3.9" and python_version < "4.0" +prompt-toolkit==3.0.43 ; python_version >= "3.9" and python_version < "4.0" +psycopg2==2.9.9 ; python_version >= "3.9" and python_version < "4.0" +pycparser==2.22 ; python_version >= "3.9" and python_version < "4.0" and platform_python_implementation != "PyPy" +pycryptodomex==3.20.0 ; python_version >= "3.9" and python_version < "4.0" +pydantic-core==2.16.3 ; python_version >= "3.9" and python_version < "4.0" +pydantic-settings==2.2.1 ; python_version >= "3.9" and python_version < "4.0" +pydantic==2.6.4 ; python_version >= "3.9" and python_version < "4.0" +pygments==2.17.2 ; python_version >= "3.9" and python_version < "4.0" +pyjwkest==1.4.2 ; python_version >= "3.9" and python_version < "4.0" +python-dateutil==2.9.0.post0 ; python_version >= "3.9" and python_version < "4.0" +python-dotenv==1.0.1 ; python_version >= "3.9" and python_version < "4.0" +python-slugify==8.0.4 ; python_version >= "3.9" and python_version < "4.0" +pytz==2024.1 ; python_version >= "3.9" and python_version < "4.0" +pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "4.0" +redis==5.0.3 ; python_version >= "3.9" and python_version < "4.0" +requests==2.31.0 ; python_version >= "3.9" and python_version < "4.0" +six==1.16.0 ; python_version >= "3.9" and python_version < "4.0" +snowballstemmer==2.2.0 ; python_version >= "3.9" and python_version < "4.0" +sphinx-issues==4.0.0 ; python_version >= "3.9" and python_version < "4.0" +sphinx-rtd-theme==2.0.0 ; python_version >= "3.9" and python_version < "4.0" +sphinx==7.1.2 ; python_version >= "3.9" and python_version < "4.0" +sphinxcontrib-applehelp==1.0.4 ; python_version >= "3.9" and python_version < "4.0" +sphinxcontrib-devhelp==1.0.2 ; python_version >= "3.9" and python_version < "4.0" +sphinxcontrib-htmlhelp==2.0.1 ; python_version >= "3.9" and python_version < "4.0" +sphinxcontrib-jquery==4.1 ; python_version >= "3.9" and python_version < "4.0" +sphinxcontrib-jsmath==1.0.1 ; python_version >= "3.9" and python_version < "4.0" +sphinxcontrib-qthelp==1.0.3 ; python_version >= "3.9" and python_version < "4.0" +sphinxcontrib-serializinghtml==1.1.5 ; python_version >= "3.9" and python_version < "4.0" +sqlalchemy-json==0.7.0 ; python_version >= "3.9" and python_version < "4.0" +sqlalchemy-utils==0.41.2 ; python_version >= "3.9" and python_version < "4.0" +sqlalchemy==1.4.52 ; python_version >= "3.9" and python_version < "4.0" +text-unidecode==1.3 ; python_version >= "3.9" and python_version < "4.0" +typing-extensions==4.10.0 ; python_version >= "3.9" and python_version < "4.0" +tzdata==2024.1 ; python_version >= "3.9" and python_version < "4.0" +urllib3==2.2.1 ; python_version >= "3.9" and python_version < "4.0" +vine==5.1.0 ; python_version >= "3.9" and python_version < "4.0" +wcwidth==0.2.13 ; python_version >= "3.9" and python_version < "4.0" +webdavclient3==3.14.6 ; python_version >= "3.9" and python_version < "4.0" +werkzeug==3.0.2 ; python_version >= "3.9" and python_version < "4.0" +wtforms==3.1.2 ; python_version >= "3.9" and python_version < "4.0" +zipp==3.18.1 ; python_version >= "3.9" and python_version < "3.10"