From 00df95465334dc7370ccd26795b299f9a7e74d5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20R=C3=B6ggla?= Date: Fri, 17 Jul 2020 14:15:55 +0200 Subject: [PATCH] Signatur Spalte --- test/dataextractors/test_multiple.py | 9 +++++++-- travelogues_extraction/controller/main.py | 2 +- .../dataextractors/dataextractors/combinedsubfields.py | 8 ++++++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/test/dataextractors/test_multiple.py b/test/dataextractors/test_multiple.py index dcad3a1..fe3404a 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 2ac58fa..a27e0c3 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 65924d4..5536f69 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 -- GitLab