code: def dict_to_object(desired_type: Type[T], contents_dict: Dict[str, Any], logger: Logger,
                     options: Dict[str, Dict[str, Any]], conversion_finder: ConversionFinder = None,
                     is_dict_of_dicts: bool = False) -> T:
      
      check_var(desired_type, var_types=type, var_name='obj_type')
      check_var(contents_dict, var_types=dict, var_name='contents_dict')
  
      if is_collection(desired_type, strict=True):
          # if the destination type is 'strictly a collection' (not a subclass of a collection) we know that we can't
          # handle it here, the constructor is not pep484-typed
          raise TypeError('Desired object type \'' + get_pretty_type_str(desired_type) + '\' is a collection, '
                          'so it cannot be created using this generic object creator')
      else:
          # Try the type itself
          # try:
          return _dict_to_object(desired_type, contents_dict, logger=logger, options=options,
                                 conversion_finder=conversion_finder, is_dict_of_dicts=is_dict_of_dicts)
docs: 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: