Esempio n. 1
0
def reverse_cataloging_source(self, key, value):
    """Reverse - Cataloging Source."""
    field_map = {
        "original_cataloging_agency": "a",
        "language_of_cataloging": "b",
        "transcribing_agency": "c",
        "modifying_agency": "d",
        "description_conventions": "e",
        "subject_heading_thesaurus_conventions": "f",
        "linkage": "6",
        "field_link_and_sequence_number": "8",
    }
    order = utils.map_order(field_map, value)

    return {
        "__order__": tuple(order) if len(order) else None,
        "a": value.get("original_cataloging_agency"),
        "c": value.get("transcribing_agency"),
        "b": value.get("language_of_cataloging"),
        "e": utils.reverse_force_list(value.get("description_conventions")),
        "d": utils.reverse_force_list(value.get("modifying_agency")),
        "f": value.get("subject_heading_thesaurus_conventions"),
        "6": value.get("linkage"),
        "8": utils.reverse_force_list(value.get("field_link_and_sequence_number")),
        "$ind1": "_",
        "$ind2": "_",
    }
Esempio n. 2
0
def reverse_time_period_of_heading(self, key, value):
    """Reverse - Time Period of Heading."""
    field_map = {
        "time_period_code": "a",
        "formatted_9999_bc_through_ce_time_period": "b",
        "formatted_pre_9999_bc_time_period": "c",
        "linkage": "6",
        "field_link_and_sequence_number": "8",
    }
    order = utils.map_order(field_map, value)

    indicator_map1 = {
        "Subfield $b or $c not present": "_",
        "Single date/time": "0",
        "Multiple single dates/times": "1",
        "Range of dates/times": "2",
    }
    return {
        "__order__": tuple(order) if len(order) else None,
        "a": utils.reverse_force_list(value.get("time_period_code")),
        "8": utils.reverse_force_list(value.get("field_link_and_sequence_number")),
        "c": utils.reverse_force_list(value.get("formatted_pre_9999_bc_time_period")),
        "b": utils.reverse_force_list(value.get("formatted_9999_bc_through_ce_time_period")),
        "6": value.get("linkage"),
        "$ind1": indicator_map1.get(value.get("type_of_time_period_in_subfield_b_or_c"), "_"),
        "$ind2": "_",
    }
Esempio n. 3
0
def reverse_format_of_notated_music(self, key, value):
    """Reverse - Format of Notated Music."""
    field_map = {
        'format_of_notated_music_term': 'a',
        'format_of_notated_music_code': 'b',
        'authority_record_control_number_or_standard_number': '0',
        'source_of_term': '2',
        'materials_specified': '3',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }

    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        'a': utils.reverse_force_list(
            value.get('format_of_notated_music_term')),
        'b': utils.reverse_force_list(
            value.get('format_of_notated_music_code')),
        '0': utils.reverse_force_list(
            value.get('authority_record_control_number_or_standard_number')),
        '2': value.get('source_of_term'),
        '3': value.get('materials_specified'),
        '6': value.get('linkage'),
        '8': utils.reverse_force_list(
            value.get('field_link_and_sequence_number')),
        '$ind1': '_',
        '$ind2': '_',
    }
Esempio n. 4
0
def reverse_other_standard_identifier(self, key, value):
    """Reverse - Other Standard Identifier."""
    field_map = {
        "standard_number_or_code": "a",
        "terms_of_availability": "c",
        "additional_codes_following_the_standard_number_or_code": "d",
        "qualifying_information": "q",
        "canceled_invalid_standard_number_or_code": "z",
        "source_of_number_or_code": "2",
        "linkage": "6",
        "field_link_and_sequence_number": "8",
    }
    order = utils.map_order(field_map, value)

    indicator_map1 = {"Unspecified type of standard number or code": "8"}
    return {
        "__order__": tuple(order) if len(order) else None,
        "a": value.get("standard_number_or_code"),
        "c": value.get("terms_of_availability"),
        "d": value.get("additional_codes_following_the_standard_number_or_code"),
        "q": utils.reverse_force_list(value.get("qualifying_information")),
        "2": value.get("source_of_number_or_code"),
        "6": value.get("linkage"),
        "8": utils.reverse_force_list(value.get("field_link_and_sequence_number")),
        "z": utils.reverse_force_list(value.get("canceled_invalid_standard_number_or_code")),
        "$ind1": "7"
        if value.get("type_of_standard_number_or_code")
        and value.get("type_of_standard_number_or_code") == value.get("source_of_number_or_code")
        else indicator_map1.get(value.get("type_of_standard_number_or_code"), "_"),
        "$ind2": "_",
    }
Esempio n. 5
0
def reverse_dewey_decimal_classification_number(self, key, value):
    """Reverse - Dewey Decimal Classification Number."""
    field_map = {
        "classification_number_element_single_number_or_beginning_number_of_span": "a",
        "classification_number_element_ending_number_of_span": "b",
        "explanatory_term": "c",
        "table_sequence_number_for_internal_subarrangement_or_add_table": "y",
        "table_identification_table_number": "z",
        "edition_number": "2",
        "institution_to_which_field_applies": "5",
        "linkage": "6",
        "field_link_and_sequence_number": "8",
    }
    order = utils.map_order(field_map, value)

    indicator_map1 = {"Abridged": "1", "Full": "0", "Other edition specified in subfield $2": "7"}
    indicator_map2 = {"Assigned by LC": "0", "Assigned by agency other than LC": "4"}
    return {
        "__order__": tuple(order) if len(order) else None,
        "a": value.get("classification_number_element_single_number_or_beginning_number_of_span"),
        "c": value.get("explanatory_term"),
        "b": value.get("classification_number_element_ending_number_of_span"),
        "2": value.get("edition_number"),
        "5": utils.reverse_force_list(value.get("institution_to_which_field_applies")),
        "6": value.get("linkage"),
        "y": utils.reverse_force_list(value.get("table_sequence_number_for_internal_subarrangement_or_add_table")),
        "8": utils.reverse_force_list(value.get("field_link_and_sequence_number")),
        "z": value.get("table_identification_table_number"),
        "$ind1": "7"
        if value.get("type_of_edition") and value.get("type_of_edition") == value.get("edition_number")
        else indicator_map1.get(value.get("type_of_edition"), "_"),
        "$ind2": indicator_map2.get(value.get("source_of_classification_number"), "_"),
    }
Esempio n. 6
0
def reverse_index_term_curriculum_objective(self, key, value):
    """Reverse - Index Term-Curriculum Objective."""
    field_map = {
        'field_link_and_sequence_number': '8',
        'main_curriculum_objective': 'a',
        'curriculum_code': 'c',
        'source_of_term_or_code': '2',
        'linkage': '6',
        'subordinate_curriculum_objective': 'b',
        'correlation_factor': 'd',
    }

    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        '8': utils.reverse_force_list(
            value.get('field_link_and_sequence_number')
        ),
        'a': value.get('main_curriculum_objective'),
        'c': value.get('curriculum_code'),
        '2': value.get('source_of_term_or_code'),
        '6': value.get('linkage'),
        'b': utils.reverse_force_list(
            value.get('subordinate_curriculum_objective')
        ),
        'd': value.get('correlation_factor'),
        '$ind1': '_',
        '$ind2': '_',
    }
Esempio n. 7
0
def reverse_international_standard_book_number(self, key, value):
    """Reverse - International Standard Book Number."""
    field_map = {
        'international_standard_book_number': 'a',
        'terms_of_availability': 'c',
        'qualifying_information': 'q',
        'canceled_invalid_isbn': 'z',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }
    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        'a': value.get('international_standard_book_number'),
        'c': value.get('terms_of_availability'),
        'q': utils.reverse_force_list(
            value.get('qualifying_information')
        ),
        '6': value.get('linkage'),
        '8': utils.reverse_force_list(
            value.get('field_link_and_sequence_number')
        ),
        'z': utils.reverse_force_list(
            value.get('canceled_invalid_isbn')
        ),
        '$ind1': '_',
        '$ind2': '_',
    }
Esempio n. 8
0
def reverse_subject_category_code(self, key, value):
    """Reverse - Subject Category Code."""
    field_map = {
        "subject_category_code": "a",
        "subject_category_code_subdivision": "x",
        "code_source": "2",
        "linkage": "6",
        "field_link_and_sequence_number": "8",
    }
    order = utils.map_order(field_map, value)

    indicator_map2 = {
        "No information provided": "_",
        "NAL subject category code list": "0",
        "Source specified in subfield $2": "7",
    }
    return {
        "__order__": tuple(order) if len(order) else None,
        "a": value.get("subject_category_code"),
        "8": utils.reverse_force_list(value.get("field_link_and_sequence_number")),
        "2": value.get("code_source") if value.get("code_source") not in indicator_map2 else "",
        "x": utils.reverse_force_list(value.get("subject_category_code_subdivision")),
        "6": value.get("linkage"),
        "$ind1": "_",
        "$ind2": "7"
        if value.get("code_source") not in indicator_map2
        else indicator_map2.get(value.get("code_source"), "_"),
    }
Esempio n. 9
0
def reverse_universal_decimal_classification_number(self, key, value):
    """Reverse - Universal Decimal Classification Number."""
    field_map = {
        'universal_decimal_classification_number': 'a',
        'item_number': 'b',
        'common_auxiliary_subdivision': 'x',
        'edition_identifier': '2',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }
    order = utils.map_order(field_map, value)

    indicator_map1 = {
        'No information provided': '_',
        'Full': '0',
        'Abridged': '1',
    }
    return {
        '__order__': tuple(order) if len(order) else None,
        'a': value.get('universal_decimal_classification_number'),
        'b': value.get('item_number'),
        '6': value.get('linkage'),
        '2': value.get('edition_identifier'),
        'x': utils.reverse_force_list(
            value.get('common_auxiliary_subdivision')
        ),
        '8': utils.reverse_force_list(
            value.get('field_link_and_sequence_number')
        ),
        '$ind1': indicator_map1.get(value.get('type_of_edition'), '_'),
        '$ind2': '_',
    }
Esempio n. 10
0
def reverse_dewey_decimal_call_number(self, key, value):
    """Reverse - Dewey Decimal Call Number."""
    field_map = {
        'classification_number': 'a',
        'item_number': 'b',
        'volumes_dates_to_which_call_number_applies': 'd',
        'edition_number': '2',
        'institution_to_which_field_applies': '5',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }
    order = utils.map_order(field_map, value)

    indicator_map1 = {'Abridged': '1', 'Full': '0',
                      'Other edition specified in subfield $2': '7'}
    indicator_map2 = {'Assigned by LC': '0',
                      'Assigned by agency other than LC': '4',
                      'No information provided': '_'}
    return {
        '__order__': tuple(order) if len(order) else None,
        'a': value.get('classification_number'),
        'b': value.get('item_number'),
        'd': value.get('volumes_dates_to_which_call_number_applies'),
        '2': value.get('edition_number'),
        '5': utils.reverse_force_list(
            value.get('institution_to_which_field_applies')
        ),
        '6': value.get('linkage'),
        '8': utils.reverse_force_list(
            value.get('field_link_and_sequence_number')
        ),
        '$ind1': '7' if value.get('type_of_edition') == value.get('edition_number')
                 else indicator_map1.get(value.get('type_of_edition'), '_'),
        '$ind2': indicator_map2.get(value.get('source_of_call_number'), '_'),
    }
Esempio n. 11
0
def reverse_subject_category_code(self, key, value):
    """Reverse - Subject Category Code."""
    field_map = {
        'subject_category_code': 'a',
        'subject_category_code_subdivision': 'x',
        'code_source': '2',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }
    order = utils.map_order(field_map, value)

    indicator_map2 = {
        'No information provided': '_',
        'NAL subject category code list': '0',
        'Source specified in subfield $2': '7',
    }
    return {
        '__order__': tuple(order) if len(order) else None,
        'a': value.get('subject_category_code'),
        '8': utils.reverse_force_list(
            value.get('field_link_and_sequence_number')
        ),
        '2': value.get('code_source') if value.get('code_source')
        not in indicator_map2 else '',
        'x': utils.reverse_force_list(
            value.get('subject_category_code_subdivision')
        ),
        '6': value.get('linkage'),
        '$ind1': '_',
        '$ind2': '7' if value.get('code_source') not in indicator_map2
                 else indicator_map2.get(value.get('code_source'), '_'),
    }
Esempio n. 12
0
def reverse_other_classification_number(self, key, value):
    """Reverse - Other Classification Number."""
    field_map = {
        'classification_number_element_single_number_or_beginning_of_span': 'a',
        'classification_number_element_ending_number_of_span': 'b',
        'explanatory_term': 'c',
        'number_source': '2',
        'institution_to_which_field_applies': '5',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }
    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        'a': value.get('classification_number_element_single_number_or_beginning_of_span'),
        'c': value.get('explanatory_term'),
        'b': value.get('classification_number_element_ending_number_of_span'),
        '2': value.get('number_source'),
        '5': utils.reverse_force_list(
            value.get('institution_to_which_field_applies')
        ),
        '6': value.get('linkage'),
        '8': utils.reverse_force_list(
            value.get('field_link_and_sequence_number')
        ),
        '$ind1': '_',
        '$ind2': '_',
    }
