mirror of
https://github.com/carrotquest/django-clickhouse.git
synced 2025-05-31 19:23:05 +03:00
40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
"""
|
|
This file is a wrapper for django settings,
|
|
which searches for library properties and sets defaults
|
|
"""
|
|
|
|
from django.conf import settings
|
|
from typing import Any
|
|
|
|
# Prefix of all library parameters
|
|
PREFIX = getattr(settings, 'CLICKHOUSE_SETTINGS_PREFIX', 'CLICKHOUSE_')
|
|
|
|
# Default values for all library parameters
|
|
DEFAULTS = {
|
|
'DATABASES': {},
|
|
'SYNC_BATCH_SIZE': 10000,
|
|
'SYNC_STORAGE': 'django_clickhouse.storages.RedisStorage',
|
|
'SYNC_DELAY': 5,
|
|
'REDIS_CONFIG': None,
|
|
'MODELS_MODULE': 'clickhouse_models',
|
|
'DATABASE_ROUTER': 'django_clickhouse.routers.DefaultRouter',
|
|
'STATSD_PREFIX': 'clickhouse',
|
|
'MIGRATIONS_PACKAGE': 'clickhouse_migrations',
|
|
'MIGRATION_HISTORY_MODEL': 'django_clickhouse.migrations.MigrationHistory',
|
|
'MIGRATE_WITH_DEFAULT_DB': True,
|
|
'CELERY_QUEUE': 'celery',
|
|
'DEFAULT_DB_ALIAS': 'default'
|
|
}
|
|
|
|
|
|
class Config:
|
|
def __getattr__(self, item: str) -> Any:
|
|
if item not in DEFAULTS:
|
|
raise AttributeError('Unknown config parameter `%s`' % item)
|
|
|
|
name = PREFIX + item
|
|
return getattr(settings, name, DEFAULTS[item])
|
|
|
|
|
|
config = Config()
|