Files
@ 609bf3066f84
Branch filter:
Location: django-pydenticon/django_pydenticon/settings.py - annotation
609bf3066f84
3.1 KiB
text/x-python
DJPYD-2: Added description of configuration parameters.
6d04883b0a8b 6d04883b0a8b 6d04883b0a8b 6d04883b0a8b 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 6d04883b0a8b 9b6778938da5 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 5f16d1bf5419 6d04883b0a8b 6d04883b0a8b 9b6778938da5 9b6778938da5 9b6778938da5 | # Standard Python library imports.
import collections
import hashlib
# Django imports
from django.conf import settings
from django.core.exceptions import ImproperlyConfigured
# Read project settings for Pydenticon, or fall-back to default values.
PYDENTICON_ROWS = getattr(settings, "PYDENTICON_ROWS", 5)
PYDENTICON_COLUMNS = getattr(settings, "PYDENTICON_COLUMNS", 5)
PYDENTICON_WIDTH = getattr(settings, "PYDENTICON_WIDTH", 200)
PYDENTICON_HEIGHT = getattr(settings, "PYDENTICON_HEIGHT", 200)
PYDENTICON_PADDING = getattr(settings, "PYDENTICON_PADDING", (20, 20, 20, 20))
PYDENTICON_FORMAT = getattr(settings, "PYDENTICON_FORMAT", "png")
PYDENTICON_FOREGROUND = getattr(settings, "PYDENTICON_FOREGROUND", ( "rgb(45,79,255)",
"rgb(254,180,44)",
"rgb(226,121,234)",
"rgb(30,179,253)",
"rgb(232,77,65)",
"rgb(49,203,115)",
"rgb(141,69,170)" ))
PYDENTICON_BACKGROUND = getattr(settings, "PYDENTICON_BACKGROUND", "rgb(224,224,224)")
PYDENTICON_DIGEST = getattr(settings, "PYDENTICON_DIGEST", hashlib.md5)
PYDENTICON_INVERT = getattr(settings, "PYDENTICON_INVERT", False)
# Validate the settings.
if not isinstance(PYDENTICON_ROWS, int) or PYDENTICON_ROWS <= 0:
raise ImproperlyConfigured("Setting PYDENTICON_ROWS must be a positive integer.")
if not isinstance(PYDENTICON_COLUMNS, int) or PYDENTICON_COLUMNS <= 0:
raise ImproperlyConfigured("Setting PYDENTICON_COLUMNS must be a positive integer.")
if not isinstance(PYDENTICON_WIDTH, int) or PYDENTICON_WIDTH <= 0:
raise ImproperlyConfigured("Setting PYDENTICON_WIDTH must be a positive integer.")
if not isinstance(PYDENTICON_HEIGHT, int) or PYDENTICON_HEIGHT <= 0:
raise ImproperlyConfigured("Setting PYDENTICON_HEIGHT must be a positive integer.")
if not all([isinstance(p, int) and p >= 0 for p in PYDENTICON_PADDING]) or len(PYDENTICON_PADDING) != 4:
raise ImproperlyConfigured("Setting PYDENTICON_PADDING must be a 4-tuple where each element is a non-negative integer.")
if PYDENTICON_FORMAT not in ("png", "ascii"):
raise ImproperlyConfigured("Setting PYDENTICON_FORMAT must be set to one of: 'png', 'ascii'.")
if not all([isinstance(f, str) for f in PYDENTICON_FOREGROUND]):
raise ImproperlyConfigured("Setting PYDENTICON_FOREGROUND must be a tuple where each element is string representation of colour.")
if not isinstance(PYDENTICON_BACKGROUND, str):
raise ImproperlyConfigured("Setting PYDENTICON_BACKGROUND must be a string representation of colour")
if not isinstance(PYDENTICON_DIGEST, collections.Callable):
raise ImproperlyConfigured("Setting PYDENTICON_DIGEST must be a callable digest (usually from hashlib module).")
if not isinstance(PYDENTICON_INVERT, bool):
raise ImproperlyConfigured("Setting PYDENTICON_INVERT must be a boolean.")
|