Esempio n. 13
0
def reverse_national_library_of_medicine_call_number(self, key, value):
    """Reverse - National Library of Medicine Call Number."""
    field_map = {
        'classification_number': 'a',
        'item_number': 'b',
        'volumes_dates_to_which_call_number_applies': 'd',
        'institution_to_which_field_applies': '5',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }
    order = utils.map_order(field_map, value)

    indicator_map2 = {
        'Assigned by NLM': '0',
        'Assigned by agency other than NLM': '4',
    }
    return {
        '__order__': tuple(order) if len(order) else None,
        'a': value.get('classification_number'),
        'b': value.get('item_number'),
        'd': value.get('volumes_dates_to_which_call_number_applies'),
        '5': utils.reverse_force_list(
            value.get('institution_to_which_field_applies')
        ),
        '6': value.get('linkage'),
        '8': utils.reverse_force_list(
            value.get('field_link_and_sequence_number')
        ),
        '$ind1': '_',
        '$ind2': indicator_map2.get(value.get('source_of_call_number'), '_'),
    }
Esempio n. 14
0
def reverse_geographic_classification(self, key, value):
    """Reverse - Geographic Classification."""
    field_map = {
        "geographic_classification_area_code": "a",
        "geographic_classification_subarea_code": "b",
        "populated_place_name": "d",
        "linkage": "6",
        "field_link_and_sequence_number": "8",
    }

    indicator_map1 = {
        "Library of Congress Classification": "_",
        "U.S. Dept. of Defense Classification": "1",
        "Source specified in subfield $2": "7",
    }

    if value.get("code_source") not in indicator_map1:
        field_map["code_source"] = "2"

    order = utils.map_order(field_map, value)

    return {
        "__order__": tuple(order) if len(order) else None,
        "a": value.get("geographic_classification_area_code"),
        "b": utils.reverse_force_list(value.get("geographic_classification_subarea_code")),
        "d": utils.reverse_force_list(value.get("populated_place_name")),
        "2": value.get("code_source") if value.get("code_source") not in indicator_map1 else None,
        "6": value.get("linkage"),
        "8": utils.reverse_force_list(value.get("field_link_and_sequence_number")),
        "$ind1": indicator_map1.get(value.get("code_source"), "7"),
        "$ind2": "_",
    }
Esempio n. 15
0
def reverse_added_entry_uncontrolled_related_analytical_title(
        self, key, value):
    """Reverse - Added Entry-Uncontrolled Related/Analytical Title."""
    indicator_map1 = {
        "No nonfiling characters": "0",
        "Number of nonfiling characters": "8"
    }
    indicator_map2 = {"Analytical entry": "2", "No information provided": "_"}
    return {
        'a':
        value.get('uncontrolled_related_analytical_title'),
        'h':
        value.get('medium'),
        'n':
        utils.reverse_force_list(
            value.get('number_of_part_section_of_a_work')),
        'p':
        utils.reverse_force_list(value.get('name_of_part_section_of_a_work')),
        '5':
        value.get('institution_to_which_field_applies'),
        '6':
        value.get('linkage'),
        '8':
        utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        '$ind1':
        indicator_map1.get(value.get('nonfiling_characters'), '_'),
        '$ind2':
        indicator_map2.get(value.get('type_of_added_entry'), '_'),
    }
Esempio n. 16
0
def reverse_associated_language(self, key, value):
    """Reverse - Associated Language."""
    indicator_map2 = {
        'MARC language code': '_',
        'Source specified in subfield $2': '7',
    }

    field_map = {
        'language_code': 'a',
        'language_term': 'l',
        'source': '2',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }

    order = utils.map_order(field_map, value)

    if indicator_map2.get(value.get('source_of_code'), '7') != '7':
        try:
            order.remove('2')
        except ValueError:
            pass

    return {
        '__order__': tuple(order) if len(order) else None,
        'a': utils.reverse_force_list(value.get('language_code')),
        '8': utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        '2': utils.reverse_force_list(value.get('source')),
        'l': utils.reverse_force_list(value.get('language_term')),
        '6': utils.reverse_force_list(value.get('linkage')),
        '$ind1': '_',
        '$ind2': indicator_map2.get(value.get('source_of_code'), '_'),
    }
Esempio n. 17
0
def reverse_host_item_entry(self, key, value):
    """Reverse - Host Item Entry."""
    indicator_map1 = {"Display note": "0", "Do not display note": "1"}
    indicator_map2 = {"In": "_", "No display constant generated": "8"}
    field_map = {
        'main_entry_heading': 'a',
        'relationship_information': 'i',
        'note': 'n',
    }
    order = utils.map_order(field_map, value)
    return {
        '__order__': tuple(order) if len(order) else None,
        '3': value.get('materials_specified'),
        '4': utils.reverse_force_list(
            value.get('relationship_code')
        ),
        '7': value.get('control_subfield'),
        '6': value.get('linkage'),
        '8': utils.reverse_force_list(
            value.get('field_link_and_sequence_number')
        ),
        'a': value.get('main_entry_heading'),
        'b': value.get('edition'),
        'd': value.get('place_publisher_and_date_of_publication'),
        'g': utils.reverse_force_list(
            value.get('related_parts')
        ),
        'i': utils.reverse_force_list(
            value.get('relationship_information')
        ),
        'h': value.get('physical_description'),
        'k': utils.reverse_force_list(
            value.get('series_data_for_related_item')
        ),
        'm': value.get('material_specific_details'),
        'o': utils.reverse_force_list(
            value.get('other_item_identifier')
        ),
        'n': utils.reverse_force_list(
            value.get('note')
        ),
        'q': value.get('enumeration_and_first_page'),
        'p': value.get('abbreviated_title'),
        's': value.get('uniform_title'),
        'r': utils.reverse_force_list(
            value.get('report_number')
        ),
        'u': value.get('standard_technical_report_number'),
        't': value.get('title'),
        'w': utils.reverse_force_list(
            value.get('record_control_number')
        ),
        'y': value.get('coden_designation'),
        'x': value.get('international_standard_serial_number'),
        'z': utils.reverse_force_list(
            value.get('international_standard_book_number')
        ),
        '$ind1': indicator_map1.get(value.get('note_controller'), '_'),
        '$ind2': indicator_map2.get(value.get('display_constant_controller'), '_'),
    }
Esempio n. 18
0
def reverse_dewey_decimal_call_number(self, key, value):
    """Reverse - Dewey Decimal Call Number."""
    field_map = {
        "classification_number": "a",
        "item_number": "b",
        "volumes_dates_to_which_call_number_applies": "d",
        "edition_number": "2",
        "institution_to_which_field_applies": "5",
        "linkage": "6",
        "field_link_and_sequence_number": "8",
    }
    order = utils.map_order(field_map, value)

    indicator_map1 = {"Abridged": "1", "Full": "0", "Other edition specified in subfield $2": "7"}
    indicator_map2 = {"Assigned by LC": "0", "Assigned by agency other than LC": "4", "No information provided": "_"}
    return {
        "__order__": tuple(order) if len(order) else None,
        "a": value.get("classification_number"),
        "b": value.get("item_number"),
        "d": value.get("volumes_dates_to_which_call_number_applies"),
        "2": value.get("edition_number"),
        "5": utils.reverse_force_list(value.get("institution_to_which_field_applies")),
        "6": value.get("linkage"),
        "8": utils.reverse_force_list(value.get("field_link_and_sequence_number")),
        "$ind1": "7"
        if value.get("type_of_edition") and value.get("type_of_edition") == value.get("edition_number")
        else indicator_map1.get(value.get("type_of_edition"), "_"),
        "$ind2": indicator_map2.get(value.get("source_of_call_number"), "_"),
    }
Esempio n. 19
0
def reverse_succeeding_entry(self, key, value):
    """Reverse - Succeeding Entry."""
    indicator_map1 = {"Display note": "0", "Do not display note": "1"}
    indicator_map2 = {
        "Absorbed by": "4",
        "Absorbed in part by": "5",
        "Changed back to": "8",
        "Continued by": "0",
        "Continued in part by": "1",
        "Merged with ... to form ...": "7",
        "Split into ... and ...": "6",
        "Superseded by": "2",
        "Superseded in part by": "3"}
    return {
        '4': utils.reverse_force_list(
            value.get('relationship_code')
        ),
        '7': value.get('control_subfield'),
        '6': value.get('linkage'),
        '8': utils.reverse_force_list(
            value.get('field_link_and_sequence_number')
        ),
        'a': value.get('main_entry_heading'),
        'c': value.get('qualifying_information'),
        'b': value.get('edition'),
        'd': value.get('place_publisher_and_date_of_publication'),
        'g': utils.reverse_force_list(
            value.get('related_parts')
        ),
        'i': utils.reverse_force_list(
            value.get('relationship_information')
        ),
        'h': value.get('physical_description'),
        'k': utils.reverse_force_list(
            value.get('series_data_for_related_item')
        ),
        'm': value.get('material_specific_details'),
        'o': utils.reverse_force_list(
            value.get('other_item_identifier')
        ),
        'n': utils.reverse_force_list(
            value.get('note')
        ),
        's': value.get('uniform_title'),
        'r': utils.reverse_force_list(
            value.get('report_number')
        ),
        'u': value.get('standard_technical_report_number'),
        't': value.get('title'),
        'w': utils.reverse_force_list(
            value.get('record_control_number')
        ),
        'y': value.get('coden_designation'),
        'x': value.get('international_standard_serial_number'),
        'z': utils.reverse_force_list(
            value.get('international_standard_book_number')
        ),
        '$ind1': indicator_map1.get(value.get('note_controller'), '_'),
        '$ind2': indicator_map2.get(value.get('type_of_relationship'), '_'),
    }
Esempio n. 20
0
def reverse_government_document_call_number(self, key, value):
    """Reverse - Government Document Call Number."""
    field_map = {
        "call_number": "a",
        "volumes_dates_to_which_call_number_applies": "d",
        "canceled_invalid_call_number": "z",
        "institution_to_which_field_applies": "5",
        "linkage": "6",
        "field_link_and_sequence_number": "8",
    }

    indicator_map1 = {
        "Superintendent of Documents Classification System": "0",
        "Government of Canada Publications: Outline of Classification": "1",
    }

    if value.get("number_source") not in indicator_map1:
        field_map["number_source"] = "2"

    order = utils.map_order(field_map, value)

    return {
        "__order__": tuple(order) if len(order) else None,
        "a": value.get("call_number"),
        "d": value.get("volumes_dates_to_which_call_number_applies"),
        "2": value.get("number_source") if value.get("number_source") not in indicator_map1 else None,
        "5": utils.reverse_force_list(value.get("institution_to_which_field_applies")),
        "6": value.get("linkage"),
        "8": utils.reverse_force_list(value.get("field_link_and_sequence_number")),
        "z": utils.reverse_force_list(value.get("canceled_invalid_call_number")),
        "$ind1": indicator_map1.get(value.get("number_source"), "_"),
        "$ind2": "_",
    }
Esempio n. 21
0
def reverse_international_standard_serial_number(self, key, value):
    """Reverse - International Standard Serial Number."""
    field_map = {
        "international_standard_serial_number": "a",
        "issn_l": "l",
        "canceled_issn_l": "m",
        "incorrect_issn": "y",
        "canceled_issn": "z",
        "linkage": "6",
        "field_link_and_sequence_number": "8",
    }
    order = utils.map_order(field_map, value)

    return {
        "__order__": tuple(order) if len(order) else None,
        "a": value.get("international_standard_serial_number"),
        "m": utils.reverse_force_list(value.get("canceled_issn_l")),
        "l": value.get("issn_l"),
        "6": value.get("linkage"),
        "y": utils.reverse_force_list(value.get("incorrect_issn")),
        "8": utils.reverse_force_list(value.get("field_link_and_sequence_number")),
        "z": utils.reverse_force_list(value.get("canceled_issn")),
        "$ind1": "_",
        "$ind2": "_",
    }
Esempio n. 22
0
def reverse_time_period_of_creation(self, key, value):
    """Reverse - Time Period of Creation."""
    indicator_map1 = {
        'No information provided': '_',
        'Creation of work': '1',
        'Creation of aggregate work': '2',
    }

    field_map = {
        'time_period_of_creation_term': 'a',
        'authority_record_control_number_or_standard_number': '0',
        'source_of_term': '2',
        'materials_specified': '3',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }

    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        'a': utils.reverse_force_list(
            value.get('time_period_of_creation_term')),
        '0': utils.reverse_force_list(
            value.get('authority_record_control_number_or_standard_number')),
        '2': value.get('source_of_term'),
        '3': value.get('materials_specified'),
        '6': value.get('linkage'),
        '8': utils.reverse_force_list(
            value.get('field_link_and_sequence_number')),
        '$ind1': indicator_map1.get(
            value.get('type_of_time_period'),
            '_'),
        '$ind2': '_',
    }
Esempio n. 23
0
def reverse_other_classification_number(self, key, value):
    """Reverse - Other Classification Number."""
    field_map = {
        "classification_number_element_single_number_or_beginning_of_span": "a",
        "classification_number_element_ending_number_of_span": "b",
        "explanatory_term": "c",
        "number_source": "2",
        "institution_to_which_field_applies": "5",
        "linkage": "6",
        "field_link_and_sequence_number": "8",
    }
    order = utils.map_order(field_map, value)

    return {
        "__order__": tuple(order) if len(order) else None,
        "a": value.get("classification_number_element_single_number_or_beginning_of_span"),
        "c": value.get("explanatory_term"),
        "b": value.get("classification_number_element_ending_number_of_span"),
        "2": value.get("number_source"),
        "5": utils.reverse_force_list(value.get("institution_to_which_field_applies")),
        "6": value.get("linkage"),
        "8": utils.reverse_force_list(value.get("field_link_and_sequence_number")),
        "$ind1": "_",
        "$ind2": "_",
    }
