# Path: pump/vivopump.py
# class DefNotFoundException(Exception):
# class InvalidDefException(Exception):
# class InvalidSourceException(Exception):
# class PathLengthException(Exception):
# class UnicodeCsvReader(object):
# class UnicodeDictReader(csv.DictReader):
#     class RowError(Exception):
#     def __init__(self, value):
#     def __str__(self):
#     def __init__(self, value):
#     def __str__(self):
#     def __init__(self, value):
#     def __str__(self):
#     def __init__(self, value):
#     def __str__(self):
#     def __init__(self, f, encoding="utf-8", **kwargs):
#     def __iter__(self):
#     def next(self):
#     def line_num(self):
#     def __init__(self, f, encoding="utf-8", fieldnames=None, **kwds):
# def read_csv(filename, skip=True, delimiter='|'):
# def read_csv_fp(fp, skip=True, delimiter="|"):
# def write_csv_fp(fp, data, delimiter='|'):
# def write_csv(filename, data, delimiter='|'):
# def replace_initials(s):
#     def repl_function(m):
# def key_string(s):
# def get_vivo_types(selector, parms, separator=';'):
# def get_vivo_ufid(parms):
# def get_vivo_publishers(parms):
# def get_vivo_journals(parms):
# def get_vivo_ccn(parms):
# def get_vivo_sponsorid(parms):
# def get_vivo_authors(parms):
# def get_vivo_positions(parms):
# def read_update_def(filename, prefix):
#     def make_prefix_dict(prefix_text):
#     def cast_to_rdflib(t):
#     def fixit(current_object, prefix_dictionary):
#     def add_order(a, b):
#     def validate_update_def(a):
#     def add_object_names_and_step_attributes(a):
# def add_qualifiers(input_path):
# def gather_types(input_step, varname):
# def make_update_query(entity_sparql, path):
# def make_rdf_term(row_term):
# def get_graph(update_def, query_parms):
# def new_uri(parms):
# def vivo_query(query, parms):
# def write_update_def(update_def, filename):
# def parse_pages(pages):
# def parse_date_parts(month, year):
# def get_args():
# def get_parms():
# def add_type_restriction(step):
# def make_get_query(update_def):
# def unique_path(path):
# def make_get_data(update_def, result_set):
# def make_rdf_term_from_source(value, step):
# def prepare_column_values(update_string, intra, step_def, enum, row, column_name):
# def load_enum(update_def):
# def create_enum(filename, query, parms, trim=0, skip=0):


import sys
from disambiguate.utils import print_err
from pump.vivopump import read_csv_fp, write_csv_fp, improve_display_name
    from pump.vivopump import replace_initials
                                    new_data['affiliation'])

    # Add these columns
    new_data['remove'] = ''
    new_data['uri'] = ''
    new_data['display_name'] = ''
    new_data['first'] = ''
    new_data['last'] = ''
    new_data['middle'] = ''
    new_data['suffix'] = ''
    new_data['corresponding'] = ''
    new_data['uf'] = ''

    # Delete everything not in the keep_names set
    for name in new_data.keys():
        if name not in keep_names:
            del new_data[name]

    for author in author_data:
        row_out += 1
        data_out[row_out] = dict(new_data)
        for key in author.keys():
            data_out[row_out][key] = author[key]

            if key == 'display_name':
                data_out[row_out][key] = improve_display_name(author[key])

column_names_out = data_out[1].keys()
print_err("==> {} columns in the output: {}"
          .format(len(column_names_out), column_names_out))

# Path: pump/vivopump.py
# class DefNotFoundException(Exception):
# class InvalidDefException(Exception):
# class InvalidSourceException(Exception):
# class PathLengthException(Exception):
# class UnicodeCsvReader(object):
# class UnicodeDictReader(csv.DictReader):
#     class RowError(Exception):
#     def __init__(self, value):
#     def __str__(self):
#     def __init__(self, value):
#     def __str__(self):
#     def __init__(self, value):
#     def __str__(self):
#     def __init__(self, value):
#     def __str__(self):
#     def __init__(self, f, encoding="utf-8", **kwargs):
#     def __iter__(self):
#     def next(self):
#     def line_num(self):
#     def __init__(self, f, encoding="utf-8", fieldnames=None, **kwds):
# def read_csv(filename, skip=True, delimiter='|'):
# def read_csv_fp(fp, skip=True, delimiter="|"):
# def write_csv_fp(fp, data, delimiter='|'):
# def write_csv(filename, data, delimiter='|'):
# def replace_initials(s):
#     def repl_function(m):
# def key_string(s):
# def get_vivo_types(selector, parms, separator=';'):
# def get_vivo_ufid(parms):
# def get_vivo_publishers(parms):
# def get_vivo_journals(parms):
# def get_vivo_ccn(parms):
# def get_vivo_sponsorid(parms):
# def get_vivo_authors(parms):
# def get_vivo_positions(parms):
# def read_update_def(filename, prefix):
#     def make_prefix_dict(prefix_text):
#     def cast_to_rdflib(t):
#     def fixit(current_object, prefix_dictionary):
#     def add_order(a, b):
#     def validate_update_def(a):
#     def add_object_names_and_step_attributes(a):
# def add_qualifiers(input_path):
# def gather_types(input_step, varname):
# def make_update_query(entity_sparql, path):
# def make_rdf_term(row_term):
# def get_graph(update_def, query_parms):
# def new_uri(parms):
# def vivo_query(query, parms):
# def write_update_def(update_def, filename):
# def parse_pages(pages):
# def parse_date_parts(month, year):
# def get_args():
# def get_parms():
# def add_type_restriction(step):
# def make_get_query(update_def):
# def unique_path(path):
# def make_get_data(update_def, result_set):
# def make_rdf_term_from_source(value, step):
# def prepare_column_values(update_string, intra, step_def, enum, row, column_name):
# def load_enum(update_def):
# def create_enum(filename, query, parms, trim=0, skip=0):


# Path: uf_examples/publications/filters/author_prep_filter.py
import sys
from disambiguate.utils import print_err
from pump.vivopump import read_csv_fp, write_csv_fp, improve_display_name
    from pump.vivopump import replace_initials

                                    new_data['affiliation'])

    # Add these columns
    new_data['remove'] = ''
    new_data['uri'] = ''
    new_data['display_name'] = ''
    new_data['first'] = ''
    new_data['last'] = ''
    new_data['middle'] = ''
    new_data['suffix'] = ''
    new_data['corresponding'] = ''
    new_data['uf'] = ''

    # Delete everything not in the keep_names set
    for name in new_data.keys():
        if name not in keep_names:
            del new_data[name]

    for author in author_data:
        row_out += 1
        data_out[row_out] = dict(new_data)
        for key in author.keys():
            data_out[row_out][key] = author[key]

            if key == 'display_name':
                data_out[row_out][key] = improve_display_name(author[key])

column_names_out = data_out[1].keys()
print_err("==> {} columns in the output: {}"
          .format(len(column_names_out), column_names_out))

write_csv_fp(sys.stdout, data_out)