def dict_to_object(desired_type: Type[T], contents_dict: Dict[str, Any], logger: Logger,<EOL>options: Dict[str, Dict[str, Any]], conversion_finder: ConversionFinder = None,<EOL>is_dict_of_dicts: bool = False) -> T:
check_var(desired_type, var_types=type, var_name='<STR_LIT>')<EOL>check_var(contents_dict, var_types=dict, var_name='<STR_LIT>')<EOL>if is_collection(desired_type, strict=True):<EOL><INDENT>raise TypeError('<STR_LIT>' + get_pretty_type_str(desired_type) + '<STR_LIT>'<EOL>'<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>return _dict_to_object(desired_type, contents_dict, logger=logger, options=options,<EOL>conversion_finder=conversion_finder, is_dict_of_dicts=is_dict_of_dicts)<EOL><DEDENT>
Utility method to create an object from a dictionary of constructor arguments. Constructor arguments that dont have
the correct type are intelligently converted if possible

:param desired_type:
:param contents_dict:
:param logger:
:param options:
:param conversion_finder:
:param is_dict_of_dicts:
:return: