:mod:`magpie.constants` ======================= .. py:module:: magpie.constants .. autoapi-nested-parse:: Constant settings for Magpie application. Constants defined with format ``MAGPIE_[VARIABLE_NAME]`` can be matched with corresponding settings formatted as ``magpie.[variable_name]`` in the ``magpie.ini`` configuration file. .. note:: Since the ``magpie.ini`` file has to be loaded by the application to retrieve various configuration settings, constant ``MAGPIE_INI_FILE_PATH`` (or any other `path variable` defined before it - see below) has to be defined by environment variable if the default location is not desired (ie: if you want to provide your own configuration). Module Contents --------------- Functions ~~~~~~~~~ .. autoapisummary:: magpie.constants._get_default_log_level magpie.constants.get_constant_setting_name magpie.constants.get_constant .. data:: MAGPIE_MODULE_DIR .. data:: MAGPIE_ROOT .. data:: MAGPIE_CONFIG_DIR .. data:: MAGPIE_PROVIDERS_CONFIG_PATH .. data:: MAGPIE_PERMISSIONS_CONFIG_PATH .. data:: MAGPIE_CONFIG_PATH .. data:: MAGPIE_INI_FILE_PATH .. data:: MAGPIE_ENV_DIR .. data:: MAGPIE_ENV_FILE .. data:: MAGPIE_POSTGRES_ENV_FILE .. data:: _MAGPIE_ENV_EXAMPLE .. data:: _POSTGRES_ENV_EXAMPLE .. function:: _get_default_log_level() Get default configurations from ini file. .. data:: MAGPIE_URL .. data:: MAGPIE_SECRET .. data:: MAGPIE_COOKIE_NAME .. data:: MAGPIE_COOKIE_EXPIRE .. data:: MAGPIE_PASSWORD_MIN_LENGTH .. data:: MAGPIE_ADMIN_USER .. data:: MAGPIE_ADMIN_PASSWORD .. data:: MAGPIE_ADMIN_EMAIL .. data:: MAGPIE_ADMIN_GROUP .. data:: MAGPIE_ANONYMOUS_USER .. data:: MAGPIE_ANONYMOUS_PASSWORD .. data:: MAGPIE_ANONYMOUS_EMAIL .. data:: MAGPIE_ANONYMOUS_GROUP .. data:: MAGPIE_EDITOR_GROUP .. data:: MAGPIE_USERS_GROUP .. data:: MAGPIE_CRON_LOG .. data:: MAGPIE_DB_MIGRATION .. data:: MAGPIE_DB_MIGRATION_ATTEMPTS .. data:: MAGPIE_LOG_LEVEL .. data:: MAGPIE_LOG_PRINT .. data:: MAGPIE_LOG_REQUEST .. data:: MAGPIE_LOG_EXCEPTION .. data:: MAGPIE_UI_ENABLED .. data:: MAGPIE_UI_THEME .. data:: PHOENIX_USER .. data:: PHOENIX_PASSWORD .. data:: PHOENIX_HOST .. data:: PHOENIX_PORT .. data:: PHOENIX_PUSH .. data:: TWITCHER_PROTECTED_PATH .. data:: TWITCHER_PROTECTED_URL .. data:: TWITCHER_HOST .. data:: MAGPIE_POSTGRES_USERNAME .. data:: MAGPIE_POSTGRES_PASSWORD .. data:: MAGPIE_POSTGRES_HOST .. data:: MAGPIE_POSTGRES_PORT .. data:: MAGPIE_POSTGRES_DB .. data:: MAGPIE_ADMIN_PERMISSION :annotation: = admin .. data:: MAGPIE_LOGGED_PERMISSION :annotation: = MAGPIE_LOGGED_USER .. data:: MAGPIE_CONTEXT_PERMISSION :annotation: = MAGPIE_CONTEXT_USER .. data:: MAGPIE_LOGGED_USER :annotation: = current .. data:: MAGPIE_DEFAULT_PROVIDER :annotation: = ziggurat .. data:: MAGPIE_USER_NAME_MAX_LENGTH :annotation: = 64 .. data:: MAGPIE_GROUP_NAME_MAX_LENGTH :annotation: = 64 .. data:: MAGPIE_CONSTANTS :annotation: = ['MAGPIE_CONSTANTS', 'MAGPIE_ADMIN_PERMISSION', 'MAGPIE_LOGGED_PERMISSION', 'MAGPIE_CONTEXT_PERMISSION', 'MAGPIE_LOGGED_USER', 'MAGPIE_DEFAULT_PROVIDER', 'MAGPIE_USER_NAME_MAX_LENGTH', 'MAGPIE_GROUP_NAME_MAX_LENGTH'] .. data:: _REGEX_ASCII_ONLY .. function:: get_constant_setting_name(name) Lower-case name and replace all non-ascii chars by `_`. .. function:: get_constant(constant_name: Str, settings_container: Optional[AnySettingsContainer] = None, settings_name: Optional[Str] = None, default_value: Optional[SettingValue] = None, raise_missing: bool = True, print_missing: bool = False, raise_not_set: bool = True) -> SettingValue Search in order for matched value of :paramref:`constant_name`: 1. search in :py:data:`MAGPIE_CONSTANTS` 2. search in settings if specified 3. search alternative setting names (see below) 4. search in :mod:`magpie.constants` definitions 5. search in environment variables Parameter :paramref:`constant_name` is expected to have the format ``MAGPIE_[VARIABLE_NAME]`` although any value can be passed to retrieve generic settings from all above mentioned search locations. If :paramref:`settings_name` is provided as alternative name, it is used as is to search for results if :paramref:`constant_name` was not found. Otherwise, ``magpie.[variable_name]`` is used for additional search when the format ``MAGPIE_[VARIABLE_NAME]`` was used for :paramref:`constant_name` (i.e.: ``MAGPIE_ADMIN_USER`` will also search for ``magpie.admin_user`` and so on for corresponding constants). :param constant_name: key to search for a value :param settings_container: wsgi app settings container :param settings_name: alternative name for `settings` if specified :param default_value: default value to be returned if not found anywhere, and exception raises are disabled. :param raise_missing: raise exception if key is not found anywhere :param print_missing: print message if key is not found anywhere, return ``None`` :param raise_not_set: raise an exception if the found key is ``None``, search until last case if others are ``None`` :returns: found value or `default_value` :raises ValueError: if resulting value is invalid based on options (by default raise missing/``None`` value) :raises LookupError: if no appropriate value could be found from all search locations (according to options)