From 3667626eb288bf6540b8cfbdadf987ff439a1cb0 Mon Sep 17 00:00:00 2001 From: Corban-Lee Date: Tue, 6 Aug 2024 21:00:40 +0100 Subject: [PATCH] env variables handling --- core/settings.py | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/core/settings.py b/core/settings.py index 78e23e8..da239bc 100644 --- a/core/settings.py +++ b/core/settings.py @@ -1,19 +1,36 @@ # -*- encoding: utf-8 -*- -import os, environ +import os +import environ +import logging from pathlib import Path from django.utils import timezone +log = logging.getLogger(__name__) + VERSION = "0.1.1" # BASE_DIR is the root of the project, all paths should be constructed from it using pathlib BASE_DIR = Path(__file__).parent.parent # Create an environment and read variables from .env file -env = environ.Env(DEBUG=(bool, True)) +env = environ.Env( + DEBUG=(bool, True), + BOT_TOKEN=(str, None), + +) environ.Env.read_env(BASE_DIR / ".env") +required_env_vars = ( + "BOT_TOKEN", "DISCORD_KEY", "DISCORD_SECRET", "DISCORD_REDIRECT_URL", "DISCORD_API_URL", + "DISCORD_OAUTH2_URL", "SUPERUSER_IDS" +) + +for var in required_env_vars: + if not env(var, default=None): + log.warn("Required environment variable %s is not set, the application will fail!", var) + # SECURITY WARNING: This is sensitive data, keep secure! SECRET_KEY = env('SECRET_KEY', default="unsecure-default-secret-key") @@ -107,18 +124,10 @@ else: # https://docs.djangoproject.com/en/5.0/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ - { - 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', - }, - { - 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', - }, - { - 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', - }, - { - 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', - }, + { "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator" }, + { "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator" }, + { "NAME": "django.contrib.auth.password_validation.CommonPasswordValidator" }, + { "NAME": "django.contrib.auth.password_validation.NumericPasswordValidator" } ] AUTHENTICATION_BACKENDS = [