From 1c340aace3ee7a519891701f2e1fd0533137a7f9 Mon Sep 17 00:00:00 2001 From: Daniel Egger Date: Thu, 3 Feb 2022 14:05:30 +0100 Subject: [PATCH] Refactor settings --- compose/django/Dockerfile | 1 + config/settings/base.py | 12 +++---- requirements/requirements-dev.txt | 40 ++++++----------------- requirements/requirements.in | 3 +- requirements/requirements.txt | 54 +++++++------------------------ 5 files changed, 29 insertions(+), 81 deletions(-) diff --git a/compose/django/Dockerfile b/compose/django/Dockerfile index 6dd66fbf..ac6b8167 100644 --- a/compose/django/Dockerfile +++ b/compose/django/Dockerfile @@ -37,6 +37,7 @@ RUN apt-get update && apt-get install --no-install-recommends -y \ COPY ./requirements . # 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 diff --git a/config/settings/base.py b/config/settings/base.py index 63630fdd..83b912bc 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -4,13 +4,13 @@ Base settings to build other settings files upon. import logging from pathlib import Path -import environ import structlog +from environs import Env ROOT_DIR = Path(__file__).resolve(strict=True).parent.parent.parent # 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) if READ_DOT_ENV_FILE: @@ -42,7 +42,7 @@ LOCALE_PATHS = [str(ROOT_DIR / "locale")] # 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"]["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 @@ -188,10 +188,6 @@ TEMPLATES = [ # https://docs.djangoproject.com/en/dev/ref/settings/#form-renderer 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 # ------------------------------------------------------------------------------ # https://docs.djangoproject.com/en/dev/ref/settings/#fixture-dirs @@ -223,7 +219,7 @@ EMAIL_TIMEOUT = 5 # Django Admin URL. ADMIN_URL = "admin/" # 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 MANAGERS = ADMINS diff --git a/requirements/requirements-dev.txt b/requirements/requirements-dev.txt index d3de1c6a..a0f2e232 100644 --- a/requirements/requirements-dev.txt +++ b/requirements/requirements-dev.txt @@ -33,9 +33,7 @@ certifi==2021.10.8 # requests # sentry-sdk cffi==1.15.0 - # via - # argon2-cffi-bindings - # cryptography + # via argon2-cffi-bindings cfgv==3.3.1 # via pre-commit charset-normalizer==2.0.11 @@ -55,25 +53,19 @@ coverage==6.3.1 # via # -r requirements-dev.in # django-coverage-plugin -crispy-bootstrap5==0.6 - # via -r requirements.in -cryptography==36.0.1 - # via pyjwt decorator==5.1.1 # via # ipdb # ipython -defusedxml==0.7.1 - # via python3-openid deprecated==1.2.13 # via redis distlib==0.3.4 # via virtualenv +dj-database-url==0.5.0 + # via -r requirements.in django==3.2.12 # via # -r requirements.in - # crispy-bootstrap5 - # django-allauth # django-cors-headers # django-debug-toolbar # django-extensions @@ -83,20 +75,12 @@ django==3.2.12 # django-stubs-ext # djangorestframework # drf-spectacular -django-allauth==0.47.0 - # via -r requirements.in django-cors-headers==3.11.0 # via -r requirements.in django-coverage-plugin==2.0.2 # via -r requirements-dev.in -django-crispy-forms==1.14.0 - # via - # -r requirements.in - # crispy-bootstrap5 django-debug-toolbar==3.2.4 # via -r requirements-dev.in -django-environ==0.8.1 - # via -r requirements.in django-extensions==3.1.5 # via -r requirements-dev.in django-model-utils==4.2.0 @@ -117,6 +101,8 @@ djangorestframework-stubs==1.4.0 # via -r requirements-dev.in drf-spectacular==0.21.2 # via -r requirements.in +environs==9.5.0 + # via -r requirements.in executing==0.8.2 # via stack-data factory-boy==3.2.1 @@ -167,6 +153,8 @@ lazy-object-proxy==1.7.1 # via astroid markupsafe==2.0.1 # via jinja2 +marshmallow==3.14.1 + # via environs matplotlib-inline==0.1.3 # via ipython mccabe==0.6.1 @@ -184,8 +172,6 @@ mypy-extensions==0.4.3 # mypy nodeenv==1.6.0 # via pre-commit -oauthlib==3.2.0 - # via requests-oauthlib packaging==21.3 # via # pytest @@ -234,8 +220,6 @@ pyflakes==2.4.0 # via flake8 pygments==2.11.2 # via ipython -pyjwt[crypto]==2.3.0 - # via django-allauth pylint==2.12.2 # via # pylint-django @@ -260,13 +244,13 @@ pytest-sugar==0.9.4 python-dateutil==2.8.2 # via faker python-dotenv==0.19.2 - # via uvicorn + # via + # environs + # uvicorn python-json-logger==2.0.2 # via -r requirements.in python-slugify==5.0.2 # via -r requirements.in -python3-openid==3.2.0 - # via django-allauth pytz==2021.3 # via # -r requirements.in @@ -284,11 +268,7 @@ redis==4.1.2 requests==2.27.1 # via # coreapi - # django-allauth # djangorestframework-stubs - # requests-oauthlib -requests-oauthlib==1.3.1 - # via django-allauth sentry-sdk==1.5.4 # via -r requirements.in six==1.16.0 diff --git a/requirements/requirements.in b/requirements/requirements.in index 4751c64a..631571f5 100644 --- a/requirements/requirements.in +++ b/requirements/requirements.in @@ -6,11 +6,12 @@ whitenoise # https://github.com/evansd/whitenoise redis # https://github.com/redis/redis-py hiredis # https://github.com/redis/hiredis-py uvicorn[standard] # https://github.com/encode/uvicorn +environs +dj-database-url # Django # ------------------------------------------------------------------------------ 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-redis # https://github.com/jazzband/django-redis # Django REST Framework diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 551cf571..81bd8fd2 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -15,47 +15,27 @@ asgiref==3.5.0 attrs==21.4.0 # via jsonschema certifi==2021.10.8 - # via - # requests - # sentry-sdk + # via sentry-sdk cffi==1.15.0 - # via - # argon2-cffi-bindings - # cryptography -charset-normalizer==2.0.11 - # via requests + # via argon2-cffi-bindings click==8.0.3 # via uvicorn concurrent-log-handler==0.9.19 # 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 # via redis +dj-database-url==0.5.0 + # via -r requirements.in django==3.2.12 # via # -r requirements.in - # crispy-bootstrap5 - # django-allauth # django-cors-headers # django-model-utils # django-redis # djangorestframework # drf-spectacular -django-allauth==0.47.0 - # via -r requirements.in django-cors-headers==3.11.0 # 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 # via -r requirements.in django-redis==5.2.0 @@ -66,6 +46,8 @@ djangorestframework==3.13.1 # drf-spectacular drf-spectacular==0.21.2 # via -r requirements.in +environs==9.5.0 + # via -r requirements.in gunicorn==20.1.0 # via -r requirements.in h11==0.13.0 @@ -74,14 +56,12 @@ hiredis==2.0.0 # via -r requirements.in httptools==0.3.0 # via uvicorn -idna==3.3 - # via requests inflection==0.5.1 # via drf-spectacular jsonschema==4.4.0 # via drf-spectacular -oauthlib==3.2.0 - # via requests-oauthlib +marshmallow==3.14.1 + # via environs packaging==21.3 # via redis pillow==9.0.0 @@ -92,20 +72,18 @@ psycopg2-binary==2.9.3 # via -r requirements.in pycparser==2.21 # via cffi -pyjwt[crypto]==2.3.0 - # via django-allauth pyparsing==3.0.7 # via packaging pyrsistent==0.18.1 # via jsonschema python-dotenv==0.19.2 - # via uvicorn + # via + # environs + # uvicorn python-json-logger==2.0.2 # via -r requirements.in python-slugify==5.0.2 # via -r requirements.in -python3-openid==3.2.0 - # via django-allauth pytz==2021.3 # via # -r requirements.in @@ -119,12 +97,6 @@ redis==4.1.2 # via # -r requirements.in # django-redis -requests==2.27.1 - # via - # django-allauth - # requests-oauthlib -requests-oauthlib==1.3.1 - # via django-allauth sentry-sdk==1.5.4 # via -r requirements.in sqlparse==0.4.2 @@ -136,9 +108,7 @@ text-unidecode==1.3 uritemplate==4.1.1 # via drf-spectacular urllib3==1.26.8 - # via - # requests - # sentry-sdk + # via sentry-sdk uvicorn[standard]==0.17.1 # via -r requirements.in uvloop==0.16.0