cowbird.config

Module Contents

Functions

_load_config(→ cowbird.typedefs.ConfigDict)

Loads a file path or dictionary as YAML/JSON configuration.

get_all_configs(→ List[cowbird.typedefs.ConfigDict])

Loads all configuration files specified by the path (if a directory),

_expand_all(→ cowbird.typedefs.ConfigDict)

Applies environment variable expansion recursively to all applicable fields of a configuration definition.

validate_services_config_schema(→ None)

Validates the schema of the services section found in the config.

validate_sync_perm_config_schema(→ None)

Validates the schema of the sync_permissions section found in the config.

validate_and_get_resource_info(…)

Validates a resource_key and its related info from the config and returns some resource info relevant to the config

validate_bidirectional_mapping(→ None)

Validates if both resources of a bidirectional mapping respect validation rules.

validate_unidirectional_mapping(→ None)

Validates if both source and target resource of a unidirectional mapping respect validation rules.

get_mapping_info(→ Tuple[Union[str, Any], Ellipsis])

Obtain the different info found in a mapping string from the config.

get_permissions_from_str(→ List[str])

Returns a tuple of all permissions found in a string.

validate_sync_mapping_config(→ None)

Validates if mappings in the config have valid resource keys and use tokens properly.

validate_sync_config(→ None)

validate_sync_config_services(→ None)

Validates if all services used in the sync config are actual available services.

Attributes

LOGGER

MULTI_TOKEN

BIDIRECTIONAL_ARROW

RIGHT_ARROW

LEFT_ARROW

PERMISSION_REGEX

PERMISSIONS_REGEX

DIRECTION_REGEX

MAPPING_REGEX

NAMED_TOKEN_REGEX

cowbird.config.LOGGER[source]
cowbird.config.MULTI_TOKEN = **[source]
cowbird.config.BIDIRECTIONAL_ARROW = <->[source]
cowbird.config.RIGHT_ARROW = ->[source]
cowbird.config.LEFT_ARROW = <-[source]
cowbird.config.PERMISSION_REGEX = [\w-]+[source]
cowbird.config.PERMISSIONS_REGEX[source]
cowbird.config.DIRECTION_REGEX[source]
cowbird.config.MAPPING_REGEX[source]
cowbird.config.NAMED_TOKEN_REGEX = ^\{\s*(\w+)\s*\}$[source]
exception cowbird.config.ConfigError[source]

Bases: RuntimeError

Generic error during configuration loading.

Initialize self. See help(type(self)) for accurate signature.

exception cowbird.config.ConfigErrorInvalidTokens[source]

Bases: ConfigError

Config error specific to invalid SINGLE_TOKEN or MULTI_TOKEN tokens.

Initialize self. See help(type(self)) for accurate signature.

exception cowbird.config.ConfigErrorInvalidServiceKey[source]

Bases: ConfigError

Config error for invalid service keys.

Initialize self. See help(type(self)) for accurate signature.

exception cowbird.config.ConfigErrorInvalidResourceKey[source]

Bases: ConfigError

Config error for invalid resource keys.

Initialize self. See help(type(self)) for accurate signature.

cowbird.config._load_config(path_or_dict: Union[str, cowbird.typedefs.ConfigDict], section: str, allow_missing: bool = False)cowbird.typedefs.ConfigDict[source]

Loads a file path or dictionary as YAML/JSON configuration.

cowbird.config.get_all_configs(path_or_dict: Union[str, cowbird.typedefs.ConfigDict], section: str, allow_missing: bool = False)List[cowbird.typedefs.ConfigDict][source]

Loads all configuration files specified by the path (if a directory), a single configuration (if a file) or directly returns the specified dictionary section (if a configuration dictionary). :returns:

  • list of configurations loaded if input was a directory path

  • list of single configuration if input was a file path

  • list of single configuration if input was a JSON dict

  • empty list if none of the other cases where matched

Note

Order of file loading will be resolved by alphabetically sorted filename if specifying a directory path.

cowbird.config._expand_all(config: cowbird.typedefs.ConfigDict)cowbird.typedefs.ConfigDict[source]

Applies environment variable expansion recursively to all applicable fields of a configuration definition.

cowbird.config.validate_services_config_schema(services_cfg: cowbird.typedefs.ConfigDict)None[source]

Validates the schema of the services section found in the config.

cowbird.config.validate_sync_perm_config_schema(sync_cfg: cowbird.typedefs.ConfigDict)None[source]

Validates the schema of the sync_permissions section found in the config.

cowbird.config.validate_and_get_resource_info(res_key: str, segments: List[cowbird.typedefs.ConfigSegment])cowbird.typedefs.ConfigResTokenInfo[source]

Validates a resource_key and its related info from the config and returns some resource info relevant to the config mapping validation.

Returned info contains the following: - if the resource uses a MULTI_TOKEN in its resource_path - the list of named tokens found in the resource_path

cowbird.config.validate_bidirectional_mapping(mapping: str, res_info: Dict[str, cowbird.typedefs.ConfigResTokenInfo], res_key1: str, res_key2: str)None[source]

Validates if both resources of a bidirectional mapping respect validation rules.

Both should either use MULTI_TOKEN or not use it and both should use exactly the same named tokens.

cowbird.config.validate_unidirectional_mapping(mapping: str, src_info: cowbird.typedefs.ConfigResTokenInfo, tgt_info: cowbird.typedefs.ConfigResTokenInfo)None[source]

Validates if both source and target resource of a unidirectional mapping respect validation rules.

Source resource should use MULTI_TOKEN if target uses it, and source resource should include all named tokens found in the target resource.

cowbird.config.get_mapping_info(mapping: str)Tuple[Union[str, Any], Ellipsis][source]

Obtain the different info found in a mapping string from the config.

Returns the following matching groups : (res_key1, permission1, direction, res_key2, permission2)

cowbird.config.get_permissions_from_str(permissions: str)List[str][source]

Returns a tuple of all permissions found in a string.

Used for permission strings found in the config, which can either be a single permission or a list of permissions.

cowbird.config.validate_sync_mapping_config(sync_cfg: cowbird.typedefs.ConfigDict, res_info: Dict[str, cowbird.typedefs.ConfigResTokenInfo])None[source]

Validates if mappings in the config have valid resource keys and use tokens properly.

cowbird.config.validate_sync_config(sync_cfg: cowbird.typedefs.ConfigDict)None[source]
cowbird.config.validate_sync_config_services(sync_cfg: cowbird.typedefs.ConfigDict, available_services: List)None[source]

Validates if all services used in the sync config are actual available services.

All services should correspond to actual services available in Magpie.