Initial part of a two-step lookup: First load the mapping
    (CounterpartMapping) with this function.  The mapping can then be
    subscripted to look up specific counterparts' mappings.  This way
    is more efficient than calling map_counterpart several times,
    because it reads the config file(s) only once.

    :param config_file: Path to a config file to guide the mapping.
           Default is to use ./counterc and/or ~/.countrc.
    :param skip_home: If True, only the config_file is read.
    :return: CounterpartMapping loaded from config_file et al.

def get_counterpart_mapping(config_file=None, skip_home=False):
    """Initial part of a two-step lookup: First load the mapping
    (CounterpartMapping) with this function.  The mapping can then be
    subscripted to look up specific counterparts' mappings.  This way
    is more efficient than calling map_counterpart several times,
    because it reads the config file(s) only once.

    :param config_file: Path to a config file to guide the mapping.
           Default is to use ./counterc and/or ~/.countrc.
    :param skip_home: If True, only the config_file is read.
    :return: CounterpartMapping loaded from config_file et al.

    """
    file_skip_list = ([ConfigFromFile.home_rc_file_path]
                      if skip_home else [])
    config = ConfigFromFile(config_file, [], skip_file_read=file_skip_list)
    return CounterpartMapping(map_config=config._parser)