Refactor settings

This commit is contained in:
Daniel Egger 2022-02-03 14:05:30 +01:00
parent 54c315dcd7
commit 1c340aace3
5 changed files with 29 additions and 81 deletions

View File

@ -37,6 +37,7 @@ RUN apt-get update && apt-get install --no-install-recommends -y \
COPY ./requirements . COPY ./requirements .
# Create Python Dependency and Sub-Dependency Wheels. # Create Python Dependency and Sub-Dependency Wheels.
# FIXME should we also use requirements-dev.txt in prod?
RUN pip wheel --wheel-dir /usr/src/app/wheels -r requirements-dev.txt RUN pip wheel --wheel-dir /usr/src/app/wheels -r requirements-dev.txt

View File

@ -4,13 +4,13 @@ Base settings to build other settings files upon.
import logging import logging
from pathlib import Path from pathlib import Path
import environ
import structlog import structlog
from environs import Env
ROOT_DIR = Path(__file__).resolve(strict=True).parent.parent.parent ROOT_DIR = Path(__file__).resolve(strict=True).parent.parent.parent
# vbv_lernwelt/ # vbv_lernwelt/
APPS_DIR = ROOT_DIR / "vbv_lernwelt" APPS_DIR = ROOT_DIR / "vbv_lernwelt"
env = environ.Env() env = Env()
READ_DOT_ENV_FILE = env.bool("VBV_DJANGO_READ_DOT_ENV_FILE", default=False) READ_DOT_ENV_FILE = env.bool("VBV_DJANGO_READ_DOT_ENV_FILE", default=False)
if READ_DOT_ENV_FILE: if READ_DOT_ENV_FILE:
@ -42,7 +42,7 @@ LOCALE_PATHS = [str(ROOT_DIR / "locale")]
# DATABASES # DATABASES
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# https://docs.djangoproject.com/en/dev/ref/settings/#databases # https://docs.djangoproject.com/en/dev/ref/settings/#databases
DATABASES = {"default": env.db_url("VBV_DATABASE_URL")} DATABASES = {"default": env.dj_db_url("VBV_DATABASE_URL")}
DATABASES["default"]["ATOMIC_REQUESTS"] = True # noqa F405 DATABASES["default"]["ATOMIC_REQUESTS"] = True # noqa F405
DATABASES["default"]["CONN_MAX_AGE"] = env.int("CONN_MAX_AGE", default=60) # noqa F405 DATABASES["default"]["CONN_MAX_AGE"] = env.int("CONN_MAX_AGE", default=60) # noqa F405
# https://docs.djangoproject.com/en/stable/ref/settings/#std:setting-DEFAULT_AUTO_FIELD # https://docs.djangoproject.com/en/stable/ref/settings/#std:setting-DEFAULT_AUTO_FIELD
@ -188,10 +188,6 @@ TEMPLATES = [
# https://docs.djangoproject.com/en/dev/ref/settings/#form-renderer # https://docs.djangoproject.com/en/dev/ref/settings/#form-renderer
FORM_RENDERER = "django.forms.renderers.TemplatesSetting" FORM_RENDERER = "django.forms.renderers.TemplatesSetting"
# http://django-crispy-forms.readthedocs.io/en/latest/install.html#template-packs
CRISPY_TEMPLATE_PACK = "bootstrap5"
CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5"
# FIXTURES # FIXTURES
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# https://docs.djangoproject.com/en/dev/ref/settings/#fixture-dirs # https://docs.djangoproject.com/en/dev/ref/settings/#fixture-dirs
@ -223,7 +219,7 @@ EMAIL_TIMEOUT = 5
# Django Admin URL. # Django Admin URL.
ADMIN_URL = "admin/" ADMIN_URL = "admin/"
# https://docs.djangoproject.com/en/dev/ref/settings/#admins # https://docs.djangoproject.com/en/dev/ref/settings/#admins
ADMINS = [("""Daniel Egger""", "daniel.egger@iterativ.ch")] ADMINS = [("""Daniel Egger""", "info@iterativ.ch")]
# https://docs.djangoproject.com/en/dev/ref/settings/#managers # https://docs.djangoproject.com/en/dev/ref/settings/#managers
MANAGERS = ADMINS MANAGERS = ADMINS

View File

@ -33,9 +33,7 @@ certifi==2021.10.8
# requests # requests
# sentry-sdk # sentry-sdk
cffi==1.15.0 cffi==1.15.0
# via # via argon2-cffi-bindings
# argon2-cffi-bindings
# cryptography
cfgv==3.3.1 cfgv==3.3.1
# via pre-commit # via pre-commit
charset-normalizer==2.0.11 charset-normalizer==2.0.11
@ -55,25 +53,19 @@ coverage==6.3.1
# via # via
# -r requirements-dev.in # -r requirements-dev.in
# django-coverage-plugin # django-coverage-plugin
crispy-bootstrap5==0.6
# via -r requirements.in
cryptography==36.0.1
# via pyjwt
decorator==5.1.1 decorator==5.1.1
# via # via
# ipdb # ipdb
# ipython # ipython
defusedxml==0.7.1
# via python3-openid
deprecated==1.2.13 deprecated==1.2.13
# via redis # via redis
distlib==0.3.4 distlib==0.3.4
# via virtualenv # via virtualenv
dj-database-url==0.5.0
# via -r requirements.in
django==3.2.12 django==3.2.12
# via # via
# -r requirements.in # -r requirements.in
# crispy-bootstrap5
# django-allauth
# django-cors-headers # django-cors-headers
# django-debug-toolbar # django-debug-toolbar
# django-extensions # django-extensions
@ -83,20 +75,12 @@ django==3.2.12
# django-stubs-ext # django-stubs-ext
# djangorestframework # djangorestframework
# drf-spectacular # drf-spectacular
django-allauth==0.47.0
# via -r requirements.in
django-cors-headers==3.11.0 django-cors-headers==3.11.0
# via -r requirements.in # via -r requirements.in
django-coverage-plugin==2.0.2 django-coverage-plugin==2.0.2
# via -r requirements-dev.in # via -r requirements-dev.in
django-crispy-forms==1.14.0
# via
# -r requirements.in
# crispy-bootstrap5
django-debug-toolbar==3.2.4 django-debug-toolbar==3.2.4
# via -r requirements-dev.in # via -r requirements-dev.in
django-environ==0.8.1
# via -r requirements.in
django-extensions==3.1.5 django-extensions==3.1.5
# via -r requirements-dev.in # via -r requirements-dev.in
django-model-utils==4.2.0 django-model-utils==4.2.0
@ -117,6 +101,8 @@ djangorestframework-stubs==1.4.0
# via -r requirements-dev.in # via -r requirements-dev.in
drf-spectacular==0.21.2 drf-spectacular==0.21.2
# via -r requirements.in # via -r requirements.in
environs==9.5.0
# via -r requirements.in
executing==0.8.2 executing==0.8.2
# via stack-data # via stack-data
factory-boy==3.2.1 factory-boy==3.2.1
@ -167,6 +153,8 @@ lazy-object-proxy==1.7.1
# via astroid # via astroid
markupsafe==2.0.1 markupsafe==2.0.1
# via jinja2 # via jinja2
marshmallow==3.14.1
# via environs
matplotlib-inline==0.1.3 matplotlib-inline==0.1.3
# via ipython # via ipython
mccabe==0.6.1 mccabe==0.6.1
@ -184,8 +172,6 @@ mypy-extensions==0.4.3
# mypy # mypy
nodeenv==1.6.0 nodeenv==1.6.0
# via pre-commit # via pre-commit
oauthlib==3.2.0
# via requests-oauthlib
packaging==21.3 packaging==21.3
# via # via
# pytest # pytest
@ -234,8 +220,6 @@ pyflakes==2.4.0
# via flake8 # via flake8
pygments==2.11.2 pygments==2.11.2
# via ipython # via ipython
pyjwt[crypto]==2.3.0
# via django-allauth
pylint==2.12.2 pylint==2.12.2
# via # via
# pylint-django # pylint-django
@ -260,13 +244,13 @@ pytest-sugar==0.9.4
python-dateutil==2.8.2 python-dateutil==2.8.2
# via faker # via faker
python-dotenv==0.19.2 python-dotenv==0.19.2
# via uvicorn # via
# environs
# uvicorn
python-json-logger==2.0.2 python-json-logger==2.0.2
# via -r requirements.in # via -r requirements.in
python-slugify==5.0.2 python-slugify==5.0.2
# via -r requirements.in # via -r requirements.in
python3-openid==3.2.0
# via django-allauth
pytz==2021.3 pytz==2021.3
# via # via
# -r requirements.in # -r requirements.in
@ -284,11 +268,7 @@ redis==4.1.2
requests==2.27.1 requests==2.27.1
# via # via
# coreapi # coreapi
# django-allauth
# djangorestframework-stubs # djangorestframework-stubs
# requests-oauthlib
requests-oauthlib==1.3.1
# via django-allauth
sentry-sdk==1.5.4 sentry-sdk==1.5.4
# via -r requirements.in # via -r requirements.in
six==1.16.0 six==1.16.0

View File

@ -6,11 +6,12 @@ whitenoise # https://github.com/evansd/whitenoise
redis # https://github.com/redis/redis-py redis # https://github.com/redis/redis-py
hiredis # https://github.com/redis/hiredis-py hiredis # https://github.com/redis/hiredis-py
uvicorn[standard] # https://github.com/encode/uvicorn uvicorn[standard] # https://github.com/encode/uvicorn
environs
dj-database-url
# Django # Django
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
django<4 # https://www.djangoproject.com/ django<4 # https://www.djangoproject.com/
django-environ # https://github.com/joke2k/django-environ
django-model-utils # https://github.com/jazzband/django-model-utils django-model-utils # https://github.com/jazzband/django-model-utils
django-redis # https://github.com/jazzband/django-redis django-redis # https://github.com/jazzband/django-redis
# Django REST Framework # Django REST Framework

View File

@ -15,47 +15,27 @@ asgiref==3.5.0
attrs==21.4.0 attrs==21.4.0
# via jsonschema # via jsonschema
certifi==2021.10.8 certifi==2021.10.8
# via # via sentry-sdk
# requests
# sentry-sdk
cffi==1.15.0 cffi==1.15.0
# via # via argon2-cffi-bindings
# argon2-cffi-bindings
# cryptography
charset-normalizer==2.0.11
# via requests
click==8.0.3 click==8.0.3
# via uvicorn # via uvicorn
concurrent-log-handler==0.9.19 concurrent-log-handler==0.9.19
# via -r requirements.in # via -r requirements.in
crispy-bootstrap5==0.6
# via -r requirements.in
cryptography==36.0.1
# via pyjwt
defusedxml==0.7.1
# via python3-openid
deprecated==1.2.13 deprecated==1.2.13
# via redis # via redis
dj-database-url==0.5.0
# via -r requirements.in
django==3.2.12 django==3.2.12
# via # via
# -r requirements.in # -r requirements.in
# crispy-bootstrap5
# django-allauth
# django-cors-headers # django-cors-headers
# django-model-utils # django-model-utils
# django-redis # django-redis
# djangorestframework # djangorestframework
# drf-spectacular # drf-spectacular
django-allauth==0.47.0
# via -r requirements.in
django-cors-headers==3.11.0 django-cors-headers==3.11.0
# via -r requirements.in # via -r requirements.in
django-crispy-forms==1.14.0
# via
# -r requirements.in
# crispy-bootstrap5
django-environ==0.8.1
# via -r requirements.in
django-model-utils==4.2.0 django-model-utils==4.2.0
# via -r requirements.in # via -r requirements.in
django-redis==5.2.0 django-redis==5.2.0
@ -66,6 +46,8 @@ djangorestframework==3.13.1
# drf-spectacular # drf-spectacular
drf-spectacular==0.21.2 drf-spectacular==0.21.2
# via -r requirements.in # via -r requirements.in
environs==9.5.0
# via -r requirements.in
gunicorn==20.1.0 gunicorn==20.1.0
# via -r requirements.in # via -r requirements.in
h11==0.13.0 h11==0.13.0
@ -74,14 +56,12 @@ hiredis==2.0.0
# via -r requirements.in # via -r requirements.in
httptools==0.3.0 httptools==0.3.0
# via uvicorn # via uvicorn
idna==3.3
# via requests
inflection==0.5.1 inflection==0.5.1
# via drf-spectacular # via drf-spectacular
jsonschema==4.4.0 jsonschema==4.4.0
# via drf-spectacular # via drf-spectacular
oauthlib==3.2.0 marshmallow==3.14.1
# via requests-oauthlib # via environs
packaging==21.3 packaging==21.3
# via redis # via redis
pillow==9.0.0 pillow==9.0.0
@ -92,20 +72,18 @@ psycopg2-binary==2.9.3
# via -r requirements.in # via -r requirements.in
pycparser==2.21 pycparser==2.21
# via cffi # via cffi
pyjwt[crypto]==2.3.0
# via django-allauth
pyparsing==3.0.7 pyparsing==3.0.7
# via packaging # via packaging
pyrsistent==0.18.1 pyrsistent==0.18.1
# via jsonschema # via jsonschema
python-dotenv==0.19.2 python-dotenv==0.19.2
# via uvicorn # via
# environs
# uvicorn
python-json-logger==2.0.2 python-json-logger==2.0.2
# via -r requirements.in # via -r requirements.in
python-slugify==5.0.2 python-slugify==5.0.2
# via -r requirements.in # via -r requirements.in
python3-openid==3.2.0
# via django-allauth
pytz==2021.3 pytz==2021.3
# via # via
# -r requirements.in # -r requirements.in
@ -119,12 +97,6 @@ redis==4.1.2
# via # via
# -r requirements.in # -r requirements.in
# django-redis # django-redis
requests==2.27.1
# via
# django-allauth
# requests-oauthlib
requests-oauthlib==1.3.1
# via django-allauth
sentry-sdk==1.5.4 sentry-sdk==1.5.4
# via -r requirements.in # via -r requirements.in
sqlparse==0.4.2 sqlparse==0.4.2
@ -136,9 +108,7 @@ text-unidecode==1.3
uritemplate==4.1.1 uritemplate==4.1.1
# via drf-spectacular # via drf-spectacular
urllib3==1.26.8 urllib3==1.26.8
# via # via sentry-sdk
# requests
# sentry-sdk
uvicorn[standard]==0.17.1 uvicorn[standard]==0.17.1
# via -r requirements.in # via -r requirements.in
uvloop==0.16.0 uvloop==0.16.0