Esempio n. 24
0
def reverse_complex_see_reference_subject(self, key, value):
    """Reverse - Complex See Reference-Subject."""
    field_map = {
        'heading_referred_to': 'a',
        'explanatory_text': 'i',
        'authority_record_control_number': '0',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }
    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        'a': utils.reverse_force_list(
            value.get('heading_referred_to')
        ),
        '0': utils.reverse_force_list(
            value.get('authority_record_control_number')
        ),
        'i': utils.reverse_force_list(
            value.get('explanatory_text')
        ),
        '8': utils.reverse_force_list(
            value.get('field_link_and_sequence_number')
        ),
        '6': value.get('linkage'),
        '$ind1': '_',
        '$ind2': '_',
    }
Esempio n. 25
0
def reverse_hours(self, key, value):
    """Reverse - Hours, Etc.."""
    indicator_map1 = {
        'Hours': '_',
        'No display constant generated': '8',
    }

    field_map = {
        'hours': 'a',
        'additional_information': 'b',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }

    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        'a': utils.reverse_force_list(value.get('hours')),
        '8': utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        'b': utils.reverse_force_list(value.get('additional_information')),
        '6': utils.reverse_force_list(value.get('linkage')),
        '$ind1': indicator_map1.get(value.get('display_constant_controller'), '_'),
        '$ind2': '_',
    }
Esempio n. 26
0
def reverse_translation_of_title_by_cataloging_agency(self, key, value):
    """Reverse - Translation of Title by Cataloging Agency."""
    indicator_map1 = {"Added entry": "1", "No added entry": "0"}
    indicator_map2 = {
        "No nonfiling characters": "0",
        "Number of nonfiling characters": "8"}
    return {
        'a': value.get('title'),
        'c': value.get('statement_of_responsibility'),
        'b': value.get('remainder_of_title'),
        'h': value.get('medium'),
        'n': utils.reverse_force_list(
            value.get('number_of_part_section_of_a_work')
        ),
        'p': utils.reverse_force_list(
            value.get('name_of_part_section_of_a_work')
        ),
        '6': value.get('linkage'),
        'y': value.get('language_code_of_translated_title'),
        '8': utils.reverse_force_list(
            value.get('field_link_and_sequence_number')
        ),
        '$ind1': indicator_map1.get(value.get('title_added_entry'), '_'),
        '$ind2': indicator_map2.get(value.get('nonfiling_characters'), '_'),
    }
Esempio n. 27
0
def reverse_cataloging_source(self, key, value):
    """Reverse - Cataloging Source."""
    field_map = {
        'original_cataloging_agency': 'a',
        'language_of_cataloging': 'b',
        'transcribing_agency': 'c',
        'modifying_agency': 'd',
        'description_conventions': 'e',
        'subject_heading_thesaurus_conventions': 'f',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }
    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        'a': value.get('original_cataloging_agency'),
        'c': value.get('transcribing_agency'),
        'b': value.get('language_of_cataloging'),
        'e': utils.reverse_force_list(
            value.get('description_conventions')
        ),
        'd': utils.reverse_force_list(
            value.get('modifying_agency')
        ),
        'f': value.get('subject_heading_thesaurus_conventions'),
        '6': value.get('linkage'),
        '8': utils.reverse_force_list(
            value.get('field_link_and_sequence_number')
        ),
        '$ind1': '_',
        '$ind2': '_',
    }
Esempio n. 28
0
def reverse_added_entry_geographic_name(self, key, value):
    """Reverse - Added Entry-Geographic Name."""
    field_map = {
        'geographic_name': 'a',
        'relator_term': 'e',
        'authority_record_control_number_or_standard_number': '0',
        'source_of_heading_or_term': '2',
        'materials_specified': '3',
        'relator_code': '4',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }

    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        'a': value.get('geographic_name'),
        'e': utils.reverse_force_list(
            value.get('relator_term')),
        '0': utils.reverse_force_list(
            value.get('authority_record_control_number_or_standard_number')),
        '2': value.get('source_of_heading_or_term'),
        '3': value.get('materials_specified'),
        '4': utils.reverse_force_list(
            value.get('relator_code')),
        '6': value.get('linkage'),
        '8': utils.reverse_force_list(
            value.get('field_link_and_sequence_number')),
        '$ind1': '_',
        '$ind2': '_',
    }
Esempio n. 29
0
def reverse_dates_of_publication_and_or_sequential_designation(
        self,
        key,
        value):
    """Reverse - Dates of Publication and/or Sequential Designation."""
    indicator_map1 = {
        'Formatted style': '0',
        'Unformatted note': '1',
    }

    field_map = {
        'dates_of_publication_and_or_sequential_designation': 'a',
        'source_of_information': 'z',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }

    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        'a': utils.reverse_force_list(
            value.get('dates_of_publication_and_or_sequential_designation')),
        '8': utils.reverse_force_list(
            value.get('field_link_and_sequence_number')),
        'z': utils.reverse_force_list(
            value.get('source_of_information')),
        '6': utils.reverse_force_list(
            value.get('linkage')),
        '$ind1': indicator_map1.get(
            value.get('format_of_date'),
            '_'),
        '$ind2': '_',
    }
Esempio n. 30
0
def reverse_added_entry_uncontrolled_name(self, key, value):
    """Reverse - Added Entry-Uncontrolled Name."""
    indicator_map1 = {
        'Not specified': '_',
        'Other': '2',
        'Personal': '1',
    }

    field_map = {
        'name': 'a',
        'relator_term': 'e',
        'relator_code': '4',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }

    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        'a': value.get('name'),
        'e': utils.reverse_force_list(
            value.get('relator_term')),
        '4': utils.reverse_force_list(
            value.get('relator_code')),
        '6': value.get('linkage'),
        '8': utils.reverse_force_list(
            value.get('field_link_and_sequence_number')),
        '$ind1': indicator_map1.get(
            value.get('type_of_name'),
            '_'),
        '$ind2': '_',
    }
Esempio n. 31
0
File: bd3xx.py Progetto: tind/dojson
def reverse_originator_dissemination_control(self, key, value):
    """Reverse - Originator Dissemination Control."""
    field_map = {
        'originator_control_term': 'a',
        'originating_agency': 'b',
        'authorized_recipients_of_material': 'c',
        'other_restrictions': 'g',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }

    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        'a': utils.reverse_force_list(value.get('originator_control_term')),
        'c': utils.reverse_force_list(value.get('authorized_recipients_of_material')),
        'b': utils.reverse_force_list(value.get('originating_agency')),
        'g': utils.reverse_force_list(value.get('other_restrictions')),
        '6': utils.reverse_force_list(value.get('linkage')),
        '8': utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        '$ind1': '_',
        '$ind2': '_',
    }
Esempio n. 32
0
File: bd3xx.py Progetto: tind/dojson
def reverse_organization_and_arrangement_of_materials(self, key, value):
    """Reverse - Organization and Arrangement of Materials."""
    field_map = {
        'organization': 'a',
        'arrangement': 'b',
        'hierarchical_level': 'c',
        'materials_specified': '3',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }

    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        'a': utils.reverse_force_list(value.get('organization')),
        'c': utils.reverse_force_list(value.get('hierarchical_level')),
        'b': utils.reverse_force_list(value.get('arrangement')),
        '3': utils.reverse_force_list(value.get('materials_specified')),
        '6': utils.reverse_force_list(value.get('linkage')),
        '8': utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        '$ind1': '_',
        '$ind2': '_',
    }
Esempio n. 33
0
def reverse_geographic_area_code(self, key, value):
    """Reverse - Geographic Area Code."""
    field_map = {
        'geographic_area_code': 'a',
        'local_gac_code': 'b',
        'iso_code': 'c',
        'authority_record_control_number_or_standard_number': '0',
        'source_of_local_code': '2',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }
    order = utils.map_order(field_map, value)

    return {
        '__order__':
        tuple(order) if len(order) else None,
        'a':
        utils.reverse_force_list(value.get('geographic_area_code')),
        'c':
        utils.reverse_force_list(value.get('iso_code')),
        'b':
        utils.reverse_force_list(value.get('local_gac_code')),
        '0':
        utils.reverse_force_list(
            value.get('authority_record_control_number_or_standard_number')),
        '2':
        utils.reverse_force_list(value.get('source_of_local_code')),
        '6':
        value.get('linkage'),
        '8':
        utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        '$ind1':
        '_',
        '$ind2':
        '_',
    }
Esempio n. 34
0
def reverse_medium_of_performance(self, key, value):
    """Reverse - Medium of Performance."""
    field_map = {
        'medium_of_performance': 'a',
        'soloist': 'b',
        'doubling_instrument': 'd',
        'number_of_ensembles': 'e',
        'number_of_performers_of_the_same_medium': 'n',
        'alternative_medium_of_performance': 'p',
        'total_number_of_individuals_performing_alongside_ensembles': 'r',
        'total_number_of_performers': 's',
        'note': 'v',
        'authority_record_control_number_or_standard_number': '0',
        'source_of_term': '2',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }
    order = utils.map_order(field_map, value)

    indicator_map1 = {
        'Medium of performance': '0',
        'No information provided': '_',
        'Partial medium of performance': '1'
    }
    return {
        '__order__':
        tuple(order) if len(order) else None,
        'a':
        utils.reverse_force_list(value.get('medium_of_performance')),
        'b':
        utils.reverse_force_list(value.get('soloist')),
        'e':
        utils.reverse_force_list(value.get('number_of_ensembles')),
        'd':
        utils.reverse_force_list(value.get('doubling_instrument')),
        'p':
        utils.reverse_force_list(
            value.get('alternative_medium_of_performance')),
        'v':
        utils.reverse_force_list(value.get('note')),
        'n':
        utils.reverse_force_list(
            value.get('number_of_performers_of_the_same_medium')),
        'r':
        utils.reverse_force_list(
            value.get(
                'total_number_of_individuals_performing_alongside_ensembles')),
        '0':
        utils.reverse_force_list(
            value.get('authority_record_control_number_or_standard_number')),
        's':
        value.get('total_number_of_performers'),
        '2':
        value.get('source_of_term'),
        '6':
        value.get('linkage'),
        '8':
        utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        '$ind1':
        indicator_map1.get(value.get('display_constant_controller'), '_'),
        '$ind2':
        '_',
    }
Esempio n. 35
0
def reverse_established_heading_linking_entry_uniform_title(self, key, value):
    """Reverse - Established Heading Linking Entry-Uniform Title."""
    field_map = {
        'uniform_title': 'a',
        'date_of_treaty_signing': 'd',
        'date_of_a_work': 'f',
        'miscellaneous_information': 'g',
        'medium': 'h',
        'relationship_information': 'i',
        'form_subheading': 'k',
        'language_of_a_work': 'l',
        'medium_of_performance_for_music': 'm',
        'number_of_part_section_of_a_work': 'n',
        'arranged_statement_for_music': 'o',
        'name_of_part_section_of_a_work': 'p',
        'key_for_music': 'r',
        'version': 's',
        'title_of_a_work': 't',
        'form_subdivision': 'v',
        'control_subfield': 'w',
        'general_subdivision': 'x',
        'chronological_subdivision': 'y',
        'geographic_subdivision': 'z',
        'authority_record_control_number_or_standard_number': '0',
        'source_of_heading_or_term': '2',
        'relationship_code': '4',
        'institution_to_which_field_applies': '5',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }
    order = utils.map_order(field_map, value)

    indicator_map2 = {
        'Library of Congress Subject Headings': '0',
        'LC subject headings for children\'s literature': '1',
        'Medical Subject Headings': '2',
        'National Agricultural Library subject authority file': '3',
        'Source not specified': '4',
        'Canadian Subject Headings': '5',
        'Répertoire de vedettes-matière': '6',
    }
    return {
        '__order__': tuple(order) if len(order) else None,
        '0': utils.reverse_force_list(
            value.get('authority_record_control_number_or_standard_number')
        ),
        '2': value.get('source_of_heading_or_term'),
        '5': utils.reverse_force_list(
            value.get('institution_to_which_field_applies')
        ),
        '4': utils.reverse_force_list(
            value.get('relationship_code')
        ),
        '6': value.get('linkage'),
        '8': utils.reverse_force_list(
            value.get('field_link_and_sequence_number')
        ),
        'a': value.get('uniform_title'),
        'd': utils.reverse_force_list(
            value.get('date_of_treaty_signing')
        ),
        'g': utils.reverse_force_list(
            value.get('miscellaneous_information')
        ),
        'f': value.get('date_of_a_work'),
        'i': utils.reverse_force_list(
            value.get('relationship_information')
        ),
        'h': value.get('medium'),
        'k': utils.reverse_force_list(
            value.get('form_subheading')
        ),
        'm': utils.reverse_force_list(
            value.get('medium_of_performance_for_music')
        ),
        'l': value.get('language_of_a_work'),
        'o': value.get('arranged_statement_for_music'),
        'n': utils.reverse_force_list(
            value.get('number_of_part_section_of_a_work')
        ),
        'p': utils.reverse_force_list(
            value.get('name_of_part_section_of_a_work')
        ),
        's': value.get('version'),
        'r': value.get('key_for_music'),
        't': value.get('title_of_a_work'),
        'w': value.get('control_subfield'),
        'v': utils.reverse_force_list(
            value.get('form_subdivision')
        ),
        'y': utils.reverse_force_list(
            value.get('chronological_subdivision')
        ),
        'x': utils.reverse_force_list(
            value.get('general_subdivision')
        ),
        'z': utils.reverse_force_list(
            value.get('geographic_subdivision')
        ),
        '$ind1': '_',
        '$ind2': '7' if value.get('thesaurus') and value.get('thesaurus') == value.get('source_of_heading_or_term')
        else indicator_map2.get(value.get('thesaurus'), '_'),
    }
