diff --git a/test/dataextractors/test_simple.py b/test/dataextractors/test_simple.py index 8a4d47e4bb45fb6e15da3dba1ba9cbd6dcf37f47..ead0019c29d476cdc54f4d563b968a47e79a69d4 100644 --- a/test/dataextractors/test_simple.py +++ b/test/dataextractors/test_simple.py @@ -9,7 +9,7 @@ from travelogues_extraction.getrecords.session import RecordRetriever from travelogues_extraction.getrecords.acnumber_extractor import extract_ac_from_series from travelogues_extraction.dataextractors.dataextractors.simple import VolltextAndBarcode, Ausgabe, Verlagsort, \ VerlegerDrucker, Erscheinungsjahr, ErscheinungsjahrSortierform, Kollation, Illustrationen, Format, Anmerkungen, \ - Sprache, OriginalSprache, BemerkungenZurSprache, Standardnummer, ArtDesInhalts + Sprache, OriginalSprache, BemerkungenZurSprache, Standardnummer, ArtDesInhalts, Inhalt from travelogues_extraction.dataextractors.dataextractors.index import IndexSetter @@ -26,7 +26,7 @@ async def test_volltext_and_barcode_and_ausgabe_and_verlagsort_and_verleger_druc [IndexSetter.column, ] + VolltextAndBarcode.get_columns_names_I_work_on() + [Ausgabe.column, Verlagsort.column, VerlegerDrucker.column, Erscheinungsjahr.column, ErscheinungsjahrSortierform.column, ] + Illustrationen.get_columns_names_I_work_on() \ + [Format.column, ] + Anmerkungen.get_columns_names_I_work_on() + [Sprache.column, OriginalSprache.column, - BemerkungenZurSprache.column, ArtDesInhalts.column] + BemerkungenZurSprache.column, ArtDesInhalts.column, Inhalt.column] ) index_setter = IndexSetter(target_dataframe) volltext_and_barcode = VolltextAndBarcode(target_dataframe) @@ -43,6 +43,7 @@ async def test_volltext_and_barcode_and_ausgabe_and_verlagsort_and_verleger_druc originalsprache = OriginalSprache(target_dataframe) bemerkungenZurSprache = BemerkungenZurSprache(target_dataframe) artDesInhalts = ArtDesInhalts(target_dataframe) + inhalt = Inhalt(target_dataframe) index = 0 stop = 3 @@ -106,6 +107,7 @@ async def test_volltext_and_barcode_and_ausgabe_and_verlagsort_and_verleger_druc await originalsprache.write(record) await bemerkungenZurSprache.write(record) await artDesInhalts.write(record) + await inhalt.write(record) assert target_dataframe.shape[0] == index + 1 assert target_dataframe.iat[index, 1].__class__ is str @@ -201,6 +203,16 @@ async def test_volltext_and_barcode_and_ausgabe_and_verlagsort_and_verleger_druc elif index == 2: assert artDesInhalts_val.__repr__() == 'nan' + inhalt_val: typing.Union[str, float] = target_dataframe.at[record.ac_number, inhalt.column] + if index == 0: + assert inhalt_val.__repr__() == 'nan' + elif index == 1: + assert inhalt_val.__class__ == str + inhalt_list = inhalt_val.split(inhalt.join_string) + assert len(inhalt_list) == 2 + assert inhalt_list[0][0].isalpha() + assert inhalt_list[1][0].isalpha() + index += 1 if index == stop: break diff --git a/travelogues_extraction/controller/main.py b/travelogues_extraction/controller/main.py index 6b8e9cb0f6803ea2af47fc81cd116c3f4d1ae653..ead2657abfd68073d32c7dc915a40754cc354596 100644 --- a/travelogues_extraction/controller/main.py +++ b/travelogues_extraction/controller/main.py @@ -36,7 +36,8 @@ class FromAlmaOutputToExcel: BandzählungTitelDesBandes, Ausgabe, Verlagsort, VerlagsOrtNormiertGND, DruckOrtNormiertGND, VerlegerDrucker, VerlegerNormiertGNDID, DruckerGNDID, Erscheinungsjahr, ErscheinungsjahrSortierform, Kollation, Illustrationen, Format, Anmerkungen, Sprache, OriginalSprache, BemerkungenZurSprache, Standardnummer, WeitereVerfasserGNDID, - HerausgeberGNDID, ÜbersetzerGNDID, BeiträgerGNDID, WeitereBeteiligteGNDID, IllustratorenGNDID, + HerausgeberGNDID, ÜbersetzerGNDID, BeiträgerGNDID, WeitereBeteiligteGNDID, IllustratorenGNDID, WidmenderGNDID, + WidmungsempfängerGNDID, ArtDesInhalts, Inhalt ] def __init__(self, alma_output: str, target_output: str, slice: slice): diff --git a/travelogues_extraction/dataextractors/dataextractors/simple.py b/travelogues_extraction/dataextractors/dataextractors/simple.py index 31993c16fe36a8a0fe82401617bc5bbe26dda3d8..9b7636a227872a9ed3bf85684893bbcb476f97e1 100644 --- a/travelogues_extraction/dataextractors/dataextractors/simple.py +++ b/travelogues_extraction/dataextractors/dataextractors/simple.py @@ -183,5 +183,17 @@ class ArtDesInhalts(AbstractXpathJoinDirectlyToColumn): xpath = lxmletree.XPath('./marc:datafield[@tag="655" and @ind1=" " and @ind2="7"]/marc:subfield[@code="a"]', namespaces=namespaces) +class Inhalt(AbstractXpathJoinDirectlyToColumn): + column = 'Inhalt' + xpath = lxmletree.XPath( + ( + './marc:datafield[@tag="505" and @ind1="8" and @ind2=" "]/marc:subfield[@code="a" or @code="t"]' + ' | ' + './marc:datafield[@tag="249" and @ind1=" " and @ind2=" "]/marc:subfield[@code="a"]' + ), namespaces=namespaces + + ) + +