From fb448bc26d68c180bb845142fc3e72b8f5949274 Mon Sep 17 00:00:00 2001 From: Spitap Date: Sun, 3 Nov 2024 14:51:42 +0100 Subject: [PATCH] Improve packaging using pip-compile --- dev-requirements.txt | 275 ++++++++++++++++++++++++++++++++++-- ldap-requirements.txt | 216 +++++++++++++++++++++++++++- mysql-requirements.txt | 207 ++++++++++++++++++++++++++- postgresql-requirements.txt | 210 ++++++++++++++++++++++++++- pyproject.toml | 82 +++++++++-- requirements.txt | 242 +++++++++++++++++++++++++------ setup.cfg | 25 ---- test-requirements.txt | 249 +++++++++++++++++++++++++++++++- 8 files changed, 1409 insertions(+), 97 deletions(-) delete mode 100644 setup.cfg diff --git a/dev-requirements.txt b/dev-requirements.txt index 3609760a7..e0ca061ed 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -1,8 +1,267 @@ -django-bower -django-debug-toolbar -pre-commit -black -pylint -django-extensions -Werkzeug -pyOpenSSL +# +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: +# +# pip-compile --extra=dev --output-file=dev-requirements.txt pyproject.toml +# +aiosmtplib==3.0.2 + # via modoboa (pyproject.toml) +asgiref==3.8.1 + # via + # django + # django-cors-headers + # modoboa (pyproject.toml) +astroid==3.3.5 + # via pylint +attrs==24.2.0 + # via + # jsonschema + # referencing +bcrypt==4.2.0 + # via modoboa (pyproject.toml) +black==24.10.0 + # via modoboa (pyproject.toml) +certifi==2024.8.30 + # via requests +cffi==1.17.1 + # via cryptography +cfgv==3.4.0 + # via pre-commit +chardet==5.2.0 + # via + # modoboa (pyproject.toml) + # reportlab +charset-normalizer==3.4.0 + # via requests +click==8.1.7 + # via + # black + # rq +cryptography==43.0.3 + # via + # fido2 + # jwcrypto + # modoboa (pyproject.toml) + # pyopenssl +defusedxml==0.7.1 + # via modoboa (pyproject.toml) +dill==0.3.9 + # via pylint +distlib==0.3.9 + # via virtualenv +dj-database-url==2.3.0 + # via modoboa (pyproject.toml) +django==4.2.16 + # via + # dj-database-url + # django-bower + # django-ckeditor + # django-cors-headers + # django-debug-toolbar + # django-extensions + # django-filter + # django-js-asset + # django-oauth-toolkit + # django-otp + # django-phonenumber-field + # django-rename-app + # django-reversion + # django-rq + # django-xforwardedfor-middleware + # djangorestframework + # drf-spectacular + # modoboa (pyproject.toml) +django-bower==5.2.0 + # via modoboa (pyproject.toml) +django-ckeditor==6.7.1 + # via modoboa (pyproject.toml) +django-cors-headers==4.6.0 + # via modoboa (pyproject.toml) +django-debug-toolbar==4.4.6 + # via modoboa (pyproject.toml) +django-environ==0.11.2 + # via modoboa (pyproject.toml) +django-extensions==3.2.3 + # via modoboa (pyproject.toml) +django-filter==24.3 + # via modoboa (pyproject.toml) +django-js-asset==2.2.0 + # via django-ckeditor +django-oauth-toolkit==3.0.1 + # via modoboa (pyproject.toml) +django-otp==1.5.0 + # via modoboa (pyproject.toml) +django-phonenumber-field[phonenumbers]==8.0.0 + # via modoboa (pyproject.toml) +django-rename-app==0.1.7 + # via modoboa (pyproject.toml) +django-reversion==5.0.12 + # via modoboa (pyproject.toml) +django-rq==3.0.0 + # via modoboa (pyproject.toml) +django-xforwardedfor-middleware==2.0 + # via modoboa (pyproject.toml) +djangorestframework==3.15.2 + # via + # drf-spectacular + # modoboa (pyproject.toml) +dnspython==2.6.1 + # via modoboa (pyproject.toml) +drf-spectacular==0.27.2 + # via modoboa (pyproject.toml) +feedparser==6.0.11 + # via modoboa (pyproject.toml) +fido2==1.1.3 + # via modoboa (pyproject.toml) +filelock==3.16.1 + # via + # tldextract + # virtualenv +gevent==24.2.1 + # via modoboa (pyproject.toml) +greenlet==3.1.1 + # via gevent +identify==2.6.1 + # via pre-commit +idna==3.10 + # via + # requests + # tldextract +inflection==0.5.1 + # via drf-spectacular +isort==5.13.2 + # via pylint +jsonschema==4.23.0 + # via drf-spectacular +jsonschema-specifications==2024.10.1 + # via jsonschema +jwcrypto==1.5.6 + # via django-oauth-toolkit +lxml==4.9.4 + # via modoboa (pyproject.toml) +markupsafe==3.0.2 + # via werkzeug +mccabe==0.7.0 + # via pylint +mypy-extensions==1.0.0 + # via black +nodeenv==1.9.1 + # via pre-commit +oath==1.4.4 + # via modoboa (pyproject.toml) +oauthlib==3.2.2 + # via + # django-oauth-toolkit + # requests-oauthlib +ovh==1.2.0 + # via modoboa (pyproject.toml) +packaging==24.1 + # via black +passlib==1.7.4 + # via modoboa (pyproject.toml) +pathspec==0.12.1 + # via black +phonenumbers==8.13.48 + # via django-phonenumber-field +pillow==11.0.0 + # via + # modoboa (pyproject.toml) + # reportlab +platformdirs==4.3.6 + # via + # black + # pylint + # virtualenv +pre-commit==4.0.1 + # via modoboa (pyproject.toml) +progressbar33==2.4 + # via modoboa (pyproject.toml) +pycparser==2.22 + # via cffi +pylint==3.3.1 + # via modoboa (pyproject.toml) +pyopenssl==24.2.1 + # via modoboa (pyproject.toml) +python-dateutil==2.9.0.post0 + # via modoboa (pyproject.toml) +python-magic==0.4.27 + # via modoboa (pyproject.toml) +pytz==2024.2 + # via modoboa (pyproject.toml) +pyyaml==6.0.2 + # via + # drf-spectacular + # pre-commit +qrcode==8.0 + # via modoboa (pyproject.toml) +redis==5.2.0 + # via + # django-rq + # modoboa (pyproject.toml) + # rq +referencing==0.35.1 + # via + # jsonschema + # jsonschema-specifications +reportlab==4.2.5 + # via modoboa (pyproject.toml) +requests==2.32.3 + # via + # django-oauth-toolkit + # modoboa (pyproject.toml) + # ovh + # requests-file + # requests-oauthlib + # tldextract +requests-file==2.1.0 + # via tldextract +requests-oauthlib==2.0.0 + # via ovh +rpds-py==0.20.1 + # via + # jsonschema + # referencing +rq==2.0.0 + # via + # django-rq + # modoboa (pyproject.toml) +rrdtool==0.1.16 + # via modoboa (pyproject.toml) +sgmllib3k==1.0.0 + # via feedparser +sievelib==1.4.1 + # via modoboa (pyproject.toml) +six==1.16.0 + # via + # django-bower + # python-dateutil +sqlparse==0.5.1 + # via + # django + # django-debug-toolbar +tldextract==5.1.2 + # via modoboa (pyproject.toml) +tomlkit==0.13.2 + # via pylint +typing-extensions==4.12.2 + # via + # dj-database-url + # jwcrypto + # sievelib +uritemplate==4.1.1 + # via + # drf-spectacular + # modoboa (pyproject.toml) +urllib3==2.2.3 + # via requests +virtualenv==20.27.1 + # via pre-commit +werkzeug==3.1.1 + # via modoboa (pyproject.toml) +zope-event==5.0 + # via gevent +zope-interface==7.1.1 + # via gevent + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/ldap-requirements.txt b/ldap-requirements.txt index 2c2770479..1dcd9ff1b 100644 --- a/ldap-requirements.txt +++ b/ldap-requirements.txt @@ -1 +1,215 @@ -django-auth-ldap<5.0.0 +# +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: +# +# pip-compile --extra=ldap --output-file=ldap-requirements.txt pyproject.toml +# +aiosmtplib==3.0.2 + # via modoboa (pyproject.toml) +asgiref==3.8.1 + # via + # django + # django-cors-headers + # modoboa (pyproject.toml) +attrs==24.2.0 + # via + # jsonschema + # referencing +bcrypt==4.2.0 + # via modoboa (pyproject.toml) +certifi==2024.8.30 + # via requests +cffi==1.17.1 + # via cryptography +chardet==5.2.0 + # via + # modoboa (pyproject.toml) + # reportlab +charset-normalizer==3.4.0 + # via requests +click==8.1.7 + # via rq +cryptography==43.0.3 + # via + # fido2 + # jwcrypto + # modoboa (pyproject.toml) +defusedxml==0.7.1 + # via modoboa (pyproject.toml) +dj-database-url==2.3.0 + # via modoboa (pyproject.toml) +django==4.2.16 + # via + # dj-database-url + # django-auth-ldap + # django-ckeditor + # django-cors-headers + # django-filter + # django-js-asset + # django-oauth-toolkit + # django-otp + # django-phonenumber-field + # django-rename-app + # django-reversion + # django-rq + # django-xforwardedfor-middleware + # djangorestframework + # drf-spectacular + # modoboa (pyproject.toml) +django-auth-ldap==5.1.0 + # via modoboa (pyproject.toml) +django-ckeditor==6.7.1 + # via modoboa (pyproject.toml) +django-cors-headers==4.6.0 + # via modoboa (pyproject.toml) +django-environ==0.11.2 + # via modoboa (pyproject.toml) +django-filter==24.3 + # via modoboa (pyproject.toml) +django-js-asset==2.2.0 + # via django-ckeditor +django-oauth-toolkit==3.0.1 + # via modoboa (pyproject.toml) +django-otp==1.5.0 + # via modoboa (pyproject.toml) +django-phonenumber-field[phonenumbers]==8.0.0 + # via modoboa (pyproject.toml) +django-rename-app==0.1.7 + # via modoboa (pyproject.toml) +django-reversion==5.0.12 + # via modoboa (pyproject.toml) +django-rq==3.0.0 + # via modoboa (pyproject.toml) +django-xforwardedfor-middleware==2.0 + # via modoboa (pyproject.toml) +djangorestframework==3.15.2 + # via + # drf-spectacular + # modoboa (pyproject.toml) +dnspython==2.6.1 + # via modoboa (pyproject.toml) +drf-spectacular==0.27.2 + # via modoboa (pyproject.toml) +feedparser==6.0.11 + # via modoboa (pyproject.toml) +fido2==1.1.3 + # via modoboa (pyproject.toml) +filelock==3.16.1 + # via tldextract +gevent==24.2.1 + # via modoboa (pyproject.toml) +greenlet==3.1.1 + # via gevent +idna==3.10 + # via + # requests + # tldextract +inflection==0.5.1 + # via drf-spectacular +jsonschema==4.23.0 + # via drf-spectacular +jsonschema-specifications==2024.10.1 + # via jsonschema +jwcrypto==1.5.6 + # via django-oauth-toolkit +lxml==4.9.4 + # via modoboa (pyproject.toml) +oath==1.4.4 + # via modoboa (pyproject.toml) +oauthlib==3.2.2 + # via + # django-oauth-toolkit + # requests-oauthlib +ovh==1.2.0 + # via modoboa (pyproject.toml) +passlib==1.7.4 + # via modoboa (pyproject.toml) +phonenumbers==8.13.48 + # via django-phonenumber-field +pillow==11.0.0 + # via + # modoboa (pyproject.toml) + # reportlab +progressbar33==2.4 + # via modoboa (pyproject.toml) +pyasn1==0.6.1 + # via + # pyasn1-modules + # python-ldap +pyasn1-modules==0.4.1 + # via python-ldap +pycparser==2.22 + # via cffi +python-dateutil==2.9.0.post0 + # via modoboa (pyproject.toml) +python-ldap==3.4.4 + # via django-auth-ldap +python-magic==0.4.27 + # via modoboa (pyproject.toml) +pytz==2024.2 + # via modoboa (pyproject.toml) +pyyaml==6.0.2 + # via drf-spectacular +qrcode==8.0 + # via modoboa (pyproject.toml) +redis==5.2.0 + # via + # django-rq + # modoboa (pyproject.toml) + # rq +referencing==0.35.1 + # via + # jsonschema + # jsonschema-specifications +reportlab==4.2.5 + # via modoboa (pyproject.toml) +requests==2.32.3 + # via + # django-oauth-toolkit + # modoboa (pyproject.toml) + # ovh + # requests-file + # requests-oauthlib + # tldextract +requests-file==2.1.0 + # via tldextract +requests-oauthlib==2.0.0 + # via ovh +rpds-py==0.20.1 + # via + # jsonschema + # referencing +rq==2.0.0 + # via + # django-rq + # modoboa (pyproject.toml) +rrdtool==0.1.16 + # via modoboa (pyproject.toml) +sgmllib3k==1.0.0 + # via feedparser +sievelib==1.4.1 + # via modoboa (pyproject.toml) +six==1.16.0 + # via python-dateutil +sqlparse==0.5.1 + # via django +tldextract==5.1.2 + # via modoboa (pyproject.toml) +typing-extensions==4.12.2 + # via + # dj-database-url + # jwcrypto + # sievelib +uritemplate==4.1.1 + # via + # drf-spectacular + # modoboa (pyproject.toml) +urllib3==2.2.3 + # via requests +zope-event==5.0 + # via gevent +zope-interface==7.1.1 + # via gevent + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/mysql-requirements.txt b/mysql-requirements.txt index 1e8f60218..122a76df4 100644 --- a/mysql-requirements.txt +++ b/mysql-requirements.txt @@ -1 +1,206 @@ -mysqlclient<2.2.5 +# +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: +# +# pip-compile --extra=mysql --output-file=mysql-requirements.txt pyproject.toml +# +aiosmtplib==3.0.2 + # via modoboa (pyproject.toml) +asgiref==3.8.1 + # via + # django + # django-cors-headers + # modoboa (pyproject.toml) +attrs==24.2.0 + # via + # jsonschema + # referencing +bcrypt==4.2.0 + # via modoboa (pyproject.toml) +certifi==2024.8.30 + # via requests +cffi==1.17.1 + # via cryptography +chardet==5.2.0 + # via + # modoboa (pyproject.toml) + # reportlab +charset-normalizer==3.4.0 + # via requests +click==8.1.7 + # via rq +cryptography==43.0.3 + # via + # fido2 + # jwcrypto + # modoboa (pyproject.toml) +defusedxml==0.7.1 + # via modoboa (pyproject.toml) +dj-database-url==2.3.0 + # via modoboa (pyproject.toml) +django==4.2.16 + # via + # dj-database-url + # django-ckeditor + # django-cors-headers + # django-filter + # django-js-asset + # django-oauth-toolkit + # django-otp + # django-phonenumber-field + # django-rename-app + # django-reversion + # django-rq + # django-xforwardedfor-middleware + # djangorestframework + # drf-spectacular + # modoboa (pyproject.toml) +django-ckeditor==6.7.1 + # via modoboa (pyproject.toml) +django-cors-headers==4.6.0 + # via modoboa (pyproject.toml) +django-environ==0.11.2 + # via modoboa (pyproject.toml) +django-filter==24.3 + # via modoboa (pyproject.toml) +django-js-asset==2.2.0 + # via django-ckeditor +django-oauth-toolkit==3.0.1 + # via modoboa (pyproject.toml) +django-otp==1.5.0 + # via modoboa (pyproject.toml) +django-phonenumber-field[phonenumbers]==8.0.0 + # via modoboa (pyproject.toml) +django-rename-app==0.1.7 + # via modoboa (pyproject.toml) +django-reversion==5.0.12 + # via modoboa (pyproject.toml) +django-rq==3.0.0 + # via modoboa (pyproject.toml) +django-xforwardedfor-middleware==2.0 + # via modoboa (pyproject.toml) +djangorestframework==3.15.2 + # via + # drf-spectacular + # modoboa (pyproject.toml) +dnspython==2.6.1 + # via modoboa (pyproject.toml) +drf-spectacular==0.27.2 + # via modoboa (pyproject.toml) +feedparser==6.0.11 + # via modoboa (pyproject.toml) +fido2==1.1.3 + # via modoboa (pyproject.toml) +filelock==3.16.1 + # via tldextract +gevent==24.2.1 + # via modoboa (pyproject.toml) +greenlet==3.1.1 + # via gevent +idna==3.10 + # via + # requests + # tldextract +inflection==0.5.1 + # via drf-spectacular +jsonschema==4.23.0 + # via drf-spectacular +jsonschema-specifications==2024.10.1 + # via jsonschema +jwcrypto==1.5.6 + # via django-oauth-toolkit +lxml==4.9.4 + # via modoboa (pyproject.toml) +mysqlclient==2.2.4 + # via modoboa (pyproject.toml) +oath==1.4.4 + # via modoboa (pyproject.toml) +oauthlib==3.2.2 + # via + # django-oauth-toolkit + # requests-oauthlib +ovh==1.2.0 + # via modoboa (pyproject.toml) +passlib==1.7.4 + # via modoboa (pyproject.toml) +phonenumbers==8.13.48 + # via django-phonenumber-field +pillow==11.0.0 + # via + # modoboa (pyproject.toml) + # reportlab +progressbar33==2.4 + # via modoboa (pyproject.toml) +pycparser==2.22 + # via cffi +python-dateutil==2.9.0.post0 + # via modoboa (pyproject.toml) +python-magic==0.4.27 + # via modoboa (pyproject.toml) +pytz==2024.2 + # via modoboa (pyproject.toml) +pyyaml==6.0.2 + # via drf-spectacular +qrcode==8.0 + # via modoboa (pyproject.toml) +redis==5.2.0 + # via + # django-rq + # modoboa (pyproject.toml) + # rq +referencing==0.35.1 + # via + # jsonschema + # jsonschema-specifications +reportlab==4.2.5 + # via modoboa (pyproject.toml) +requests==2.32.3 + # via + # django-oauth-toolkit + # modoboa (pyproject.toml) + # ovh + # requests-file + # requests-oauthlib + # tldextract +requests-file==2.1.0 + # via tldextract +requests-oauthlib==2.0.0 + # via ovh +rpds-py==0.20.1 + # via + # jsonschema + # referencing +rq==2.0.0 + # via + # django-rq + # modoboa (pyproject.toml) +rrdtool==0.1.16 + # via modoboa (pyproject.toml) +sgmllib3k==1.0.0 + # via feedparser +sievelib==1.4.1 + # via modoboa (pyproject.toml) +six==1.16.0 + # via python-dateutil +sqlparse==0.5.1 + # via django +tldextract==5.1.2 + # via modoboa (pyproject.toml) +typing-extensions==4.12.2 + # via + # dj-database-url + # jwcrypto + # sievelib +uritemplate==4.1.1 + # via + # drf-spectacular + # modoboa (pyproject.toml) +urllib3==2.2.3 + # via requests +zope-event==5.0 + # via gevent +zope-interface==7.1.1 + # via gevent + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/postgresql-requirements.txt b/postgresql-requirements.txt index 726a08b3e..4a048663c 100644 --- a/postgresql-requirements.txt +++ b/postgresql-requirements.txt @@ -1 +1,209 @@ -psycopg[binary]>=3.1 +# +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: +# +# pip-compile --extra=postgresql --output-file=postgresql-requirements.txt pyproject.toml +# +aiosmtplib==3.0.2 + # via modoboa (pyproject.toml) +asgiref==3.8.1 + # via + # django + # django-cors-headers + # modoboa (pyproject.toml) +attrs==24.2.0 + # via + # jsonschema + # referencing +bcrypt==4.2.0 + # via modoboa (pyproject.toml) +certifi==2024.8.30 + # via requests +cffi==1.17.1 + # via cryptography +chardet==5.2.0 + # via + # modoboa (pyproject.toml) + # reportlab +charset-normalizer==3.4.0 + # via requests +click==8.1.7 + # via rq +cryptography==43.0.3 + # via + # fido2 + # jwcrypto + # modoboa (pyproject.toml) +defusedxml==0.7.1 + # via modoboa (pyproject.toml) +dj-database-url==2.3.0 + # via modoboa (pyproject.toml) +django==4.2.16 + # via + # dj-database-url + # django-ckeditor + # django-cors-headers + # django-filter + # django-js-asset + # django-oauth-toolkit + # django-otp + # django-phonenumber-field + # django-rename-app + # django-reversion + # django-rq + # django-xforwardedfor-middleware + # djangorestframework + # drf-spectacular + # modoboa (pyproject.toml) +django-ckeditor==6.7.1 + # via modoboa (pyproject.toml) +django-cors-headers==4.6.0 + # via modoboa (pyproject.toml) +django-environ==0.11.2 + # via modoboa (pyproject.toml) +django-filter==24.3 + # via modoboa (pyproject.toml) +django-js-asset==2.2.0 + # via django-ckeditor +django-oauth-toolkit==3.0.1 + # via modoboa (pyproject.toml) +django-otp==1.5.0 + # via modoboa (pyproject.toml) +django-phonenumber-field[phonenumbers]==8.0.0 + # via modoboa (pyproject.toml) +django-rename-app==0.1.7 + # via modoboa (pyproject.toml) +django-reversion==5.0.12 + # via modoboa (pyproject.toml) +django-rq==3.0.0 + # via modoboa (pyproject.toml) +django-xforwardedfor-middleware==2.0 + # via modoboa (pyproject.toml) +djangorestframework==3.15.2 + # via + # drf-spectacular + # modoboa (pyproject.toml) +dnspython==2.6.1 + # via modoboa (pyproject.toml) +drf-spectacular==0.27.2 + # via modoboa (pyproject.toml) +feedparser==6.0.11 + # via modoboa (pyproject.toml) +fido2==1.1.3 + # via modoboa (pyproject.toml) +filelock==3.16.1 + # via tldextract +gevent==24.2.1 + # via modoboa (pyproject.toml) +greenlet==3.1.1 + # via gevent +idna==3.10 + # via + # requests + # tldextract +inflection==0.5.1 + # via drf-spectacular +jsonschema==4.23.0 + # via drf-spectacular +jsonschema-specifications==2024.10.1 + # via jsonschema +jwcrypto==1.5.6 + # via django-oauth-toolkit +lxml==4.9.4 + # via modoboa (pyproject.toml) +oath==1.4.4 + # via modoboa (pyproject.toml) +oauthlib==3.2.2 + # via + # django-oauth-toolkit + # requests-oauthlib +ovh==1.2.0 + # via modoboa (pyproject.toml) +passlib==1.7.4 + # via modoboa (pyproject.toml) +phonenumbers==8.13.48 + # via django-phonenumber-field +pillow==11.0.0 + # via + # modoboa (pyproject.toml) + # reportlab +progressbar33==2.4 + # via modoboa (pyproject.toml) +psycopg[binary]==3.2.3 + # via modoboa (pyproject.toml) +psycopg-binary==3.2.3 + # via psycopg +pycparser==2.22 + # via cffi +python-dateutil==2.9.0.post0 + # via modoboa (pyproject.toml) +python-magic==0.4.27 + # via modoboa (pyproject.toml) +pytz==2024.2 + # via modoboa (pyproject.toml) +pyyaml==6.0.2 + # via drf-spectacular +qrcode==8.0 + # via modoboa (pyproject.toml) +redis==5.2.0 + # via + # django-rq + # modoboa (pyproject.toml) + # rq +referencing==0.35.1 + # via + # jsonschema + # jsonschema-specifications +reportlab==4.2.5 + # via modoboa (pyproject.toml) +requests==2.32.3 + # via + # django-oauth-toolkit + # modoboa (pyproject.toml) + # ovh + # requests-file + # requests-oauthlib + # tldextract +requests-file==2.1.0 + # via tldextract +requests-oauthlib==2.0.0 + # via ovh +rpds-py==0.20.1 + # via + # jsonschema + # referencing +rq==2.0.0 + # via + # django-rq + # modoboa (pyproject.toml) +rrdtool==0.1.16 + # via modoboa (pyproject.toml) +sgmllib3k==1.0.0 + # via feedparser +sievelib==1.4.1 + # via modoboa (pyproject.toml) +six==1.16.0 + # via python-dateutil +sqlparse==0.5.1 + # via django +tldextract==5.1.2 + # via modoboa (pyproject.toml) +typing-extensions==4.12.2 + # via + # dj-database-url + # jwcrypto + # psycopg + # sievelib +uritemplate==4.1.1 + # via + # drf-spectacular + # modoboa (pyproject.toml) +urllib3==2.2.3 + # via requests +zope-event==5.0 + # via gevent +zope-interface==7.1.1 + # via gevent + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/pyproject.toml b/pyproject.toml index 0aad8f7d4..44ac8eb89 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,11 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "modoboa" -dynamic = [ - "version", - "dependencies", - "optional-dependencies" -] +dynamic = ["version"] authors = [ { name="Antoine Nguyen", email="tonio@ngyn.org" }, ] @@ -32,6 +28,76 @@ classifiers = [ ] keywords = ["email"] license = {file = "LICENSE"} +dependencies = [ + "django>4.0,<5.0", + "django-ckeditor==6.7.1", + "django-phonenumber-field[phonenumbers]==8.0.0", + "django-reversion==5.0.12", + "django-xforwardedfor-middleware==2.0", + "django-otp==1.5.0", + "django-filter", + "django-rename-app==0.1.7", + "django-environ", + "dj-database-url", + "djangorestframework>=3.14,<3.16", + "drf-spectacular", + "uritemplate", + "django-oauth-toolkit", + "django-cors-headers", + "passlib~=1.7.4", + "bcrypt", # Requires libffi-dev and python-dev + "asgiref", + "dnspython==2.6.1", + "feedparser==6.0.11", + "fido2==1.1.3", + "gevent==24.2.1", + "Pillow", # Optional dependency for django-ckeditor + "progressbar33==2.4", + "python-dateutil", + "cryptography", + "pytz", + "requests", + "lxml==4.9.4", # FIXME: issue with version 5+ + "chardet", + "ovh", + "oath", + "redis>=4.2.0rc1", + "rrdtool>=0.1.10", + "qrcode", + "aiosmtplib", + # PDF credentials + "reportlab", + # DMARC + "tldextract>=2.0.2", + "defusedxml>=0.6.0", + "python-magic>=0.4.24", + # RQ + "rq>=1.13.0", + "django-rq", + # Sieve + "sievelib>=1.4.1" +] +[project.optional-dependencies] +dev = [ + "django-bower", + "django-debug-toolbar", + "pre-commit", + "black", + "pylint", + "django-extensions", + "Werkzeug", + "pyOpenSSL" +] +mysql = ["mysqlclient<2.2.5"] +postgresql = ["psycopg[binary]>=3.1"] +test = [ + "argon2-cffi>=16.1.0", + "factory-boy<3.4.0", + "httmock==1.4.0", + "testfixtures==8.3.0", + "tox", +] +ldap = ["django-auth-ldap>=1.3.0"] [project.scripts] modoboa-cli = "modoboa:modoboa_admin" @@ -45,9 +111,3 @@ Issues = "https://github.com/modoboa/modoboa/issues" [tool.setuptools.dynamic] version = {attr = "modoboa.version.get_version"} -dependencies = {file = ["requirements.txt"]} -optional-dependencies.dev = { file = ["dev-requirements.txt"] } -optional-dependencies.test = { file = ["test-requirements.txt"] } -optional-dependencies.ldap = { file = ["ldap-requirements.txt"] } -optional-dependencies.mysql = { file = ["mysql-requirements.txt"] } -optional-dependencies.postgresql = { file = ["postgresql-requirements.txt"] } diff --git a/requirements.txt b/requirements.txt index c314b0d8c..5056f2e67 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,56 +1,204 @@ -django>4.0,<5.0 +# +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: +# +# pip-compile --output-file=requirements.txt pyproject.toml +# +aiosmtplib==3.0.2 + # via modoboa (pyproject.toml) +asgiref==3.8.1 + # via + # django + # django-cors-headers + # modoboa (pyproject.toml) +attrs==24.2.0 + # via + # jsonschema + # referencing +bcrypt==4.2.0 + # via modoboa (pyproject.toml) +certifi==2024.8.30 + # via requests +cffi==1.17.1 + # via cryptography +chardet==5.2.0 + # via + # modoboa (pyproject.toml) + # reportlab +charset-normalizer==3.4.0 + # via requests +click==8.1.7 + # via rq +cryptography==43.0.3 + # via + # fido2 + # jwcrypto + # modoboa (pyproject.toml) +defusedxml==0.7.1 + # via modoboa (pyproject.toml) +dj-database-url==2.3.0 + # via modoboa (pyproject.toml) +django==4.2.16 + # via + # dj-database-url + # django-ckeditor + # django-cors-headers + # django-filter + # django-js-asset + # django-oauth-toolkit + # django-otp + # django-phonenumber-field + # django-rename-app + # django-reversion + # django-rq + # django-xforwardedfor-middleware + # djangorestframework + # drf-spectacular + # modoboa (pyproject.toml) django-ckeditor==6.7.1 -django-phonenumber-field[phonenumbers]==8.0.0 -django-reversion==5.0.12 -django-xforwardedfor-middleware==2.0 + # via modoboa (pyproject.toml) +django-cors-headers==4.6.0 + # via modoboa (pyproject.toml) +django-environ==0.11.2 + # via modoboa (pyproject.toml) +django-filter==24.3 + # via modoboa (pyproject.toml) +django-js-asset==2.2.0 + # via django-ckeditor +django-oauth-toolkit==3.0.1 + # via modoboa (pyproject.toml) django-otp==1.5.0 -django-filter + # via modoboa (pyproject.toml) +django-phonenumber-field[phonenumbers]==8.0.0 + # via modoboa (pyproject.toml) django-rename-app==0.1.7 -django-environ - -dj-database-url - -djangorestframework>=3.14,<3.16 -drf-spectacular -uritemplate -django-oauth-toolkit -django-cors-headers - -passlib~=1.7.4 -bcrypt # Requires libffi-dev and python-dev - -asgiref + # via modoboa (pyproject.toml) +django-reversion==5.0.12 + # via modoboa (pyproject.toml) +django-rq==3.0.0 + # via modoboa (pyproject.toml) +django-xforwardedfor-middleware==2.0 + # via modoboa (pyproject.toml) +djangorestframework==3.15.2 + # via + # drf-spectacular + # modoboa (pyproject.toml) dnspython==2.6.1 + # via modoboa (pyproject.toml) +drf-spectacular==0.27.2 + # via modoboa (pyproject.toml) feedparser==6.0.11 + # via modoboa (pyproject.toml) fido2==1.1.3 + # via modoboa (pyproject.toml) +filelock==3.16.1 + # via tldextract gevent==24.2.1 -Pillow # Optional dependency for django-ckeditor + # via modoboa (pyproject.toml) +greenlet==3.1.1 + # via gevent +idna==3.10 + # via + # requests + # tldextract +inflection==0.5.1 + # via drf-spectacular +jsonschema==4.23.0 + # via drf-spectacular +jsonschema-specifications==2024.10.1 + # via jsonschema +jwcrypto==1.5.6 + # via django-oauth-toolkit +lxml==4.9.4 + # via modoboa (pyproject.toml) +oath==1.4.4 + # via modoboa (pyproject.toml) +oauthlib==3.2.2 + # via + # django-oauth-toolkit + # requests-oauthlib +ovh==1.2.0 + # via modoboa (pyproject.toml) +passlib==1.7.4 + # via modoboa (pyproject.toml) +phonenumbers==8.13.48 + # via django-phonenumber-field +pillow==11.0.0 + # via + # modoboa (pyproject.toml) + # reportlab progressbar33==2.4 -python-dateutil -cryptography -pytz -requests -lxml[html_clean] -chardet -ovh -oath -redis>=4.2.0rc1 -rrdtool>=0.1.10 -qrcode + # via modoboa (pyproject.toml) +pycparser==2.22 + # via cffi +python-dateutil==2.9.0.post0 + # via modoboa (pyproject.toml) +python-magic==0.4.27 + # via modoboa (pyproject.toml) +pytz==2024.2 + # via modoboa (pyproject.toml) +pyyaml==6.0.2 + # via drf-spectacular +qrcode==8.0 + # via modoboa (pyproject.toml) +redis==5.2.0 + # via + # django-rq + # modoboa (pyproject.toml) + # rq +referencing==0.35.1 + # via + # jsonschema + # jsonschema-specifications +reportlab==4.2.5 + # via modoboa (pyproject.toml) +requests==2.32.3 + # via + # django-oauth-toolkit + # modoboa (pyproject.toml) + # ovh + # requests-file + # requests-oauthlib + # tldextract +requests-file==2.1.0 + # via tldextract +requests-oauthlib==2.0.0 + # via ovh +rpds-py==0.20.1 + # via + # jsonschema + # referencing +rq==2.0.0 + # via + # django-rq + # modoboa (pyproject.toml) +rrdtool==0.1.16 + # via modoboa (pyproject.toml) +sgmllib3k==1.0.0 + # via feedparser +sievelib==1.4.1 + # via modoboa (pyproject.toml) +six==1.16.0 + # via python-dateutil +sqlparse==0.5.1 + # via django +tldextract==5.1.2 + # via modoboa (pyproject.toml) +typing-extensions==4.12.2 + # via + # dj-database-url + # jwcrypto + # sievelib +uritemplate==4.1.1 + # via + # drf-spectacular + # modoboa (pyproject.toml) +urllib3==2.2.3 + # via requests +zope-event==5.0 + # via gevent +zope-interface==7.1.1 + # via gevent -aiosmtplib - -# PDF credentials -reportlab - -# DMARC -tldextract>=2.0.2 -defusedxml>=0.6.0 -python-magic>=0.4.24 - -# RQ -rq>=1.13.0 -django-rq - -# Sieve -sievelib>=1.4.1 +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 947d97f8f..000000000 --- a/setup.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[isort] -atomic = true -combine_as_imports = true -combine_star = true -default_section = THIRDPARTY -indent = ' ' -known_django = django -known_drf = rest_framework -known_first_party = modoboa,test_project -multi_line_output = 5 -no_lines_before = LOCALFOLDER -not_skip = __init__.py -sections = FUTURE,STDLIB,THIRDPARTY,DJANGO,DRF,FIRSTPARTY,LOCALFOLDER -skip_glob = **/migrations/*.py -use_parentheses = true - -[pep8] -exclude = migrations -max-line-length = 80 - -[flake8] -exclude = migrations -max-line-length = 80 -per-file-ignores = - modoboa/core/commands/templates/settings.py.tpl: E265 diff --git a/test-requirements.txt b/test-requirements.txt index 7a0c4aae8..5f5bcc098 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,5 +1,248 @@ -argon2-cffi>=16.1.0 -factory-boy<3.4.0 +# +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: +# +# pip-compile --extra=test --output-file=test-requirements.txt pyproject.toml +# +aiosmtplib==3.0.2 + # via modoboa (pyproject.toml) +argon2-cffi==23.1.0 + # via modoboa (pyproject.toml) +argon2-cffi-bindings==21.2.0 + # via argon2-cffi +asgiref==3.8.1 + # via + # django + # django-cors-headers + # modoboa (pyproject.toml) +attrs==24.2.0 + # via + # jsonschema + # referencing +bcrypt==4.2.0 + # via modoboa (pyproject.toml) +cachetools==5.5.0 + # via tox +certifi==2024.8.30 + # via requests +cffi==1.17.1 + # via + # argon2-cffi-bindings + # cryptography +chardet==5.2.0 + # via + # modoboa (pyproject.toml) + # reportlab + # tox +charset-normalizer==3.4.0 + # via requests +click==8.1.7 + # via rq +colorama==0.4.6 + # via tox +cryptography==43.0.3 + # via + # fido2 + # jwcrypto + # modoboa (pyproject.toml) +defusedxml==0.7.1 + # via modoboa (pyproject.toml) +distlib==0.3.9 + # via virtualenv +dj-database-url==2.3.0 + # via modoboa (pyproject.toml) +django==4.2.16 + # via + # dj-database-url + # django-ckeditor + # django-cors-headers + # django-filter + # django-js-asset + # django-oauth-toolkit + # django-otp + # django-phonenumber-field + # django-rename-app + # django-reversion + # django-rq + # django-xforwardedfor-middleware + # djangorestframework + # drf-spectacular + # modoboa (pyproject.toml) +django-ckeditor==6.7.1 + # via modoboa (pyproject.toml) +django-cors-headers==4.6.0 + # via modoboa (pyproject.toml) +django-environ==0.11.2 + # via modoboa (pyproject.toml) +django-filter==24.3 + # via modoboa (pyproject.toml) +django-js-asset==2.2.0 + # via django-ckeditor +django-oauth-toolkit==3.0.1 + # via modoboa (pyproject.toml) +django-otp==1.5.0 + # via modoboa (pyproject.toml) +django-phonenumber-field[phonenumbers]==8.0.0 + # via modoboa (pyproject.toml) +django-rename-app==0.1.7 + # via modoboa (pyproject.toml) +django-reversion==5.0.12 + # via modoboa (pyproject.toml) +django-rq==3.0.0 + # via modoboa (pyproject.toml) +django-xforwardedfor-middleware==2.0 + # via modoboa (pyproject.toml) +djangorestframework==3.15.2 + # via + # drf-spectacular + # modoboa (pyproject.toml) +dnspython==2.6.1 + # via modoboa (pyproject.toml) +drf-spectacular==0.27.2 + # via modoboa (pyproject.toml) +factory-boy==3.3.1 + # via modoboa (pyproject.toml) +faker==30.8.2 + # via factory-boy +feedparser==6.0.11 + # via modoboa (pyproject.toml) +fido2==1.1.3 + # via modoboa (pyproject.toml) +filelock==3.16.1 + # via + # tldextract + # tox + # virtualenv +gevent==24.2.1 + # via modoboa (pyproject.toml) +greenlet==3.1.1 + # via gevent httmock==1.4.0 + # via modoboa (pyproject.toml) +idna==3.10 + # via + # requests + # tldextract +inflection==0.5.1 + # via drf-spectacular +jsonschema==4.23.0 + # via drf-spectacular +jsonschema-specifications==2024.10.1 + # via jsonschema +jwcrypto==1.5.6 + # via django-oauth-toolkit +lxml==4.9.4 + # via modoboa (pyproject.toml) +oath==1.4.4 + # via modoboa (pyproject.toml) +oauthlib==3.2.2 + # via + # django-oauth-toolkit + # requests-oauthlib +ovh==1.2.0 + # via modoboa (pyproject.toml) +packaging==24.1 + # via + # pyproject-api + # tox +passlib==1.7.4 + # via modoboa (pyproject.toml) +phonenumbers==8.13.48 + # via django-phonenumber-field +pillow==11.0.0 + # via + # modoboa (pyproject.toml) + # reportlab +platformdirs==4.3.6 + # via + # tox + # virtualenv +pluggy==1.5.0 + # via tox +progressbar33==2.4 + # via modoboa (pyproject.toml) +pycparser==2.22 + # via cffi +pyproject-api==1.8.0 + # via tox +python-dateutil==2.9.0.post0 + # via + # faker + # modoboa (pyproject.toml) +python-magic==0.4.27 + # via modoboa (pyproject.toml) +pytz==2024.2 + # via modoboa (pyproject.toml) +pyyaml==6.0.2 + # via drf-spectacular +qrcode==8.0 + # via modoboa (pyproject.toml) +redis==5.2.0 + # via + # django-rq + # modoboa (pyproject.toml) + # rq +referencing==0.35.1 + # via + # jsonschema + # jsonschema-specifications +reportlab==4.2.5 + # via modoboa (pyproject.toml) +requests==2.32.3 + # via + # django-oauth-toolkit + # httmock + # modoboa (pyproject.toml) + # ovh + # requests-file + # requests-oauthlib + # tldextract +requests-file==2.1.0 + # via tldextract +requests-oauthlib==2.0.0 + # via ovh +rpds-py==0.20.1 + # via + # jsonschema + # referencing +rq==2.0.0 + # via + # django-rq + # modoboa (pyproject.toml) +rrdtool==0.1.16 + # via modoboa (pyproject.toml) +sgmllib3k==1.0.0 + # via feedparser +sievelib==1.4.1 + # via modoboa (pyproject.toml) +six==1.16.0 + # via python-dateutil +sqlparse==0.5.1 + # via django testfixtures==8.3.0 -tox + # via modoboa (pyproject.toml) +tldextract==5.1.2 + # via modoboa (pyproject.toml) +tox==4.23.2 + # via modoboa (pyproject.toml) +typing-extensions==4.12.2 + # via + # dj-database-url + # faker + # jwcrypto + # sievelib +uritemplate==4.1.1 + # via + # drf-spectacular + # modoboa (pyproject.toml) +urllib3==2.2.3 + # via requests +virtualenv==20.27.1 + # via tox +zope-event==5.0 + # via gevent +zope-interface==7.1.1 + # via gevent + +# The following packages are considered to be unsafe in a requirements file: +# setuptools