Esempio n. 36
0
def reverse_heading_personal_name(self, key, value):
    """Reverse - Heading-Personal Name."""
    field_map = {
        "personal_name": "a",
        "numeration": "b",
        "titles_and_other_words_associated_with_a_name": "c",
        "dates_associated_with_a_name": "d",
        "relator_term": "e",
        "date_of_a_work": "f",
        "miscellaneous_information": "g",
        "medium": "h",
        "attribution_qualifier": "j",
        "form_subheading": "k",
        "language_of_a_work": "l",
        "medium_of_performance_for_music": "m",
        "number_of_part_section_of_a_work": "n",
        "arranged_statement_for_music": "o",
        "name_of_part_section_of_a_work": "p",
        "fuller_form_of_name": "q",
        "key_for_music": "r",
        "version": "s",
        "title_of_a_work": "t",
        "form_subdivision": "v",
        "general_subdivision": "x",
        "chronological_subdivision": "y",
        "geographic_subdivision": "z",
        "linkage": "6",
        "field_link_and_sequence_number": "8",
    }
    order = utils.map_order(field_map, value)

    indicator_map1 = {"Family name": "3", "Forename": "0", "Surname": "1"}
    return {
        "__order__":
        tuple(order) if len(order) else None,
        "6":
        value.get("linkage"),
        "8":
        utils.reverse_force_list(value.get("field_link_and_sequence_number")),
        "a":
        value.get("personal_name"),
        "c":
        utils.reverse_force_list(
            value.get("titles_and_other_words_associated_with_a_name")),
        "b":
        value.get("numeration"),
        "e":
        utils.reverse_force_list(value.get("relator_term")),
        "d":
        value.get("dates_associated_with_a_name"),
        "g":
        utils.reverse_force_list(value.get("miscellaneous_information")),
        "f":
        value.get("date_of_a_work"),
        "h":
        value.get("medium"),
        "k":
        utils.reverse_force_list(value.get("form_subheading")),
        "j":
        utils.reverse_force_list(value.get("attribution_qualifier")),
        "m":
        utils.reverse_force_list(value.get("medium_of_performance_for_music")),
        "l":
        value.get("language_of_a_work"),
        "o":
        value.get("arranged_statement_for_music"),
        "n":
        utils.reverse_force_list(
            value.get("number_of_part_section_of_a_work")),
        "q":
        value.get("fuller_form_of_name"),
        "p":
        utils.reverse_force_list(value.get("name_of_part_section_of_a_work")),
        "s":
        value.get("version"),
        "r":
        value.get("key_for_music"),
        "t":
        value.get("title_of_a_work"),
        "v":
        utils.reverse_force_list(value.get("form_subdivision")),
        "y":
        utils.reverse_force_list(value.get("chronological_subdivision")),
        "x":
        utils.reverse_force_list(value.get("general_subdivision")),
        "z":
        utils.reverse_force_list(value.get("geographic_subdivision")),
        "$ind1":
        indicator_map1.get(value.get("type_of_personal_name_entry_element"),
                           "_"),
        "$ind2":
        "_",
    }
Esempio n. 37
0
def reverse_electronic_location_and_access(self, key, value):
    """Reverse - Electronic Location and Access."""
    field_map = {
        'host_name': 'a',
        'access_number': 'b',
        'compression_information': 'c',
        'path': 'd',
        'electronic_name': 'f',
        'processor_of_request': 'h',
        'instruction': 'i',
        'bits_per_second': 'j',
        'password': '******',
        'logon': 'l',
        'contact_for_access_assistance': 'm',
        'name_of_location_of_host': 'n',
        'operating_system': 'o',
        'port': 'p',
        'electronic_format_type': 'q',
        'settings': 'r',
        'file_size': 's',
        'terminal_emulation': 't',
        'uniform_resource_identifier': 'u',
        'hours_access_method_available': 'v',
        'record_control_number': 'w',
        'nonpublic_note': 'x',
        'link_text': 'y',
        'public_note': 'z',
        'materials_specified': '3',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }

    indicator_map1 = {
        'No information provided': '_',
        'Email': '0',
        'FTP': '1',
        'Remote login (Telnet)': '2',
        'Dial-up': '3',
        'HTTP': '4',
        'Method specified in subfield $2': '7',
    }
    indicator_map2 = {
        'No information provided': '_',
        'Resource': '0',
        'Version of resource': '1',
        'Related resource': '2',
        'No display constant generated': '8',
    }

    if value.get('access_method') not in indicator_map1:
        field_map['access_method'] = '2'

    order = utils.map_order(field_map, value)

    return {
        '__order__':
        tuple(order) if len(order) else None,
        '3':
        value.get('materials_specified'),
        '2':
        value.get('access_method')
        if value.get('access_method') not in indicator_map1 else None,
        '6':
        value.get('linkage'),
        '8':
        utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        'a':
        utils.reverse_force_list(value.get('host_name')),
        'c':
        utils.reverse_force_list(value.get('compression_information')),
        'b':
        utils.reverse_force_list(value.get('access_number')),
        'd':
        utils.reverse_force_list(value.get('path')),
        'f':
        utils.reverse_force_list(value.get('electronic_name')),
        'i':
        utils.reverse_force_list(value.get('instruction')),
        'h':
        value.get('processor_of_request'),
        'k':
        value.get('password'),
        'j':
        value.get('bits_per_second'),
        'm':
        utils.reverse_force_list(value.get('contact_for_access_assistance')),
        'l':
        value.get('logon'),
        'o':
        value.get('operating_system'),
        'n':
        value.get('name_of_location_of_host'),
        'q':
        value.get('electronic_format_type'),
        'p':
        value.get('port'),
        's':
        utils.reverse_force_list(value.get('file_size')),
        'r':
        value.get('settings'),
        'u':
        utils.reverse_force_list(value.get('uniform_resource_identifier')),
        't':
        utils.reverse_force_list(value.get('terminal_emulation')),
        'w':
        utils.reverse_force_list(value.get('record_control_number')),
        'v':
        utils.reverse_force_list(value.get('hours_access_method_available')),
        'y':
        utils.reverse_force_list(value.get('link_text')),
        'x':
        utils.reverse_force_list(value.get('nonpublic_note')),
        'z':
        utils.reverse_force_list(value.get('public_note')),
        '$ind1':
        '7' if value.get('access_method')
        and value.get('access_method') not in indicator_map1 else
        indicator_map1.get(value.get('access_method'), '_'),
        '$ind2':
        indicator_map2.get(value.get('relationship'), '_')
    }
Esempio n. 38
0
def reverse_added_entry_personal_name(self, key, value):
    """Reverse - Added Entry-Personal Name."""
    indicator_map1 = {
        'Forename': '0',
        'Surname': '1',
        'Family name': '3',
    }

    indicator_map2 = {
        'No information provided': '_',
        'Analytical entry': '2',
    }

    field_map = {
        'personal_name': 'a',
        'numeration': 'b',
        'titles_and_other_words_associated_with_a_name': 'c',
        'dates_associated_with_a_name': 'd',
        'relator_term': 'e',
        'date_of_a_work': 'f',
        'miscellaneous_information': 'g',
        'medium': 'h',
        'relationship_information': 'i',
        'attribution_qualifier': 'j',
        'form_subheading': 'k',
        'language_of_a_work': 'l',
        'medium_of_performance_for_music': 'm',
        'number_of_part_section_of_a_work': 'n',
        'arranged_statement_for_music': 'o',
        'name_of_part_section_of_a_work': 'p',
        'fuller_form_of_name': 'q',
        'key_for_music': 'r',
        'version': 's',
        'title_of_a_work': 't',
        'affiliation': 'u',
        'international_standard_serial_number': 'x',
        'authority_record_control_number_or_standard_number': '0',
        'materials_specified': '3',
        'relator_code': '4',
        'institution_to_which_field_applies': '5',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }

    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        'a': value.get('personal_name'),
        'b': value.get('numeration'),
        'c': utils.reverse_force_list(
            value.get('titles_and_other_words_associated_with_a_name')
        ),
        'd': value.get('dates_associated_with_a_name'),
        'e': utils.reverse_force_list(
            value.get('relator_term')
        ),
        'f': value.get('date_of_a_work'),
        'g': value.get('miscellaneous_information'),
        'h': value.get('medium'),
        'i': utils.reverse_force_list(
            value.get('relationship_information')
        ),
        'j': utils.reverse_force_list(value.get('attribution_qualifier')),
        'k': utils.reverse_force_list(
            value.get('form_subheading')
        ),
        'l': value.get('language_of_a_work'),
        'm': utils.reverse_force_list(
            value.get('medium_of_performance_for_music')
        ),
        'n': utils.reverse_force_list(value.get('number_of_part_section_of_a_work')),
        'o': value.get('arranged_statement_for_music'),
        'p': utils.reverse_force_list(value.get('name_of_part_section_of_a_work')),
        'q': value.get('fuller_form_of_name'),
        'r': value.get('key_for_music'),
        's': value.get('version'),
        't': value.get('title_of_a_work'),
        'u': value.get('affiliation'),
        'x': value.get('international_standard_serial_number'),
        '0': utils.reverse_force_list(
            value.get('authority_record_control_number_or_standard_number')
        ),
        '3': value.get('materials_specified'),
        '4': utils.reverse_force_list(value.get('relator_code')),
        '5': value.get('institution_to_which_field_applies'),
        '6': value.get('linkage'),
        '8': utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        '$ind1': indicator_map1.get(value.get('type_of_personal_name_entry_element', '_')),
        '$ind2': indicator_map2.get(value.get('type_of_added_entry', '_')),
    }
Esempio n. 39
0
File: bd3xx.py Progetto: tind/dojson
def reverse_security_classification_control(self, key, value):
    """Reverse - Security Classification Control."""
    indicator_map1 = {
        'Document': '0',
        'Title': '1',
        'Abstract': '2',
        'Contents note': '3',
        'Author': '4',
        'Record': '5',
        'None of the above': '8',
    }

    field_map = {
        'security_classification': 'a',
        'handling_instructions': 'b',
        'external_dissemination_information': 'c',
        'downgrading_or_declassification_event': 'd',
        'classification_system': 'e',
        'country_of_origin_code': 'f',
        'downgrading_date': 'g',
        'declassification_date': 'h',
        'authorization': 'j',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }

    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        'a': utils.reverse_force_list(value.get('security_classification')),
        'c': utils.reverse_force_list(value.get('external_dissemination_information')),
        'b': utils.reverse_force_list(value.get('handling_instructions')),
        'e': utils.reverse_force_list(value.get('classification_system')),
        'd': utils.reverse_force_list(value.get('downgrading_or_declassification_event')),
        'g': utils.reverse_force_list(value.get('downgrading_date')),
        'f': utils.reverse_force_list(value.get('country_of_origin_code')),
        'h': utils.reverse_force_list(value.get('declassification_date')),
        'j': utils.reverse_force_list(value.get('authorization')),
        '6': utils.reverse_force_list(value.get('linkage')),
        '8': utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        '$ind1': indicator_map1.get(value.get('controlled_element'), '_'),
        '$ind2': '_',
    }
Esempio n. 40
0
def test_force_list_roundtrips():
    assert reverse_force_list(force_list('foo')) == 'foo'
Esempio n. 41
0
def reverse_series_added_entry_meeting_name(self, key, value):
    """Reverse - Series Added Entry-Meeting Name."""
    indicator_map1 = {
        "Inverted name": "0",
        "Jurisdiction name": "1",
        "Name in direct order": "2",
    }
    field_map = {
        "location_of_meeting": "c",
        "control_subfield": "7",
        "name_of_part_section_of_a_work": "p",
        "institution_to_which_field_applies": "5",
        "international_standard_serial_number": "x",
        "meeting_name_or_jurisdiction_name_as_entry_element": "a",
        "title_of_a_work": "t",
        "date_of_meeting": "d",
        "affiliation": "u",
        "language_of_a_work": "l",
        "field_link_and_sequence_number": "8",
        "name_of_meeting_following_jurisdiction_name_entry_element": "q",
        "volume_sequential_designation": "v",
        "medium": "h",
        "authority_record_control_number_or_standard_number": "0",
        "linkage": "6",
        "materials_specified": "3",
        "relator_code": "4",
        "subordinate_unit": "e",
        "version": "s",
        "form_subheading": "k",
        "miscellaneous_information": "g",
        "bibliographic_record_control_number": "w",
        "relator_term": "j",
        "number_of_part_section_meeting": "n",
        "date_of_a_work": "f",
    }

    order = utils.map_order(field_map, value)

    if indicator_map1.get(value.get("type_of_meeting_name_entry_element"),
                          "7") != "7":
        try:
            order.remove(field_map.get("type_of_meeting_name_entry_element"))
        except ValueError:
            pass

    return {
        "__order__":
        tuple(order) if len(order) else None,
        "c":
        utils.reverse_force_list(value.get("location_of_meeting")),
        "7":
        value.get("control_subfield"),
        "p":
        utils.reverse_force_list(value.get("name_of_part_section_of_a_work")),
        "5":
        utils.reverse_force_list(
            value.get("institution_to_which_field_applies")),
        "x":
        value.get("international_standard_serial_number"),
        "a":
        value.get("meeting_name_or_jurisdiction_name_as_entry_element"),
        "t":
        value.get("title_of_a_work"),
        "d":
        value.get("date_of_meeting"),
        "u":
        value.get("affiliation"),
        "l":
        value.get("language_of_a_work"),
        "8":
        utils.reverse_force_list(value.get("field_link_and_sequence_number")),
        "q":
        value.get("name_of_meeting_following_jurisdiction_name_entry_element"),
        "v":
        value.get("volume_sequential_designation"),
        "h":
        value.get("medium"),
        "0":
        utils.reverse_force_list(
            value.get("authority_record_control_number_or_standard_number")),
        "6":
        value.get("linkage"),
        "3":
        value.get("materials_specified"),
        "4":
        utils.reverse_force_list(value.get("relator_code")),
        "e":
        utils.reverse_force_list(value.get("subordinate_unit")),
        "s":
        value.get("version"),
        "k":
        utils.reverse_force_list(value.get("form_subheading")),
        "g":
        utils.reverse_force_list(value.get("miscellaneous_information")),
        "w":
        utils.reverse_force_list(
            value.get("bibliographic_record_control_number")),
        "j":
        utils.reverse_force_list(value.get("relator_term")),
        "n":
        utils.reverse_force_list(value.get("number_of_part_section_meeting")),
        "f":
        value.get("date_of_a_work"),
        "$ind1":
        indicator_map1.get(value.get("type_of_meeting_name_entry_element"),
                           "_"),
        "$ind2":
        "_",
    }
