code: def read_dict_from_properties(desired_type: Type[dict], file_object: TextIOBase,
                                logger: Logger, conversion_finder: ConversionFinder, **kwargs) -> Dict[str, Any]:
      
  
      # right now jprops relies on a byte stream. So we convert back our nicely decoded Text stream to a unicode
      # byte stream ! (urgh)
      class Unicoder:
          def __init__(self, file_object):
              self.f = file_object
  
          def __iter__(self):
              return self
  
          def __next__(self):
              line = self.f.__next__()
              return line.encode(encoding='utf-8')
  
      res = jprops.load_properties(Unicoder(file_object))
  
      # first automatic conversion of strings > numbers
      res = {key: try_parse_num_and_booleans(val) for key, val in res.items()}
  
      # further convert if required
      return ConversionFinder.convert_collection_values_according_to_pep(res, desired_type, conversion_finder, logger, 
                                                                         **kwargs)
docs: Helper method to read a dictionary from a .properties file (java-style) using jprops.
      Since jprops does not provide automatic handling for boolean and numbers, this tries to add the feature.
  
      :param file_object:
      :return: