code: def read_configs(__pkg: str, __name: str = 'config', *,
                   local: bool = True) -> ConfigParser:
      
      configs = get_configs(__pkg, __name)
      if local:
          localrc = path.abspath('.{}rc'.format(__pkg))
          if path.exists(localrc):
              configs.append(localrc)
  
      cfg = ConfigParser(converters={
          'datetime': parse_datetime,
          'humandelta': parse_timedelta,
          'timedelta': parse_delta,
      })
      cfg.read(configs, 'utf-8')
      cfg.configs = configs
  
      if 'NO_COLOUR' in environ or 'NO_COLOR' in environ:
          cfg.colour = False
      elif __pkg in cfg:
          if 'colour' in cfg[__pkg]:
              cfg.colour = cfg[__pkg].getboolean('colour')
          if 'color' in cfg[__pkg]:
              cfg.colour = cfg[__pkg].getboolean('color')
      else:
          cfg.colour = True
  
      return cfg
docs: Process configuration file stack.
  
      We export the time parsing functionality of ``jnrbase`` as custom
      converters for :class:`configparser.ConfigParser`:
  
      ===================  ===========================================
      Method               Function
      ===================  ===========================================
      ``.getdatetime()``   :func:`~jnrbase.iso_8601.parse_datetime`
      ``.gethumantime()``  :func:`~jnrbase.human_time.parse_timedelta`
      ``.gettimedelta()``  :func:`~jnrbase.iso_8601.parse_delta`
      ===================  ===========================================
  
      Args:
          __pkg: Package name to use as base for config files
          __name: File name to search for within config directories
          local: Whether to include config files from current directory
      Returns:
          Parsed configuration files