Esempio n. 42
0
def reverse_address(self, key, value):
    """Reverse - Address."""
    indicator_map1 = {
        "No level specified": "_",
        "Primary": "1",
        "Secondary": "2"
    }
    indicator_map2 = {
        "Mailing": "0",
        "No type specified": "_",
        "Type specified in subfield $i": "7"
    }
    field_map = {
        'relator_code': '4',
        'country': 'd',
        'telephone_number': 'k',
        'state_or_province': 'c',
        'electronic_mail_address': 'm',
        'contact_person': 'p',
        'attention_position': 'h',
        'city': 'b',
        'title_of_contact_person': 'q',
        'fax_number': 'l',
        'tdd_or_tty_number': 'n',
        'linkage': '6',
        'attention_name': 'g',
        'address': 'a',
        'field_link_and_sequence_number': '8',
        'type_of_address': 'i',
        'terms_preceding_attention_name': 'f',
        'hours': 'r',
        'postal_code': 'e',
        'public_note': 'z',
        'specialized_telephone_number': 'j',
    }

    order = utils.map_order(field_map, value)

    if indicator_map1.get(value.get('level'), '7') != '7':
        try:
            order.remove(field_map.get('level'))
        except ValueError:
            pass

    if indicator_map2.get(value.get('type_of_address'), '7') != '7':
        try:
            order.remove(field_map.get('type_of_address'))
        except ValueError:
            pass

    return {
        '__order__':
        tuple(order) if len(order) else None,
        '4':
        utils.reverse_force_list(value.get('relator_code')),
        'd':
        value.get('country'),
        'k':
        utils.reverse_force_list(value.get('telephone_number')),
        'c':
        value.get('state_or_province'),
        'm':
        utils.reverse_force_list(value.get('electronic_mail_address')),
        'p':
        utils.reverse_force_list(value.get('contact_person')),
        'h':
        value.get('attention_position'),
        'b':
        value.get('city'),
        'q':
        utils.reverse_force_list(value.get('title_of_contact_person')),
        'l':
        utils.reverse_force_list(value.get('fax_number')),
        'n':
        utils.reverse_force_list(value.get('tdd_or_tty_number')),
        '6':
        value.get('linkage'),
        'g':
        value.get('attention_name'),
        'a':
        utils.reverse_force_list(value.get('address')),
        '8':
        utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        'i':
        value.get('type_of_address'),
        'f':
        value.get('terms_preceding_attention_name'),
        'r':
        utils.reverse_force_list(value.get('hours')),
        'e':
        value.get('postal_code'),
        'z':
        utils.reverse_force_list(value.get('public_note')),
        'j':
        utils.reverse_force_list(value.get('specialized_telephone_number')),
        '$ind1':
        indicator_map1.get(value.get('level'), '_'),
        '$ind2':
        '7' if 'type_of_address' in value
        and not indicator_map2.get(value.get('type_of_address'))
        and value.get('type_of_address') == value.get('type_of_address') else
        indicator_map2.get(value.get('type_of_address'), '_'),
    }
Esempio n. 43
0
File: bd1xx.py Progetto: tind/dojson
def reverse_main_entry_meeting_name(self, key, value):
    """Reverse - Main Entry-Meeting Name."""
    indicator_map1 = {
        'Inverted name': '0',
        'Jurisdiction name': '1',
        'Name in direct order': '2',
    }

    field_map = {
        'meeting_name_or_jurisdiction_name_as_entry_element': 'a',
        'location_of_meeting': 'c',
        'date_of_meeting': 'd',
        'subordinate_unit': 'e',
        'date_of_a_work': 'f',
        'miscellaneous_information': 'g',
        'relator_term': 'j',
        'form_subheading': 'k',
        'language_of_a_work': 'l',
        'number_of_part_section_meeting': 'n',
        'name_of_part_section_of_a_work': 'p',
        'name_of_meeting_following_jurisdiction_name_entry_element': 'q',
        'title_of_a_work': 't',
        'affiliation': 'u',
        'authority_record_control_number_or_standard_number': '0',
        'relator_code': '4',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }

    order = utils.map_order(field_map, value)

    return {
        '__order__':
        tuple(order) if len(order) else None,
        'a':
        value.get('meeting_name_or_jurisdiction_name_as_entry_element'),
        'c':
        value.get('location_of_meeting'),
        'e':
        utils.reverse_force_list(value.get('subordinate_unit')),
        'd':
        value.get('date_of_meeting'),
        'g':
        value.get('miscellaneous_information'),
        'f':
        value.get('date_of_a_work'),
        'k':
        utils.reverse_force_list(value.get('form_subheading')),
        'j':
        utils.reverse_force_list(value.get('relator_term')),
        'l':
        value.get('language_of_a_work'),
        'p':
        utils.reverse_force_list(value.get('name_of_part_section_of_a_work')),
        'n':
        utils.reverse_force_list(value.get('number_of_part_section_meeting')),
        'q':
        value.get('name_of_meeting_following_jurisdiction_name_entry_element'),
        '0':
        utils.reverse_force_list(
            value.get('authority_record_control_number_or_standard_number')),
        'u':
        value.get('affiliation'),
        '4':
        utils.reverse_force_list(value.get('relator_code')),
        '6':
        value.get('linkage'),
        '8':
        utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        't':
        value.get('title_of_a_work'),
        '$ind1':
        indicator_map1.get(value.get('type_of_meeting_name_entry_element'),
                           '_'),
        '$ind2':
        '_',
    }
Esempio n. 44
0
def reverse_production_publication_distribution_manufacture_and_copyright_notice(
        self, key, value):
    """Reverse - Production, Publication, Distribution, Manufacture, and Copyright Notice."""
    indicator_map1 = {
        "Current/Latest": "3",
        "Intervening": "2",
        "Not applicable/No information provided/Earliest": "_"
    }
    indicator_map2 = {
        "Copyright notice date": "4",
        "Distribution": "2",
        "Manufacture": "3",
        "Production": "0",
        "Publication": "1"
    }
    field_map = {
        'linkage':
        '6',
        'date_of_production_publication_distribution_manufacture_or_copyright_notice':
        'c',
        'place_of_production_publication_distribution_manufacture':
        'a',
        'field_link_and_sequence_number':
        '8',
        'materials_specified':
        '3',
        'name_of_producer_publisher_distributor_manufacturer':
        'b',
    }

    order = utils.map_order(field_map, value)

    if indicator_map1.get(value.get('sequence_of_statements'), '7') != '7':
        try:
            order.remove(field_map.get('sequence_of_statements'))
        except ValueError:
            pass

    if indicator_map2.get(value.get('function_of_entity'), '7') != '7':
        try:
            order.remove(field_map.get('function_of_entity'))
        except ValueError:
            pass

    return {
        '__order__':
        tuple(order) if len(order) else None,
        '6':
        value.get('linkage'),
        'c':
        utils.reverse_force_list(
            value.get(
                'date_of_production_publication_distribution_manufacture_or_copyright_notice'
            )),
        'a':
        utils.reverse_force_list(
            value.get(
                'place_of_production_publication_distribution_manufacture')),
        '8':
        utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        '3':
        value.get('materials_specified'),
        'b':
        utils.reverse_force_list(
            value.get('name_of_producer_publisher_distributor_manufacturer')),
        '$ind1':
        indicator_map1.get(value.get('sequence_of_statements'), '_'),
        '$ind2':
        indicator_map2.get(value.get('function_of_entity'), '_'),
    }
Esempio n. 45
0
def reverse_heading_uniform_title(self, key, value):
    """Reverse - Heading-Uniform Title."""
    field_map = {
        "uniform_title": "a",
        "date_of_treaty_signing": "d",
        "date_of_a_work": "f",
        "miscellaneous_information": "g",
        "medium": "h",
        "form_subheading": "k",
        "language_of_a_work": "l",
        "medium_of_performance_for_music": "m",
        "number_of_part_section_of_a_work": "n",
        "arranged_statement_for_music": "o",
        "name_of_part_section_of_a_work": "p",
        "key_for_music": "r",
        "version": "s",
        "title_of_a_work": "t",
        "form_subdivision": "v",
        "general_subdivision": "x",
        "chronological_subdivision": "y",
        "geographic_subdivision": "z",
        "linkage": "6",
        "field_link_and_sequence_number": "8",
    }
    order = utils.map_order(field_map, value)

    indicator_map2 = {
        "0": "0",
        "1": "1",
        "2": "2",
        "3": "3",
        "4": "4",
        "5": "5",
        "6": "6",
        "7": "7",
        "8": "8",
        "9": "9",
    }
    return {
        "__order__":
        tuple(order) if len(order) else None,
        "a":
        value.get("uniform_title"),
        "x":
        utils.reverse_force_list(value.get("general_subdivision")),
        "d":
        utils.reverse_force_list(value.get("date_of_treaty_signing")),
        "g":
        utils.reverse_force_list(value.get("miscellaneous_information")),
        "f":
        value.get("date_of_a_work"),
        "h":
        value.get("medium"),
        "k":
        utils.reverse_force_list(value.get("form_subheading")),
        "v":
        utils.reverse_force_list(value.get("form_subdivision")),
        "m":
        utils.reverse_force_list(value.get("medium_of_performance_for_music")),
        "l":
        value.get("language_of_a_work"),
        "o":
        value.get("arranged_statement_for_music"),
        "n":
        utils.reverse_force_list(
            value.get("number_of_part_section_of_a_work")),
        "p":
        utils.reverse_force_list(value.get("name_of_part_section_of_a_work")),
        "s":
        value.get("version"),
        "r":
        value.get("key_for_music"),
        "t":
        value.get("title_of_a_work"),
        "6":
        value.get("linkage"),
        "y":
        utils.reverse_force_list(value.get("chronological_subdivision")),
        "8":
        utils.reverse_force_list(value.get("field_link_and_sequence_number")),
        "z":
        utils.reverse_force_list(value.get("geographic_subdivision")),
        "$ind1":
        "_",
        "$ind2":
        indicator_map2.get(value.get("nonfiling_characters"), "_"),
    }
Esempio n. 46
0
def reverse_heading_meeting_name(self, key, value):
    """Reverse - Heading-Meeting Name."""
    field_map = {
        "meeting_name_or_jurisdiction_name_as_entry_element": "a",
        "location_of_meeting": "c",
        "date_of_meeting": "d",
        "subordinate_unit": "e",
        "date_of_a_work": "f",
        "miscellaneous_information": "g",
        "medium": "h",
        "relator_term": "j",
        "form_subheading": "k",
        "language_of_a_work": "l",
        "number_of_part_section_meeting": "n",
        "name_of_part_section_of_a_work": "p",
        "name_of_meeting_following_jurisdiction_name_entry_element": "q",
        "version": "s",
        "title_of_a_work": "t",
        "form_subdivision": "v",
        "general_subdivision": "x",
        "chronological_subdivision": "y",
        "geographic_subdivision": "z",
        "linkage": "6",
        "field_link_and_sequence_number": "8",
    }
    order = utils.map_order(field_map, value)

    indicator_map1 = {
        "Inverted name": "0",
        "Jurisdiction name": "1",
        "Name in direct order": "2",
    }
    return {
        "__order__":
        tuple(order) if len(order) else None,
        "a":
        value.get("meeting_name_or_jurisdiction_name_as_entry_element"),
        "x":
        utils.reverse_force_list(value.get("general_subdivision")),
        "c":
        utils.reverse_force_list(value.get("location_of_meeting")),
        "v":
        utils.reverse_force_list(value.get("form_subdivision")),
        "e":
        utils.reverse_force_list(value.get("subordinate_unit")),
        "d":
        value.get("date_of_meeting"),
        "g":
        utils.reverse_force_list(value.get("miscellaneous_information")),
        "f":
        value.get("date_of_a_work"),
        "h":
        value.get("medium"),
        "k":
        utils.reverse_force_list(value.get("form_subheading")),
        "j":
        utils.reverse_force_list(value.get("relator_term")),
        "l":
        value.get("language_of_a_work"),
        "n":
        utils.reverse_force_list(value.get("number_of_part_section_meeting")),
        "q":
        value.get("name_of_meeting_following_jurisdiction_name_entry_element"),
        "p":
        utils.reverse_force_list(value.get("name_of_part_section_of_a_work")),
        "s":
        value.get("version"),
        "t":
        value.get("title_of_a_work"),
        "6":
        value.get("linkage"),
        "y":
        utils.reverse_force_list(value.get("chronological_subdivision")),
        "8":
        utils.reverse_force_list(value.get("field_link_and_sequence_number")),
        "z":
        utils.reverse_force_list(value.get("geographic_subdivision")),
        "$ind1":
        indicator_map1.get(value.get("type_of_meeting_name_entry_element"),
                           "_"),
        "$ind2":
        "_",
    }
