# 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
    affiliation_list = affiliation_data.split('.')
    affiliations = []

    for affiliation_string in affiliation_list:
        affiliation = {'affiliation_string': affiliation_string}
        if 'Univ Florida' in affiliation_string:
            affiliation['uf'] = 'true'
        else:
            affiliation['uf'] = 'false'
    affiliations.append(affiliation)
    print_err(affiliations)

    # Now we are ready to look for affiliations by name.  Messy business.
    for author_dict in author_list:
        if author_dict['first'] == '':
            # corporate authors can not be UF authors
            continue
        find_string = author_dict['last'] + ', ' + author_dict['first'][0]

        for affiliation in affiliations:  # look in each affiliation group
            if affiliation['affiliation_string'].find(find_string) > -1:
                author_dict['uf'] = affiliation['uf']
                # if you find the author, use the affiliation of the group
                # and don't look further.  If you don't find the author
                # the default affiliation is uf false
                continue

    print_err("{} Authors in list: {}".format(len(author_list), author_list))
    return author_list


# 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

    affiliation_list = affiliation_data.split('.')
    affiliations = []

    for affiliation_string in affiliation_list:
        affiliation = {'affiliation_string': affiliation_string}
        if 'Univ Florida' in affiliation_string:
            affiliation['uf'] = 'true'
        else:
            affiliation['uf'] = 'false'
    affiliations.append(affiliation)
    print_err(affiliations)

    # Now we are ready to look for affiliations by name.  Messy business.
    for author_dict in author_list:
        if author_dict['first'] == '':
            # corporate authors can not be UF authors
            continue
        find_string = author_dict['last'] + ', ' + author_dict['first'][0]

        for affiliation in affiliations:  # look in each affiliation group
            if affiliation['affiliation_string'].find(find_string) > -1:
                author_dict['uf'] = affiliation['uf']
                # if you find the author, use the affiliation of the group
                # and don't look further.  If you don't find the author
                # the default affiliation is uf false
                continue

    print_err("{} Authors in list: {}".format(len(author_list), author_list))
    return author_list


data_in = read_csv_fp(sys.stdin)