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). Attributes ---------- .. autoapisummary:: magpie.constants.MAGPIE_MODULE_DIR magpie.constants.MAGPIE_ROOT magpie.constants.MAGPIE_CONFIG_DIR magpie.constants.MAGPIE_PROVIDERS_CONFIG_PATH magpie.constants.MAGPIE_PROVIDERS_HOOKS_PATH magpie.constants.MAGPIE_PERMISSIONS_CONFIG_PATH magpie.constants.MAGPIE_WEBHOOKS_CONFIG_PATH magpie.constants.MAGPIE_CONFIG_PATH magpie.constants.MAGPIE_INI_FILE_PATH magpie.constants.MAGPIE_ENV_DIR magpie.constants.MAGPIE_ENV_FILE magpie.constants.MAGPIE_POSTGRES_ENV_FILE magpie.constants._MAGPIE_ENV_EXAMPLE magpie.constants._POSTGRES_ENV_EXAMPLE magpie.constants.MAGPIE_URL magpie.constants.MAGPIE_SECRET magpie.constants.MAGPIE_COOKIE_NAME magpie.constants.MAGPIE_COOKIE_EXPIRE magpie.constants.MAGPIE_PASSWORD_MIN_LENGTH magpie.constants.MAGPIE_ADMIN_USER magpie.constants.MAGPIE_ADMIN_PASSWORD magpie.constants.MAGPIE_ADMIN_EMAIL magpie.constants.MAGPIE_ADMIN_GROUP magpie.constants.MAGPIE_ANONYMOUS_USER magpie.constants.MAGPIE_ANONYMOUS_PASSWORD magpie.constants.MAGPIE_ANONYMOUS_EMAIL magpie.constants.MAGPIE_ANONYMOUS_GROUP magpie.constants.MAGPIE_EDITOR_GROUP magpie.constants.MAGPIE_USERS_GROUP magpie.constants.MAGPIE_CRON_LOG magpie.constants.MAGPIE_DB_MIGRATION magpie.constants.MAGPIE_DB_MIGRATION_ATTEMPTS magpie.constants.MAGPIE_LOG_LEVEL magpie.constants.MAGPIE_LOG_PRINT magpie.constants.MAGPIE_LOG_REQUEST magpie.constants.MAGPIE_LOG_EXCEPTION magpie.constants.MAGPIE_UI_ENABLED magpie.constants.MAGPIE_UI_THEME magpie.constants.PHOENIX_USER magpie.constants.PHOENIX_PASSWORD magpie.constants.PHOENIX_HOST magpie.constants.PHOENIX_PORT magpie.constants.PHOENIX_PUSH magpie.constants.TWITCHER_PROTECTED_PATH magpie.constants.TWITCHER_PROTECTED_URL magpie.constants.TWITCHER_HOST magpie.constants.GITHUB_CLIENT_ID magpie.constants.GITHUB_CLIENT_SECRET magpie.constants.WSO2_HOSTNAME magpie.constants.WSO2_CLIENT_ID magpie.constants.WSO2_CLIENT_SECRET magpie.constants.WSO2_CERTIFICATE_FILE magpie.constants.WSO2_SSL_VERIFY magpie.constants.MAGPIE_POSTGRES_USERNAME magpie.constants.MAGPIE_POSTGRES_PASSWORD magpie.constants.MAGPIE_POSTGRES_HOST magpie.constants.MAGPIE_POSTGRES_PORT magpie.constants.MAGPIE_POSTGRES_DB magpie.constants.MAGPIE_ADMIN_PERMISSION magpie.constants.MAGPIE_LOGGED_PERMISSION magpie.constants.MAGPIE_CONTEXT_PERMISSION magpie.constants.MAGPIE_LOGGED_USER magpie.constants.MAGPIE_DEFAULT_PROVIDER magpie.constants.MAGPIE_USER_NAME_MAX_LENGTH magpie.constants.MAGPIE_GROUP_NAME_MAX_LENGTH magpie.constants.MAGPIE_CONSTANTS magpie.constants._REGEX_ASCII_ONLY Functions --------- .. autoapisummary:: magpie.constants._get_default_log_level magpie.constants.get_constant_setting_name magpie.constants.get_constant Module Contents --------------- .. py:data:: MAGPIE_MODULE_DIR :value: b'.' .. py:data:: MAGPIE_ROOT .. py:data:: MAGPIE_CONFIG_DIR .. py:data:: MAGPIE_PROVIDERS_CONFIG_PATH .. py:data:: MAGPIE_PROVIDERS_HOOKS_PATH .. py:data:: MAGPIE_PERMISSIONS_CONFIG_PATH .. py:data:: MAGPIE_WEBHOOKS_CONFIG_PATH .. py:data:: MAGPIE_CONFIG_PATH .. py:data:: MAGPIE_INI_FILE_PATH .. py:data:: MAGPIE_ENV_DIR .. py:data:: MAGPIE_ENV_FILE .. py:data:: MAGPIE_POSTGRES_ENV_FILE .. py:data:: _MAGPIE_ENV_EXAMPLE .. py:data:: _POSTGRES_ENV_EXAMPLE .. py:function:: _get_default_log_level() -> magpie.typedefs.Str Get logging level from INI configuration file or fallback to default ``INFO`` if it cannot be retrieved. .. py:data:: MAGPIE_URL .. py:data:: MAGPIE_SECRET .. py:data:: MAGPIE_COOKIE_NAME .. py:data:: MAGPIE_COOKIE_EXPIRE .. py:data:: MAGPIE_PASSWORD_MIN_LENGTH .. py:data:: MAGPIE_ADMIN_USER .. py:data:: MAGPIE_ADMIN_PASSWORD .. py:data:: MAGPIE_ADMIN_EMAIL :value: '' .. py:data:: MAGPIE_ADMIN_GROUP .. py:data:: MAGPIE_ANONYMOUS_USER .. py:data:: MAGPIE_ANONYMOUS_PASSWORD .. py:data:: MAGPIE_ANONYMOUS_EMAIL :value: '' .. py:data:: MAGPIE_ANONYMOUS_GROUP .. py:data:: MAGPIE_EDITOR_GROUP .. py:data:: MAGPIE_USERS_GROUP .. py:data:: MAGPIE_CRON_LOG .. py:data:: MAGPIE_DB_MIGRATION :value: False .. py:data:: MAGPIE_DB_MIGRATION_ATTEMPTS .. py:data:: MAGPIE_LOG_LEVEL .. py:data:: MAGPIE_LOG_PRINT :value: False .. py:data:: MAGPIE_LOG_REQUEST :value: False .. py:data:: MAGPIE_LOG_EXCEPTION :value: False .. py:data:: MAGPIE_UI_ENABLED :value: False .. py:data:: MAGPIE_UI_THEME .. py:data:: PHOENIX_USER .. py:data:: PHOENIX_PASSWORD .. py:data:: PHOENIX_HOST .. py:data:: PHOENIX_PORT .. py:data:: PHOENIX_PUSH :value: False .. py:data:: TWITCHER_PROTECTED_PATH .. py:data:: TWITCHER_PROTECTED_URL .. py:data:: TWITCHER_HOST .. py:data:: GITHUB_CLIENT_ID .. py:data:: GITHUB_CLIENT_SECRET .. py:data:: WSO2_HOSTNAME .. py:data:: WSO2_CLIENT_ID .. py:data:: WSO2_CLIENT_SECRET .. py:data:: WSO2_CERTIFICATE_FILE .. py:data:: WSO2_SSL_VERIFY .. py:data:: MAGPIE_POSTGRES_USERNAME .. py:data:: MAGPIE_POSTGRES_PASSWORD .. py:data:: MAGPIE_POSTGRES_HOST .. py:data:: MAGPIE_POSTGRES_PORT .. py:data:: MAGPIE_POSTGRES_DB .. py:data:: MAGPIE_ADMIN_PERMISSION :value: 'admin' .. py:data:: MAGPIE_LOGGED_PERMISSION :value: 'MAGPIE_LOGGED_USER' .. py:data:: MAGPIE_CONTEXT_PERMISSION :value: 'MAGPIE_CONTEXT_USER' .. py:data:: MAGPIE_LOGGED_USER :value: 'current' .. py:data:: MAGPIE_DEFAULT_PROVIDER :value: 'ziggurat' .. py:data:: MAGPIE_USER_NAME_MAX_LENGTH :value: 64 .. py:data:: MAGPIE_GROUP_NAME_MAX_LENGTH :value: 64 .. py:data:: MAGPIE_CONSTANTS :value: ['MAGPIE_CONSTANTS', 'MAGPIE_ADMIN_PERMISSION', 'MAGPIE_LOGGED_PERMISSION',... .. py:data:: _REGEX_ASCII_ONLY .. py:function:: get_constant_setting_name(name: magpie.typedefs.Str) -> magpie.typedefs.Str Find the equivalent setting name of the provided environment variable name. Lower-case name and replace all non-ascii chars by `_`. Then, convert known prefixes with their dotted name. .. py:function:: get_constant(constant_name: magpie.typedefs.Str, settings_container: Optional[magpie.typedefs.AnySettingsContainer] = None, settings_name: Optional[magpie.typedefs.Str] = None, default_value: Optional[magpie.typedefs.SettingValue] = None, raise_not_set: bool = True, raise_missing: bool = True, print_missing: bool = False, empty_missing: bool = False) -> magpie.typedefs.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 application settings container (if not provided, uses found one in current thread) :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_not_set: raise an exception if the found key is ``None``, search until last case if others are ``None`` :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 empty_missing: consider an empty value for an existing key as if it was missing (i.e.: as if not set). :returns: found value or `default_value` :raises ValueError: if resulting value is invalid based on options (by default raise missing/empty/``None`` value) :raises LookupError: if no appropriate value could be found from all search locations (according to options)