Esempio n. 47
0
def reverse_established_heading_linking_entry_genre_form_term(
        self, key, value):
    """Reverse - Established Heading Linking Entry-Genre/Form Term."""
    field_map = {
        'genre_form_term_as_entry_element': 'a',
        'relationship_information': 'i',
        'form_subdivision': 'v',
        'control_subfield': 'w',
        'general_subdivision': 'x',
        'chronological_subdivision': 'y',
        'geographic_subdivision': 'z',
        'authority_record_control_number_or_standard_number': '0',
        'source_of_heading_or_term': '2',
        'relationship_code': '4',
        'institution_to_which_field_applies': '5',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }
    order = utils.map_order(field_map, value)

    indicator_map2 = {
        'Library of Congress Subject Headings': '0',
        'LC subject headings for children\'s literature': '1',
        'Medical Subject Headings': '2',
        'National Agricultural Library subject authority file': '3',
        'Source not specified': '4',
        'Canadian Subject Headings': '5',
        'Répertoire de vedettes-matière': '6',
    }
    return {
        '__order__': tuple(order) if len(order) else None,
        'a': value.get('genre_form_term_as_entry_element'),
        'x': utils.reverse_force_list(
            value.get('general_subdivision')
        ),
        'i': utils.reverse_force_list(
            value.get('relationship_information')
        ),
        'v': utils.reverse_force_list(
            value.get('form_subdivision')
        ),
        '0': utils.reverse_force_list(
            value.get('authority_record_control_number_or_standard_number')
        ),
        '2': value.get('source_of_heading_or_term'),
        '5': utils.reverse_force_list(
            value.get('institution_to_which_field_applies')
        ),
        '4': utils.reverse_force_list(
            value.get('relationship_code')
        ),
        'w': value.get('control_subfield'),
        '6': value.get('linkage'),
        'y': utils.reverse_force_list(
            value.get('chronological_subdivision')
        ),
        '8': utils.reverse_force_list(
            value.get('field_link_and_sequence_number')
        ),
        'z': utils.reverse_force_list(
            value.get('geographic_subdivision')
        ),
        '$ind1': '_',
        '$ind2': '7' if value.get('thesaurus') and value.get('thesaurus') == value.get('source_of_heading_or_term')
        else indicator_map2.get(value.get('thesaurus'), '_'),
    }
Esempio n. 48
0
File: ad5xx.py Progetto: N03/invenio
def reverse_see_also_from_tracing_personal_name(self, key, value):
    """Reverse - See Also From Tracing-Personal Name."""
    field_map = {
        'personal_name': 'a',
        'numeration': 'b',
        'titles_and_other_words_associated_with_a_name': 'c',
        'dates_associated_with_a_name': 'd',
        'relator_term': 'e',
        'date_of_a_work': 'f',
        'miscellaneous_information': 'g',
        'medium': 'h',
        'relationship_information': 'i',
        'attribution_qualifier': 'j',
        'form_subheading': 'k',
        'language_of_a_work': 'l',
        'medium_of_performance_for_music': 'm',
        'number_of_part_section_of_a_work': 'n',
        'arranged_statement_for_music': 'o',
        'name_of_part_section_of_a_work': 'p',
        'fuller_form_of_name': 'q',
        'key_for_music': 'r',
        'version': 's',
        'title_of_a_work': 't',
        'form_subdivision': 'v',
        'control_subfield': 'w',
        'general_subdivision': 'x',
        'chronological_subdivision': 'y',
        'geographic_subdivision': 'z',
        'authority_record_control_number_or_standard_number': '0',
        'relationship_code': '4',
        'institution_to_which_field_applies': '5',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }
    order = utils.map_order(field_map, value)

    indicator_map1 = {'Family name': '3', 'Forename': '0', 'Surname': '1'}
    return {
        '__order__':
        tuple(order) if len(order) else None,
        '0':
        utils.reverse_force_list(
            value.get('authority_record_control_number_or_standard_number')),
        '5':
        utils.reverse_force_list(
            value.get('institution_to_which_field_applies')),
        '4':
        utils.reverse_force_list(value.get('relationship_code')),
        '6':
        value.get('linkage'),
        '8':
        utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        'a':
        value.get('personal_name'),
        'c':
        utils.reverse_force_list(
            value.get('titles_and_other_words_associated_with_a_name')),
        'b':
        value.get('numeration'),
        'e':
        utils.reverse_force_list(value.get('relator_term')),
        'd':
        value.get('dates_associated_with_a_name'),
        'g':
        utils.reverse_force_list(value.get('miscellaneous_information')),
        'f':
        value.get('date_of_a_work'),
        'i':
        utils.reverse_force_list(value.get('relationship_information')),
        'h':
        value.get('medium'),
        'k':
        utils.reverse_force_list(value.get('form_subheading')),
        'j':
        utils.reverse_force_list(value.get('attribution_qualifier')),
        'm':
        utils.reverse_force_list(value.get('medium_of_performance_for_music')),
        'l':
        value.get('language_of_a_work'),
        'o':
        value.get('arranged_statement_for_music'),
        'n':
        utils.reverse_force_list(
            value.get('number_of_part_section_of_a_work')),
        'q':
        value.get('fuller_form_of_name'),
        'p':
        utils.reverse_force_list(value.get('name_of_part_section_of_a_work')),
        's':
        value.get('version'),
        'r':
        value.get('key_for_music'),
        't':
        value.get('title_of_a_work'),
        'w':
        value.get('control_subfield'),
        'v':
        utils.reverse_force_list(value.get('form_subdivision')),
        'y':
        utils.reverse_force_list(value.get('chronological_subdivision')),
        'x':
        utils.reverse_force_list(value.get('general_subdivision')),
        'z':
        utils.reverse_force_list(value.get('geographic_subdivision')),
        '$ind1':
        indicator_map1.get(value.get('type_of_personal_name_entry_element'),
                           '_'),
        '$ind2':
        '_',
    }
Esempio n. 49
0
def reverse_series_added_entry_personal_name(self, key, value):
    """Reverse - Series Added Entry-Personal Name."""
    indicator_map1 = {"Family name": "3", "Forename": "0", "Surname": "1"}
    field_map = {
        "titles_and_other_words_associated_with_a_name": "c",
        "form_subheading": "k",
        "control_subfield": "7",
        "attribution_qualifier": "j",
        "institution_to_which_field_applies": "5",
        "international_standard_serial_number": "x",
        "personal_name": "a",
        "version": "s",
        "title_of_a_work": "t",
        "dates_associated_with_a_name": "d",
        "affiliation": "u",
        "language_of_a_work": "l",
        "field_link_and_sequence_number": "8",
        "fuller_form_of_name": "q",
        "volume_sequential_designation": "v",
        "medium_of_performance_for_music": "m",
        "medium": "h",
        "authority_record_control_number_or_standard_number": "0",
        "linkage": "6",
        "materials_specified": "3",
        "key_for_music": "r",
        "relator_code": "4",
        "relator_term": "e",
        "number_of_part_section_of_a_work": "n",
        "arranged_statement_for_music": "o",
        "miscellaneous_information": "g",
        "bibliographic_record_control_number": "w",
        "numeration": "b",
        "name_of_part_section_of_a_work": "p",
        "date_of_a_work": "f",
    }

    order = utils.map_order(field_map, value)

    if indicator_map1.get(value.get("type_of_personal_name_entry_element"),
                          "7") != "7":
        try:
            order.remove(field_map.get("type_of_personal_name_entry_element"))
        except ValueError:
            pass

    return {
        "__order__":
        tuple(order) if len(order) else None,
        "c":
        utils.reverse_force_list(
            value.get("titles_and_other_words_associated_with_a_name")),
        "k":
        utils.reverse_force_list(value.get("form_subheading")),
        "7":
        value.get("control_subfield"),
        "j":
        utils.reverse_force_list(value.get("attribution_qualifier")),
        "5":
        utils.reverse_force_list(
            value.get("institution_to_which_field_applies")),
        "x":
        value.get("international_standard_serial_number"),
        "a":
        value.get("personal_name"),
        "s":
        value.get("version"),
        "t":
        value.get("title_of_a_work"),
        "d":
        value.get("dates_associated_with_a_name"),
        "u":
        value.get("affiliation"),
        "l":
        value.get("language_of_a_work"),
        "8":
        utils.reverse_force_list(value.get("field_link_and_sequence_number")),
        "q":
        value.get("fuller_form_of_name"),
        "v":
        value.get("volume_sequential_designation"),
        "m":
        utils.reverse_force_list(value.get("medium_of_performance_for_music")),
        "h":
        value.get("medium"),
        "0":
        utils.reverse_force_list(
            value.get("authority_record_control_number_or_standard_number")),
        "6":
        value.get("linkage"),
        "3":
        value.get("materials_specified"),
        "r":
        value.get("key_for_music"),
        "4":
        utils.reverse_force_list(value.get("relator_code")),
        "e":
        utils.reverse_force_list(value.get("relator_term")),
        "n":
        utils.reverse_force_list(
            value.get("number_of_part_section_of_a_work")),
        "o":
        value.get("arranged_statement_for_music"),
        "g":
        utils.reverse_force_list(value.get("miscellaneous_information")),
        "w":
        utils.reverse_force_list(
            value.get("bibliographic_record_control_number")),
        "b":
        value.get("numeration"),
        "p":
        utils.reverse_force_list(value.get("name_of_part_section_of_a_work")),
        "f":
        value.get("date_of_a_work"),
        "$ind1":
        indicator_map1.get(value.get("type_of_personal_name_entry_element"),
                           "_"),
        "$ind2":
        "_",
    }
Esempio n. 50
0
File: ad5xx.py Progetto: N03/invenio
def reverse_see_also_from_tracing_meeting_name(self, key, value):
    """Reverse - See Also From Tracing-Meeting Name."""
    field_map = {
        'meeting_name_or_jurisdiction_name_as_entry_element': 'a',
        'location_of_meeting': 'c',
        'date_of_meeting': 'd',
        'subordinate_unit': 'e',
        'date_of_a_work': 'f',
        'miscellaneous_information': 'g',
        'medium': 'h',
        'relationship_information': 'i',
        'relator_term': 'j',
        'form_subheading': 'k',
        'language_of_a_work': 'l',
        'number_of_part_section_meeting': 'n',
        'name_of_part_section_of_a_work': 'p',
        'name_of_meeting_following_jurisdiction_name_entry_element': 'q',
        'version': 's',
        'title_of_a_work': 't',
        'form_subdivision': 'v',
        'control_subfield': 'w',
        'general_subdivision': 'x',
        'chronological_subdivision': 'y',
        'geographic_subdivision': 'z',
        'authority_record_control_number_or_standard_number': '0',
        'relationship_code': '4',
        'institution_to_which_field_applies': '5',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }
    order = utils.map_order(field_map, value)

    indicator_map1 = {
        'Inverted name': '0',
        'Jurisdiction name': '1',
        'Name in direct order': '2'
    }
    return {
        '__order__':
        tuple(order) if len(order) else None,
        '0':
        utils.reverse_force_list(
            value.get('authority_record_control_number_or_standard_number')),
        '5':
        utils.reverse_force_list(
            value.get('institution_to_which_field_applies')),
        '4':
        utils.reverse_force_list(value.get('relationship_code')),
        '6':
        value.get('linkage'),
        '8':
        utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        'a':
        value.get('meeting_name_or_jurisdiction_name_as_entry_element'),
        'c':
        utils.reverse_force_list(value.get('location_of_meeting')),
        'e':
        utils.reverse_force_list(value.get('subordinate_unit')),
        'd':
        value.get('date_of_meeting'),
        'g':
        utils.reverse_force_list(value.get('miscellaneous_information')),
        'f':
        value.get('date_of_a_work'),
        'i':
        utils.reverse_force_list(value.get('relationship_information')),
        'h':
        value.get('medium'),
        'k':
        utils.reverse_force_list(value.get('form_subheading')),
        'j':
        utils.reverse_force_list(value.get('relator_term')),
        'l':
        value.get('language_of_a_work'),
        'n':
        utils.reverse_force_list(value.get('number_of_part_section_meeting')),
        'q':
        value.get('name_of_meeting_following_jurisdiction_name_entry_element'),
        'p':
        utils.reverse_force_list(value.get('name_of_part_section_of_a_work')),
        's':
        value.get('version'),
        't':
        value.get('title_of_a_work'),
        'w':
        value.get('control_subfield'),
        'v':
        utils.reverse_force_list(value.get('form_subdivision')),
        'y':
        utils.reverse_force_list(value.get('chronological_subdivision')),
        'x':
        utils.reverse_force_list(value.get('general_subdivision')),
        'z':
        utils.reverse_force_list(value.get('geographic_subdivision')),
        '$ind1':
        indicator_map1.get(value.get('type_of_meeting_name_entry_element'),
                           '_'),
        '$ind2':
        '_',
    }
