diff --git a/test/dataextractors/test_multiple.py b/test/dataextractors/test_multiple.py index dcad3a17c13daf726bfd9f878b32e1b5966ccecc..fe3404a52e700881809d201ff2655a5ae9bdca05 100644 --- a/test/dataextractors/test_multiple.py +++ b/test/dataextractors/test_multiple.py @@ -8,7 +8,7 @@ from travelogues_extraction.getrecords.acnumber_extractor import extract_ac_from from travelogues_extraction.dataextractors.dataextractors.combinedsubfields import VerfasserGND, ReihentitelBandzählung, \ HaupttitelTitelzusatzVerantwortlichkeitsangabe, BandzählungTitelDesBandes, VerlagsOrtNormiertGND, DruckOrtNormiertGND, \ VerlegerNormiertGNDID, DruckerGNDID, WeitereVerfasserGNDID, HerausgeberGNDID, ÜbersetzerGNDID, BeiträgerGNDID, \ - WeitereBeteiligteGNDID, IllustratorenGNDID, WidmenderGNDID, WidmungsempfängerGNDID, WerkeInRelation + WeitereBeteiligteGNDID, IllustratorenGNDID, WidmenderGNDID, WidmungsempfängerGNDID, WerkeInRelation, Signatur from travelogues_extraction.dataextractors.dataextractors.index import IndexSetter @@ -30,7 +30,8 @@ async def test_multiple_classes(): IndexSetter.column, VerfasserGND.column, ReihentitelBandzählung.column, HaupttitelTitelzusatzVerantwortlichkeitsangabe.column, BandzählungTitelDesBandes.column, VerlagsOrtNormiertGND.column, DruckOrtNormiertGND, DruckerGNDID.column, HerausgeberGNDID.column, - ÜbersetzerGNDID.column, IllustratorenGNDID.column, WidmenderGNDID.column, WidmungsempfängerGNDID.column + ÜbersetzerGNDID.column, IllustratorenGNDID.column, WidmenderGNDID.column, WidmungsempfängerGNDID.column, + WerkeInRelation.column, Signatur.column ]) index_setter = IndexSetter(target_dataframe) verfasser = VerfasserGND(target_dataframe) @@ -47,6 +48,7 @@ async def test_multiple_classes(): widmenderGNDID = WidmenderGNDID(target_dataframe) widmungsempfängerGNDID = WidmungsempfängerGNDID(target_dataframe) werkeInRelation = WerkeInRelation(target_dataframe) + signatur = Signatur(target_dataframe) index = 0 stop = 7 @@ -89,6 +91,7 @@ async def test_multiple_classes(): await widmenderGNDID.write(record) await widmungsempfängerGNDID.write(record) await werkeInRelation.write(record) + await signatur.write(record) assert target_dataframe.shape[0] == index + 1 if record.ac_number == 'AC09682453': @@ -257,6 +260,8 @@ async def test_multiple_classes(): else: assert werkeInRelation_val[0].isalpha() + assert target_dataframe.at[record.ac_number, signatur.column][0].isdigit() + index += 1 if index == stop: diff --git a/travelogues_extraction/controller/main.py b/travelogues_extraction/controller/main.py index 2ac58fa268ba8e14b5a466e7b339ac5aade2635a..a27e0c3353130c97d80fe3a70dbe033247bcf3ff 100644 --- a/travelogues_extraction/controller/main.py +++ b/travelogues_extraction/controller/main.py @@ -37,7 +37,7 @@ class FromAlmaOutputToExcel: VerlegerNormiertGNDID, DruckerGNDID, Erscheinungsjahr, ErscheinungsjahrSortierform, Kollation, Illustrationen, Format, Anmerkungen, Sprache, OriginalSprache, BemerkungenZurSprache, Standardnummer, WeitereVerfasserGNDID, HerausgeberGNDID, ÜbersetzerGNDID, BeiträgerGNDID, WeitereBeteiligteGNDID, IllustratorenGNDID, WidmenderGNDID, - WidmungsempfängerGNDID, ArtDesInhalts, Inhalt, WerkeInRelation, Schlagworte, Marker, Zusammenstellung + WidmungsempfängerGNDID, ArtDesInhalts, Inhalt, WerkeInRelation, Schlagworte, Marker, Zusammenstellung, Signatur ] def __init__(self, alma_output: str, target_output: str, slice: slice): diff --git a/travelogues_extraction/dataextractors/dataextractors/combinedsubfields.py b/travelogues_extraction/dataextractors/dataextractors/combinedsubfields.py index 65924d4c051b63679d76d04ede71d7d97255dc77..5536f691354da1a64a26ad21e10168f5164ce9f5 100644 --- a/travelogues_extraction/dataextractors/dataextractors/combinedsubfields.py +++ b/travelogues_extraction/dataextractors/dataextractors/combinedsubfields.py @@ -196,4 +196,12 @@ class WerkeInRelation(AbstractMultifield): VerlagsOrtNormiertGND.xpath_isgnd_tuples[0], AbstractMultifield.XpathIsGnd(xpath=lxmletree.XPath('./marc:subfield[@code="t"]', namespaces=namespaces), isgnd=False), VerlagsOrtNormiertGND.xpath_isgnd_tuples[1], + ) + + +class Signatur(AbstractMultifield): + column = 'Signatur' + primary_xml_path = lxmletree.XPath('./marc:datafield[@tag="AVA" and @ind1=" " and @ind2=" "]', namespaces=namespaces) + xpath_isgnd_tuples = ( + AbstractMultifield.XpathIsGnd(xpath=lxmletree.XPath('./marc:subfield[@code="d" or @code="i" or @code="j"]', namespaces=namespaces), isgnd=False), ) \ No newline at end of file