Fill in a full file path in the configuration file from data dictionary.

def _fill_file_path(line, data):
    """Fill in a full file path in the configuration file from data dictionary.
    """
    def _find_file(xs, target):
        if isinstance(xs, dict):
            for v in xs.values():
                f = _find_file(v, target)
                if f:
                    return f
        elif isinstance(xs, (list, tuple)):
            for x in xs:
                f = _find_file(x, target)
                if f:
                    return f
        elif isinstance(xs, six.string_types) and os.path.exists(xs) and xs.endswith("/%s" % target):
            return xs
    orig_file = line.split("=")[-1].replace('"', '').strip()
    full_file = _find_file(data, os.path.basename(orig_file))
    if not full_file and os.path.exists(os.path.abspath(orig_file)):
        full_file = os.path.abspath(orig_file)
    assert full_file, "Did not find vcfanno input file %s" % (orig_file)
    return 'file="%s"\n' % full_file