Esempio n. 51
0
def reverse_series_added_entry_uniform_title(self, key, value):
    """Reverse - Series Added Entry-Uniform Title."""
    indicator_map2 = {str(x): str(x) for x in range(10)}
    field_map = {
        "form_subheading": "k",
        "control_subfield": "7",
        "name_of_part_section_of_a_work": "p",
        "institution_to_which_field_applies": "5",
        "international_standard_serial_number": "x",
        "uniform_title": "a",
        "title_of_a_work": "t",
        "date_of_treaty_signing": "d",
        "language_of_a_work": "l",
        "field_link_and_sequence_number": "8",
        "medium_of_performance_for_music": "m",
        "medium": "h",
        "authority_record_control_number_or_standard_number": "0",
        "linkage": "6",
        "materials_specified": "3",
        "key_for_music": "r",
        "volume_sequential_designation": "v",
        "version": "s",
        "arranged_statement_for_music": "o",
        "miscellaneous_information": "g",
        "bibliographic_record_control_number": "w",
        "number_of_part_section_of_a_work": "n",
        "date_of_a_work": "f",
    }

    order = utils.map_order(field_map, value)

    if indicator_map2.get(value.get("nonfiling_characters"), "7") != "7":
        try:
            order.remove(field_map.get("nonfiling_characters"))
        except ValueError:
            pass

    return {
        "__order__":
        tuple(order) if len(order) else None,
        "k":
        utils.reverse_force_list(value.get("form_subheading")),
        "7":
        value.get("control_subfield"),
        "p":
        utils.reverse_force_list(value.get("name_of_part_section_of_a_work")),
        "5":
        utils.reverse_force_list(
            value.get("institution_to_which_field_applies")),
        "x":
        value.get("international_standard_serial_number"),
        "a":
        value.get("uniform_title"),
        "t":
        value.get("title_of_a_work"),
        "d":
        utils.reverse_force_list(value.get("date_of_treaty_signing")),
        "l":
        value.get("language_of_a_work"),
        "8":
        utils.reverse_force_list(value.get("field_link_and_sequence_number")),
        "m":
        utils.reverse_force_list(value.get("medium_of_performance_for_music")),
        "h":
        value.get("medium"),
        "0":
        utils.reverse_force_list(
            value.get("authority_record_control_number_or_standard_number")),
        "6":
        value.get("linkage"),
        "3":
        value.get("materials_specified"),
        "r":
        value.get("key_for_music"),
        "v":
        value.get("volume_sequential_designation"),
        "s":
        value.get("version"),
        "o":
        value.get("arranged_statement_for_music"),
        "g":
        utils.reverse_force_list(value.get("miscellaneous_information")),
        "w":
        utils.reverse_force_list(
            value.get("bibliographic_record_control_number")),
        "n":
        utils.reverse_force_list(
            value.get("number_of_part_section_of_a_work")),
        "f":
        value.get("date_of_a_work"),
        "$ind1":
        "_",
        "$ind2":
        indicator_map2.get(value.get("nonfiling_characters"), "_"),
    }
Esempio n. 52
0
File: ad5xx.py Progetto: N03/invenio
def reverse_see_also_from_tracing_uniform_title(self, key, value):
    """Reverse - See Also From Tracing-Uniform Title."""
    field_map = {
        'uniform_title': 'a',
        'date_of_treaty_signing': 'd',
        'date_of_a_work': 'f',
        'miscellaneous_information': 'g',
        'medium': 'h',
        'relationship_information': 'i',
        'form_subheading': 'k',
        'language_of_a_work': 'l',
        'medium_of_performance_for_music': 'm',
        'number_of_part_section_of_a_work': 'n',
        'arranged_statement_for_music': 'o',
        'name_of_part_section_of_a_work': 'p',
        'key_for_music': 'r',
        'version': 's',
        'title_of_a_work': 't',
        'form_subdivision': 'v',
        'control_subfield': 'w',
        'general_subdivision': 'x',
        'chronological_subdivision': 'y',
        'geographic_subdivision': 'z',
        'authority_record_control_number_or_standard_number': '0',
        'relationship_code': '4',
        'institution_to_which_field_applies': '5',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }
    order = utils.map_order(field_map, value)

    indicator_map2 = {
        '0': '0',
        '1': '1',
        '2': '2',
        '3': '3',
        '4': '4',
        '5': '5',
        '6': '6',
        '7': '7',
        '8': '8',
        '9': '9'
    }
    return {
        '__order__':
        tuple(order) if len(order) else None,
        '0':
        utils.reverse_force_list(
            value.get('authority_record_control_number_or_standard_number')),
        '5':
        utils.reverse_force_list(
            value.get('institution_to_which_field_applies')),
        '4':
        utils.reverse_force_list(value.get('relationship_code')),
        '6':
        value.get('linkage'),
        '8':
        utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        'a':
        value.get('uniform_title'),
        'd':
        utils.reverse_force_list(value.get('date_of_treaty_signing')),
        'g':
        utils.reverse_force_list(value.get('miscellaneous_information')),
        'f':
        value.get('date_of_a_work'),
        'i':
        utils.reverse_force_list(value.get('relationship_information')),
        'h':
        value.get('medium'),
        'k':
        utils.reverse_force_list(value.get('form_subheading')),
        'm':
        utils.reverse_force_list(value.get('medium_of_performance_for_music')),
        'l':
        value.get('language_of_a_work'),
        'o':
        value.get('arranged_statement_for_music'),
        'n':
        utils.reverse_force_list(
            value.get('number_of_part_section_of_a_work')),
        'p':
        utils.reverse_force_list(value.get('name_of_part_section_of_a_work')),
        's':
        value.get('version'),
        'r':
        value.get('key_for_music'),
        't':
        value.get('title_of_a_work'),
        'w':
        value.get('control_subfield'),
        'v':
        utils.reverse_force_list(value.get('form_subdivision')),
        'y':
        utils.reverse_force_list(value.get('chronological_subdivision')),
        'x':
        utils.reverse_force_list(value.get('general_subdivision')),
        'z':
        utils.reverse_force_list(value.get('geographic_subdivision')),
        '$ind1':
        '_',
        '$ind2':
        indicator_map2.get(value.get('nonfiling_characters'), '_'),
    }
Esempio n. 53
0
def reverse_added_entry_meeting_name(self, key, value):
    """Reverse - Added Entry-Meeting Name."""
    indicator_map1 = {
        'Inverted name': '0',
        'Jurisdiction name': '1',
        'Name in direct order': '2',
    }

    indicator_map2 = {
        'No information provided': '_',
        'Analytical entry': '2',
    }

    field_map = {
        'meeting_name_or_jurisdiction_name_as_entry_element': 'a',
        'location_of_meeting': 'c',
        'date_of_meeting': 'd',
        'subordinate_unit': 'e',
        'date_of_a_work': 'f',
        'miscellaneous_information': 'g',
        'medium': 'h',
        'relationship_information': 'i',
        'relator_term': 'j',
        'form_subheading': 'k',
        'language_of_a_work': 'l',
        'number_of_part_section_meeting': 'n',
        'name_of_part_section_of_a_work': 'p',
        'name_of_meeting_following_jurisdiction_name_entry_element': 'q',
        'version': 's',
        'title_of_a_work': 't',
        'affiliation': 'u',
        'international_standard_serial_number': 'x',
        'authority_record_control_number_or_standard_number': '0',
        'materials_specified': '3',
        'relator_code': '4',
        'institution_to_which_field_applies': '5',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }

    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        'a': value.get('meeting_name_or_jurisdiction_name_as_entry_element'),
        'c': value.get('location_of_meeting'),
        'd': value.get('date_of_meeting'),
        'e': utils.reverse_force_list(value.get('subordinate_unit')),
        'f': value.get('date_of_a_work'),
        'g': value.get('miscellaneous_information'),
        'h': value.get('medium'),
        'i': utils.reverse_force_list(value.get('relationship_information')),
        'j': utils.reverse_force_list(value.get('relator_term')),
        'k': utils.reverse_force_list(value.get('form_subheading')),
        'l': value.get('language_of_a_work'),
        'n': utils.reverse_force_list(value.get('number_of_part_section_meeting')),
        'p': utils.reverse_force_list(value.get('name_of_part_section_of_a_work')),
        'q': value.get('name_of_meeting_following_jurisdiction_name_entry_element'),
        's': value.get('version'),
        't': value.get('title_of_a_work'),
        'u': value.get('affiliation'),
        'x': value.get('international_standard_serial_number'),
        '0': utils.reverse_force_list(
            value.get('authority_record_control_number_or_standard_number')
        ),
        '3': value.get('materials_specified'),
        '4': utils.reverse_force_list(value.get('relator_code')),
        '5': value.get('institution_to_which_field_applies'),
        '6': value.get('linkage'),
        '8': utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        '$ind1': indicator_map1.get(value.get('type_of_meeting_name_entry_element'), '_'),
        '$ind2': indicator_map2.get(value.get('type_of_added_entry'), '_'),
    }
Esempio n. 54
0
def reverse_alternate_graphic_representation(self, key, value):
    """Reverse - Alternate Graphic Representation."""
    field_map = {
        'same_as_associated_field_a': 'a',
        'same_as_associated_field_b': 'b',
        'same_as_associated_field_c': 'c',
        'same_as_associated_field_d': 'd',
        'same_as_associated_field_e': 'e',
        'same_as_associated_field_f': 'f',
        'same_as_associated_field_g': 'g',
        'same_as_associated_field_h': 'h',
        'same_as_associated_field_i': 'i',
        'same_as_associated_field_j': 'j',
        'same_as_associated_field_k': 'k',
        'same_as_associated_field_l': 'l',
        'same_as_associated_field_m': 'm',
        'same_as_associated_field_n': 'n',
        'same_as_associated_field_o': 'o',
        'same_as_associated_field_p': 'p',
        'same_as_associated_field_q': 'q',
        'same_as_associated_field_r': 'r',
        'same_as_associated_field_s': 's',
        'same_as_associated_field_t': 't',
        'same_as_associated_field_u': 'u',
        'same_as_associated_field_v': 'v',
        'same_as_associated_field_w': 'w',
        'same_as_associated_field_x': 'x',
        'same_as_associated_field_y': 'y',
        'same_as_associated_field_z': 'z',
        'same_as_associated_field_0': '0',
        'same_as_associated_field_1': '1',
        'same_as_associated_field_2': '2',
        'same_as_associated_field_3': '3',
        'same_as_associated_field_4': '4',
        'same_as_associated_field_5': '5',
        'linkage': '6',
        'same_as_associated_field_7': '7',
        'same_as_associated_field_8': '8',
        'same_as_associated_field_9': '9',
    }
    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        '1': utils.reverse_force_list(value.get('same_as_associated_field_1')),
        '0': utils.reverse_force_list(value.get('same_as_associated_field_0')),
        '3': utils.reverse_force_list(value.get('same_as_associated_field_3')),
        '2': utils.reverse_force_list(value.get('same_as_associated_field_2')),
        '5': utils.reverse_force_list(value.get('same_as_associated_field_5')),
        '4': utils.reverse_force_list(value.get('same_as_associated_field_4')),
        '7': utils.reverse_force_list(value.get('same_as_associated_field_7')),
        '6': value.get('linkage'),
        '9': utils.reverse_force_list(value.get('same_as_associated_field_9')),
        '8': utils.reverse_force_list(value.get('same_as_associated_field_8')),
        'a': utils.reverse_force_list(value.get('same_as_associated_field_a')),
        'c': utils.reverse_force_list(value.get('same_as_associated_field_c')),
        'b': utils.reverse_force_list(value.get('same_as_associated_field_b')),
        'e': utils.reverse_force_list(value.get('same_as_associated_field_e')),
        'd': utils.reverse_force_list(value.get('same_as_associated_field_d')),
        'g': utils.reverse_force_list(value.get('same_as_associated_field_g')),
        'f': utils.reverse_force_list(value.get('same_as_associated_field_f')),
        'i': utils.reverse_force_list(value.get('same_as_associated_field_i')),
        'h': utils.reverse_force_list(value.get('same_as_associated_field_h')),
        'k': utils.reverse_force_list(value.get('same_as_associated_field_k')),
        'j': utils.reverse_force_list(value.get('same_as_associated_field_j')),
        'm': utils.reverse_force_list(value.get('same_as_associated_field_m')),
        'l': utils.reverse_force_list(value.get('same_as_associated_field_l')),
        'o': utils.reverse_force_list(value.get('same_as_associated_field_o')),
        'n': utils.reverse_force_list(value.get('same_as_associated_field_n')),
        'q': utils.reverse_force_list(value.get('same_as_associated_field_q')),
        'p': utils.reverse_force_list(value.get('same_as_associated_field_p')),
        's': utils.reverse_force_list(value.get('same_as_associated_field_s')),
        'r': utils.reverse_force_list(value.get('same_as_associated_field_r')),
        'u': utils.reverse_force_list(value.get('same_as_associated_field_u')),
        't': utils.reverse_force_list(value.get('same_as_associated_field_t')),
        'w': utils.reverse_force_list(value.get('same_as_associated_field_w')),
        'v': utils.reverse_force_list(value.get('same_as_associated_field_v')),
        'y': utils.reverse_force_list(value.get('same_as_associated_field_y')),
        'x': utils.reverse_force_list(value.get('same_as_associated_field_x')),
        'z': utils.reverse_force_list(value.get('same_as_associated_field_z')),
        '$ind1': value.get('ind1', '_'),
        '$ind2': value.get('ind2', '_'),
    }
