config_wrangler.utils module

class config_wrangler.utils.ContainerType(*values)[source]

Bases: Enum

List = 2
Mapping = 1
Model = 4
Tuple = 3
class config_wrangler.utils.TZFormatter(fmt=None, datefmt=None, style='%', validate=True, *, defaults=None)[source]

Bases: Formatter

formatTime(record, datefmt=None)[source]

Return the creation time of the specified LogRecord as formatted text.

This method should be called from format() by a formatter which wants to make use of a formatted time. This method can be overridden in formatters to provide for any specific requirement, but the basic behaviour is as follows: if datefmt (a string) is specified, it is used with time.strftime() to format the creation time of the record. Otherwise, an ISO8601-like (or RFC 3339-like) format is used. The resulting string is returned. This function uses a user-configurable function to convert the creation time to a tuple. By default, time.localtime() is used; to change this for a particular formatter instance, set the ‘converter’ attribute to a function with the same signature as time.localtime() or time.gmtime(). To change it for all formatters, for example if you want all logging times to be shown in GMT, set the ‘converter’ attribute in the Formatter class.

static tz_aware_converter(timestamp) datetime[source]
config_wrangler.utils.build_referenced_objects(field_name: str, field_info: FieldInfo, parents: List[str], parent_container: MutableMapping, root_config_data: MutableMapping, list_of_sections: Sequence[str], inner_type: type[BaseModel]) Dict[str, BaseModel][source]
config_wrangler.utils.find_referenced_section(field_name: str, field_info: FieldInfo, parents: List[str], section_name: str | MutableMapping, current_dict: MutableMapping, root_dict: MutableMapping) MutableMapping[source]
config_wrangler.utils.full_name(parents: List[str], field_name: str)[source]
config_wrangler.utils.get_inner_type(cls: Any)[source]
config_wrangler.utils.get_union_type(cls)[source]
config_wrangler.utils.has_sub_fields(inner_type: Type)[source]
config_wrangler.utils.import_class(class_path: str)[source]

Import a class from a fully qualified string path.

Parameters:

class_path – String like “module.submodule.ClassName”

Returns:

The class object

Example

>>> MyClass = import_class("my_package.my_module.MyClass")
>>> instance = MyClass()
config_wrangler.utils.inherit_fill(parent_config, child_config)[source]
config_wrangler.utils.interpolate_value(*, value: str, container: MutableMapping, root_config_data: MutableMapping) str[source]

Throws: ValueError if value can not be interpolated

config_wrangler.utils.interpolate_values(container: MutableMapping | List | BaseModel, root_config_data: MutableMapping, breadcrumbs: List[str] = None) List[Tuple[str, str]][source]
config_wrangler.utils.is_union(cls)[source]
config_wrangler.utils.lenient_issubclass(cls: Any, class_or_tuple: Type[Any] | Tuple[Type[Any], ...] | Set[Type[Any]] | None) bool[source]
config_wrangler.utils.match_config_data_to_field(field_name: str, field_info: FieldInfo, field_value: object, parent_container: MutableMapping, root_config_data: MutableMapping, parents: List[str])[source]
config_wrangler.utils.match_config_data_to_field_or_submodel(field_name: str, field_info: FieldInfo, parent_container: MutableMapping, root_config_data: MutableMapping = None, parents=None)[source]
config_wrangler.utils.match_config_data_to_model(model: BaseModel, config_data: MutableMapping, root_config_data: MutableMapping = None, parents=None)[source]
config_wrangler.utils.merge_configs(child: MutableMapping, parent: MutableMapping) None[source]
config_wrangler.utils.parse_as_literal_or_json(value: str) Any[source]
config_wrangler.utils.parse_delimited_list(field_name: str, field_info: FieldInfo, field_value: str) Sequence[source]
config_wrangler.utils.process_errors_list(errors_list: list[tuple[str, str]], function_name: str)[source]
config_wrangler.utils.process_inheritance(container: MutableMapping | List | BaseModel, *, root_config_data: MutableMapping, breadcrumbs: List[str] = None) List[Tuple[str, str]][source]
config_wrangler.utils.resolve_variable(root_config_data: MutableMapping, variable_name: str, part_delimiter: str | None = None) Any[source]
config_wrangler.utils.set_container_value(container_type: ContainerType, container: MutableMapping | List | BaseModel, attr: str | int, value: Any, breadcrumbs: List[str] = None)[source]
config_wrangler.utils.walk_model(model: BaseModel, parents=None)[source]