Parse the args using the config_file, input_dir, output_dir pattern

    Args:
        args: sys.argv

    Returns:
        The populated namespace object from parser.parse_args().

    Raises:
        TBD

def parse_config_input_output(args=sys.argv):
    """Parse the args using the config_file, input_dir, output_dir pattern

    Args:
        args: sys.argv

    Returns:
        The populated namespace object from parser.parse_args().

    Raises:
        TBD
    """
    parser = argparse.ArgumentParser(
        description='Process the input files using the given config')
    parser.add_argument(
        'config_file',
        help='Configuration file.',
        metavar='FILE', type=extant_file)
    parser.add_argument(
        'input_dir',
        help='Directory containing the input files.',
        metavar='DIR', type=extant_dir)
    parser.add_argument(
        'output_dir',
        help='Directory where the output files should be saved.',
        metavar='DIR', type=extant_dir)
    return parser.parse_args(args[1:])