From 3e50e8de3e669972da194b3d416f7913e75da9f4 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Sat, 17 Jul 2021 19:03:54 +0200 Subject: [mod] drop usage of the searx.brand namespace (python procs) Added function searx.get_setting(name, default=_unset): Returns the value to which ``name`` point. If there is no such name in the settings and the ``default`` is unset, a KeyError exception is raised. In all the python processes .. - make docs - make buildenv - make install (setup.py) the usage of the 'brand.*' name space is replaced by 'searx.get_setting' function. - brand.SEARX_URL --> get_setting('server.base_url') - brand.GIT_URL --> get_setting('brand.git_url') - brand.GIT_BRANCH' --> get_setting('server.base_url') - brand.ISSUE_URL --> get_setting('brand.issue_url') - brand.DOCS_URL --> get_setting('brand.docs_url') - brand.PUBLIC_INSTANCES --> get_setting('brand.public_instances') - brand.CONTACT_URL --> get_setting('general.contact_url', '') - brand.WIKI_URL --> get_setting('brand.wiki_url') - brand.TWITTER_URL --> get_setting('brand.twitter_url', '') Signed-off-by: Markus Heiser --- searx/__init__.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'searx/__init__.py') diff --git a/searx/__init__.py b/searx/__init__.py index 8452dd7b4..55f6bb464 100644 --- a/searx/__init__.py +++ b/searx/__init__.py @@ -32,6 +32,27 @@ if max_request_timeout is None: else: logger.info('max_request_timeout=%i second(s)', max_request_timeout) +_unset = object() + +def get_setting(name, default=_unset): + """Returns the value to which ``name`` point. If there is no such name in the + settings and the ``default`` is unset, a :py:obj:`KeyError` is raised. + + """ + value = settings + for a in name.split('.'): + if isinstance(value, dict): + value = value.get(a, _unset) + else: + value = _unset + + if value is _unset: + if default is _unset: + raise KeyError(name) + value = default + break + + return value class _brand_namespace: # pylint: disable=invalid-name -- cgit v1.2.3