mirror of
https://github.com/umap-project/umap.git
synced 2025-05-01 12:32:23 +02:00
49 lines
1.8 KiB
Python
49 lines
1.8 KiB
Python
import os
|
|
import sys
|
|
import types
|
|
|
|
from django.utils.termcolors import colorize
|
|
|
|
from .base import * # NOQA, default values
|
|
|
|
# Allow to override setting from any file, may be out of the PYTHONPATH,
|
|
# to make it easier for non python people.
|
|
path = os.environ.get('UMAP_SETTINGS')
|
|
if not path:
|
|
# Retrocompat
|
|
path = os.path.join('/etc', 'umap', 'umap.conf')
|
|
if not os.path.exists(path):
|
|
# Retrocompat
|
|
path = os.path.join(os.path.dirname(os.path.realpath(__file__)),
|
|
'local.py')
|
|
if not os.path.exists(path):
|
|
print(colorize('No valid UMAP_SETTINGS found', fg='yellow'))
|
|
path = None
|
|
|
|
if path:
|
|
d = types.ModuleType('config')
|
|
d.__file__ = path
|
|
try:
|
|
with open(path) as config_file:
|
|
exec(compile(config_file.read(), path, 'exec'), d.__dict__)
|
|
except IOError as e:
|
|
msg = 'Unable to import {} from UMAP_SETTINGS'.format(path)
|
|
print(colorize(msg, fg='red'))
|
|
sys.exit(e)
|
|
else:
|
|
print('Loaded local config from', path)
|
|
for key in dir(d):
|
|
if key.isupper():
|
|
value = getattr(d, key)
|
|
if key.startswith('LEAFLET_STORAGE'):
|
|
# Retrocompat pre 1.0, remove me in 1.1.
|
|
globals()['UMAP' + key[15:]] = value
|
|
elif key == 'UMAP_CUSTOM_TEMPLATES':
|
|
if 'DIRS' in globals()['TEMPLATES'][0]:
|
|
globals()['TEMPLATES'][0]['DIRS'].insert(0, value)
|
|
else:
|
|
globals()['TEMPLATES'][0]['DIRS'] = [value]
|
|
elif key == 'UMAP_CUSTOM_STATICS':
|
|
globals()['STATICFILES_DIRS'].insert(0, value)
|
|
else:
|
|
globals()[key] = value
|