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": "_", }
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": "_", }
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': '_', }
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": "_", }
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"), "_"), }
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': '_', }
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': '_', }
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"), "_"), }
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': '_', }
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'), '_'), }
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'), '_'), }
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': '_', }
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'), '_'), }
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": "_", }
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'), '_'), }
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'), '_'), }
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'), '_'), }
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"), "_"), }
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'), '_'), }
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": "_", }
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": "_", }
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': '_', }
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": "_", }
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': '_', }
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': '_', }
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'), '_'), }
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': '_', }
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': '_', }
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': '_', }
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': '_', }
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': '_', }
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': '_', }
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': '_', }
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': '_', }
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'), '_'), }
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": "_", }
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'), '_') }
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', '_')), }
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': '_', }
def test_force_list_roundtrips(): assert reverse_force_list(force_list('foo')) == 'foo'
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": "_", }
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'), '_'), }
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': '_', }
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'), '_'), }
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"), "_"), }
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": "_", }
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'), '_'), }
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': '_', }
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": "_", }
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': '_', }
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"), "_"), }
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'), '_'), }
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'), '_'), }
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', '_'), }
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'), '_'), }
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': '_', }
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': '_', }
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'), '_'), }
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': '_', }
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': '_', }