def merge_all_config_sections_into_a_single_dict(desired_type: Type[T], config: ConfigParser, logger: Logger,<EOL>conversion_finder: ConversionFinder, **kwargs) -> Dict[str, Any]:
<EOL>results = dict()<EOL>for section, props in config.items():<EOL><INDENT>for key, value in props.items():<EOL><INDENT>if key in results.keys():<EOL><INDENT>sections_where_it_appears = [s for s, p in config.items() if key in p.keys()]<EOL>raise MultipleKeyOccurenceInConfigurationError.create(key, sections_where_it_appears)<EOL><DEDENT>else:<EOL><INDENT>results[key] = value<EOL><DEDENT><DEDENT><DEDENT>return ConversionFinder.convert_collection_values_according_to_pep(results, desired_type, conversion_finder,<EOL>logger, **kwargs)<EOL>
Helper method to convert a 'configparser' into a dictionary [property > value].
Properties from all sections are collected. If the same key appears in several sections, an
error will be thrown

:param file_object:
:return: