# Copyright (C) 2010-2024 RhodeCode GmbH # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License, version 3 # (only), as published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # # This program is dual-licensed. If you wish to learn more about the # RhodeCode Enterprise Edition, including its added features, Support services, # and proprietary license terms, please see https://rhodecode.com/licenses/ import os import datetime import collections import logging now = datetime.datetime.now() now = now.strftime("%Y-%m-%d %H:%M:%S") + "." + f"{int(now.microsecond / 1000):03d}" log = logging.getLogger(__name__) log.debug(f"{now} Starting RhodeCode imports...") VERSION = tuple(open(os.path.join(os.path.dirname(__file__), "VERSION")).read().strip().split(".")) BACKENDS = collections.OrderedDict() BACKENDS["hg"] = "Mercurial repository" BACKENDS["git"] = "Git repository" BACKENDS["svn"] = "Subversion repository" CELERY_ENABLED = False CELERY_EAGER = False # link to config for pyramid CONFIG = {} class NotGivenMeta: def __repr__(self): return "NotGivenObject()" __str__ = __repr__ NotGiven = NotGivenMeta() class ConfigGet: @classmethod def _get_val_or_missing(cls, key, missing): if key not in CONFIG: if missing != NotGiven: return missing # we don't get key, we don't get missing value, return nothing similar as config.get(key) return None else: val = CONFIG[key] return val def get_str(self, key, missing=NotGiven): from rhodecode.lib.str_utils import safe_str val = self._get_val_or_missing(key, missing) return safe_str(val) def get_int(self, key, missing=NotGiven): from rhodecode.lib.str_utils import safe_int val = self._get_val_or_missing(key, missing) return safe_int(val) def get_bool(self, key, missing=NotGiven): from rhodecode.lib.type_utils import str2bool val = self._get_val_or_missing(key, missing) return str2bool(val) def get_list(self, key, missing=NotGiven): from rhodecode.lib.type_utils import aslist val = self._get_val_or_missing(key, missing) return aslist(val, sep=",") # Populated with the settings dictionary from application init in # rhodecode.conf.environment.load_pyramid_environment PYRAMID_SETTINGS = {} # Linked module for extensions EXTENSIONS = {} __version__ = ".".join((str(each) for each in VERSION[:3])) __dbversion__ = 117 # defines current db version for migrations __license__ = "AGPLv3, and Commercial License" __author__ = "RhodeCode GmbH" __url__ = "https://code.rhodecode.com" is_test = os.getenv("RC_TEST", "0") == "1" disable_error_handler = False