code: def read_configuration(
      filepath: _Path, find_others=False, ignore_option_errors=False
  ) -> dict:
      """Read given configuration file and returns options from it as a dict.
  
      :param str|unicode filepath: Path to configuration file
          to get options from.
  
      :param bool find_others: Whether to search for other configuration files
          which could be on in various places.
  
      :param bool ignore_option_errors: Whether to silently ignore
          options, values of which could not be resolved (e.g. due to exceptions
          in directives such as file:, attr:, etc.).
          If False exceptions are propagated as expected.
  
      :rtype: dict
      """
      from setuptools.dist import Distribution
  
      dist = Distribution()
      filenames = dist.find_config_files() if find_others else []
      handlers = _apply(dist, filepath, filenames, ignore_option_errors)
      return configuration_to_dict(handlers)
  
imports: import contextlib
  import functools
  import os
  from collections import defaultdict
  from functools import partial
  from functools import wraps
  from typing import TYPE_CHECKING, Callable, Any, Dict, Generic, Iterable, List, Optional, Set, Tuple, TypeVar, Union
  from ..errors import FileError, OptionError
  from ..extern.packaging.markers import default_environment
  from ..extern.packaging.requirements import InvalidRequirement, Requirement
  from ..extern.packaging.specifiers import SpecifierSet
  from ..extern.packaging.version import InvalidVersion, Version
  from ..warnings import SetuptoolsDeprecationWarning
  from .None import expand
label_desc: Use image node_id 1 for calling a global function with example usage: read_configuration(filepath, find_others, ignore_option_errors) and returns: configuration_to_dict