Esempio n. 55
0
def reverse_added_entry_uniform_title(self, key, value):
    """Reverse - Added Entry-Uniform Title."""
    valid_nonfiling_characters = [x for x in range(10)]

    indicator_map2 = {
        'No information provided': '_',
        'Analytical entry': '2',
    }

    field_map = {
        'uniform_title': 'a',
        'date_of_treaty_signing': 'd',
        'date_of_a_work': 'f',
        'miscellaneous_information': 'g',
        'medium': 'h',
        'relationship_information': 'i',
        'form_subheading': 'k',
        'language_of_a_work': 'l',
        'medium_of_performance_for_music': 'm',
        'number_of_part_section_of_a_work': 'n',
        'arranged_statement_for_music': 'o',
        'name_of_part_section_of_a_work': 'p',
        'key_for_music': 'r',
        'version': 's',
        'title_of_a_work': 't',
        'international_standard_serial_number': 'x',
        'authority_record_control_number_or_standard_number': '0',
        'materials_specified': '3',
        'institution_to_which_field_applies': '5',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }

    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        'a': value.get('uniform_title'),
        'd': utils.reverse_force_list(value.get('date_of_treaty_signing')),
        'f': value.get('date_of_a_work'),
        'g': value.get('miscellaneous_information'),
        'h': value.get('medium'),
        'i': utils.reverse_force_list(
            value.get('relationship_information')
        ),
        'k': utils.reverse_force_list(value.get('form_subheading')),
        'l': value.get('language_of_a_work'),
        'm': utils.reverse_force_list(value.get('medium_of_performance_for_music')),
        'n': utils.reverse_force_list(value.get('number_of_part_section_of_a_work')),
        'o': value.get('arranged_statement_for_music'),
        'p': utils.reverse_force_list(value.get('name_of_part_section_of_a_work')),
        'r': value.get('key_for_music'),
        's': value.get('version'),
        't': value.get('title_of_a_work'),
        'x': value.get('international_standard_serial_number'),
        '0': utils.reverse_force_list(
            value.get('authority_record_control_number_or_standard_number')
        ),
        '3': value.get('materials_specified'),
        '5': value.get('institution_to_which_field_applies'),
        '6': value.get('linkage'),
        '8': utils.reverse_force_list(
            value.get('field_link_and_sequence_number')
        ),
        '$ind1': value.get('nonfiling_characters') if value.get('nonfiling_characters') in valid_nonfiling_characters else '_',
        '$ind2': indicator_map2.get(value.get('type_of_added_entry'), '_'),
    }
Esempio n. 56
0
File: bd3xx.py Progetto: tind/dojson
def reverse_trade_availability_information(self, key, value):
    """Reverse - Trade Availability Information."""
    field_map = {
        'publishers_compressed_title_identification': 'a',
        'detailed_date_of_publication': 'b',
        'availability_status_code': 'c',
        'expected_next_availability_date': 'd',
        'note': 'e',
        'publishers_discount_category': 'f',
        'date_made_out_of_print': 'g',
        'iso_country_code': 'j',
        'marc_country_code': 'k',
        'identification_of_agency': 'm',
        'source_of_availability_status_code': '2',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }

    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        'a': utils.reverse_force_list(value.get('publishers_compressed_title_identification')),
        'c': utils.reverse_force_list(value.get('availability_status_code')),
        'b': utils.reverse_force_list(value.get('detailed_date_of_publication')),
        'e': utils.reverse_force_list(value.get('note')),
        'd': utils.reverse_force_list(value.get('expected_next_availability_date')),
        'g': utils.reverse_force_list(value.get('date_made_out_of_print')),
        'f': utils.reverse_force_list(value.get('publisher_s_discount_category')),
        'k': utils.reverse_force_list(value.get('marc_country_code')),
        'j': utils.reverse_force_list(value.get('iso_country_code')),
        'm': utils.reverse_force_list(value.get('identification_of_agency')),
        '2': utils.reverse_force_list(value.get('source_of_availability_status_code')),
        '6': utils.reverse_force_list(value.get('linkage')),
        '8': utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        '$ind1': '_',
        '$ind2': '_',
    }
Esempio n. 57
0
File: bd1xx.py Progetto: tind/dojson
def reverse_main_entry_personal_name(self, key, value):
    """Reverse - Main Entry-Personal Name."""
    indicator_map1 = {
        'Forename': '0',
        'Surname': '1',
        'Family name': '3',
    }

    field_map = {
        'personal_name': 'a',
        'numeration': 'b',
        'titles_and_words_associated_with_a_name': 'c',
        'dates_associated_with_a_name': 'd',
        'relator_term': 'e',
        'date_of_a_work': 'f',
        'miscellaneous_information': 'g',
        'attribution_qualifier': 'j',
        'form_subheading': 'k',
        'language_of_a_work': 'l',
        'number_of_part_section_of_a_work': 'n',
        'name_of_part_section_of_a_work': 'p',
        'fuller_form_of_name': 'q',
        'title_of_a_work': 't',
        'affiliation': 'u',
        'authority_record_control_number_or_standard_number': '0',
        'relator_code': '4',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }

    order = utils.map_order(field_map, value)

    return {
        '__order__':
        tuple(order) if len(order) else None,
        'a':
        value.get('personal_name'),
        'c':
        utils.reverse_force_list(
            value.get('titles_and_words_associated_with_a_name')),
        'b':
        value.get('numeration'),
        'e':
        utils.reverse_force_list(value.get('relator_term')),
        'd':
        value.get('dates_associated_with_a_name'),
        'g':
        value.get('miscellaneous_information'),
        'f':
        value.get('date_of_a_work'),
        'k':
        utils.reverse_force_list(value.get('form_subheading')),
        'j':
        utils.reverse_force_list(value.get('attribution_qualifier')),
        'l':
        value.get('language_of_a_work'),
        'p':
        utils.reverse_force_list(value.get('name_of_part_section_of_a_work')),
        'n':
        utils.reverse_force_list(
            value.get('number_of_part_section_of_a_work')),
        'q':
        value.get('fuller_form_of_name'),
        '0':
        utils.reverse_force_list(
            value.get('authority_record_control_number_or_standard_number')),
        'u':
        value.get('affiliation'),
        '4':
        utils.reverse_force_list(value.get('relator_code')),
        '6':
        value.get('linkage'),
        '8':
        utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        't':
        value.get('title_of_a_work'),
        '$ind1':
        indicator_map1.get(value.get('type_of_personal_name_entry_element'),
                           '_'),
        '$ind2':
        '_',
    }
Esempio n. 58
0
File: bd3xx.py Progetto: tind/dojson
def reverse_normalized_date_and_sequential_designation(self, key, value):
    """Reverse - Normalized Date and Sequential Designation."""
    indicator_map1 = {
        'No information provided': '_',
        'Starting information': '0',
        'Ending information': '1',
    }
    indicator_map2 = {
        'Not specified': '_',
        'Closed': '0',
        'Open': '1',
    }

    field_map = {
        'first_level_of_enumeration': 'a',
        'second_level_of_enumeration': 'b',
        'third_level_of_enumeration': 'c',
        'fourth_level_of_enumeration': 'd',
        'fifth_level_of_enumeration': 'e',
        'sixth_level_of_enumeration': 'f',
        'alternative_numbering_scheme_first_level_of': 'g',
        'alternative_numbering_scheme_second_level_of': 'h',
        'first_level_of_chronology': 'i',
        'second_level_of_chronology': 'j',
        'third_level_of_chronology': 'k',
        'fourth_level_of_chronology': 'l',
        'alternative_numbering_scheme_chronology': 'm',
        'first_level_textual_designation': 'u',
        'first_level_of_chronology_issuance': 'v',
        'nonpublic_note': 'x',
        'public_note': 'z',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }

    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        'a': utils.reverse_force_list(value.get('first_level_of_enumeration')),
        'x': utils.reverse_force_list(value.get('nonpublic_note')),
        'c': utils.reverse_force_list(value.get('third_level_of_enumeration')),
        'b': utils.reverse_force_list(value.get('second_level_of_enumeration')),
        'e': utils.reverse_force_list(value.get('fifth_level_of_enumeration')),
        'd': utils.reverse_force_list(value.get('fourth_level_of_enumeration')),
        'g': utils.reverse_force_list(value.get('alternative_numbering_scheme_first_level_of_enumeration')),
        'f': utils.reverse_force_list(value.get('sixth_level_of_enumeration')),
        'i': utils.reverse_force_list(value.get('first_level_of_chronology')),
        'h': utils.reverse_force_list(value.get('alternative_numbering_scheme_second_level_of_enumeration')),
        'k': utils.reverse_force_list(value.get('third_level_of_chronology')),
        'j': utils.reverse_force_list(value.get('second_level_of_chronology')),
        'm': utils.reverse_force_list(value.get('alternative_numbering_scheme_chronology')),
        'l': utils.reverse_force_list(value.get('fourth_level_of_chronology')),
        'u': utils.reverse_force_list(value.get('first_level_textual_designation')),
        '6': utils.reverse_force_list(value.get('linkage')),
        '8': utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        'z': utils.reverse_force_list(value.get('public_note')),
        'v': utils.reverse_force_list(value.get('first_level_of_chronology_issuance')),
        '$ind1': indicator_map1.get(value.get('start_end_designator'), '_'),
        '$ind2': indicator_map2.get(value.get('state_of_issuance'), '_'),
    }
Esempio n. 59
0
File: bd1xx.py Progetto: tind/dojson
def reverse_main_entry_uniform_title(self, key, value):
    """Reverse - Main Entry-Uniform Title."""
    valid_nonfiling_characters = [x for x in range(10)]
    field_map = {
        'uniform_title': 'a',
        'date_of_treaty_signing': 'd',
        'date_of_a_work': 'f',
        'miscellaneous_information': 'g',
        'medium': 'h',
        'form_subheading': 'k',
        'language_of_a_work': 'l',
        'medium_of_performance_for_music': 'm',
        'number_of_part_section_of_a_work': 'n',
        'arranged_statement_for_music': 'o',
        'name_of_part_section_of_a_work': 'p',
        'key_for_music': 'r',
        'version': 's',
        'title_of_a_work': 't',
        'authority_record_control_number_or_standard_number': '0',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }

    order = utils.map_order(field_map, value)

    return {
        '__order__':
        tuple(order) if len(order) else None,
        'a':
        value.get('uniform_title'),
        'p':
        utils.reverse_force_list(value.get('name_of_part_section_of_a_work')),
        'd':
        utils.reverse_force_list(value.get('date_of_treaty_signing')),
        'g':
        value.get('miscellaneous_information'),
        'f':
        value.get('date_of_a_work'),
        'h':
        value.get('medium'),
        'k':
        utils.reverse_force_list(value.get('form_subheading')),
        'm':
        utils.reverse_force_list(value.get('medium_of_performance_for_music')),
        'l':
        value.get('language_of_a_work'),
        'o':
        value.get('arranged_statement_for_music'),
        'n':
        utils.reverse_force_list(
            value.get('number_of_part_section_of_a_work')),
        '0':
        utils.reverse_force_list(
            value.get('authority_record_control_number_or_standard_number')),
        's':
        value.get('version'),
        'r':
        value.get('key_for_music'),
        't':
        value.get('title_of_a_work'),
        '6':
        value.get('linkage'),
        '8':
        utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        '$ind1':
        value.get('nonfiling_characters') if value.get('nonfiling_characters')
        in valid_nonfiling_characters else '_',
        '$ind2':
        '_',
    }
Esempio n. 60
0
File: bd3xx.py Progetto: tind/dojson
def reverse_trade_price(self, key, value):
    """Reverse - Trade Price."""
    field_map = {
        'price_type_code': 'a',
        'price_amount': 'b',
        'currency_code': 'c',
        'unit_of_pricing': 'd',
        'price_note': 'e',
        'price_effective_from': 'f',
        'price_effective_until': 'g',
        'tax_rate_1': 'h',
        'tax_rate_2': 'i',
        'iso_country_code': 'j',
        'marc_country_code': 'k',
        'identification_of_pricing_entity': 'm',
        'source_of_price_type_code': '2',
        'linkage': '6',
        'field_link_and_sequence_number': '8',
    }

    order = utils.map_order(field_map, value)

    return {
        '__order__': tuple(order) if len(order) else None,
        'a': utils.reverse_force_list(value.get('price_type_code')),
        'c': utils.reverse_force_list(value.get('currency_code')),
        'b': utils.reverse_force_list(value.get('price_amount')),
        'e': utils.reverse_force_list(value.get('price_note')),
        'd': utils.reverse_force_list(value.get('unit_of_pricing')),
        'g': utils.reverse_force_list(value.get('price_effective_until')),
        'f': utils.reverse_force_list(value.get('price_effective_from')),
        'i': utils.reverse_force_list(value.get('tax_rate_2')),
        'h': utils.reverse_force_list(value.get('tax_rate_1')),
        'k': utils.reverse_force_list(value.get('marc_country_code')),
        'j': utils.reverse_force_list(value.get('iso_country_code')),
        'm': utils.reverse_force_list(value.get('identification_of_pricing_entity')),
        '2': utils.reverse_force_list(value.get('source_of_price_type_code')),
        '6': utils.reverse_force_list(value.get('linkage')),
        '8': utils.reverse_force_list(value.get('field_link_and_sequence_number')),
        '$ind1': '_',
        '$ind2': '_',
    }