Source code for tcms.utils.settings
# Copyright (c) 2020 Alexander Todorov <atodorov@MrSenko.com>
import glob
import inspect
import os
[docs]
def import_local_settings(scan_dir, **kwargs):
"""
Add/override the global settings object with additional settings
defined in files found under @scan_dir.
Files are executed in alphabetic order!
@scan_dir is an absolute directory path!
"""
# we are getting globals() from previous frame globals - it is caller's globals()
scope = kwargs.pop("scope", inspect.stack()[1][0].f_globals)
override_files = glob.glob(os.path.join(scan_dir, "*.py"))
override_files.sort()
for fname in override_files:
if fname.endswith("__init__.py"):
continue
# Similar to what Transifex does
# https://code.djangoproject.com/wiki/SplitSettings#Usingexectoincorporatelocalsettings
# https://code.djangoproject.com/wiki/SplitSettings#UsingalistofconffilesTransifex
with open(fname, "rb") as file_handle:
exec( # nosec:B102:exec_used pylint: disable=exec-used
file_handle.read(), scope
)