# 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__ = 115 # 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