diff --git a/src/wiktextract/config.py b/src/wiktextract/config.py index b2e3c426..9a24bf5b 100644 --- a/src/wiktextract/config.py +++ b/src/wiktextract/config.py @@ -119,8 +119,6 @@ def __init__( self.set_attr_from_json( "FORM_OF_TEMPLATES", "form_of_templates.json" ) - if dump_file_lang_code == "de": - self.set_attr_from_json("DE_FORM_TABLES", "form_tables.json") self.analyze_templates = True # find templates that need pre-expand self.extract_thesaurus_pages = True self.load_edition_settings() diff --git a/src/wiktextract/data/de/config.json b/src/wiktextract/data/de/config.json new file mode 100644 index 00000000..91a7ba44 --- /dev/null +++ b/src/wiktextract/data/de/config.json @@ -0,0 +1,4 @@ +{ + "analyze_templates": false, + "extract_thesaurus_pages": false +} diff --git a/src/wiktextract/data/de/form_tables.json b/src/wiktextract/data/de/form_tables.json deleted file mode 100644 index 6d4afc53..00000000 --- a/src/wiktextract/data/de/form_tables.json +++ /dev/null @@ -1,125 +0,0 @@ -[ - "Deutsch Substantiv Übersicht", - "Deutsch Substantiv Übersicht -sch", - "Deutsch Toponym Übersicht", - "Deutsch adjektivisch Übersicht", - "Deutsch Eigenname Übersicht", - "Deutsch Name Übersicht", - "Deutsch Vorname Übersicht m", - "Deutsch Vorname Übersicht f", - "Deutsch Vorname Übersicht n", - "Deutsch Verb Übersicht", - "Deutsch Adjektiv Übersicht", - "Pronomina-Tabelle", - "Afrikaans Substantiv Übersicht", - "Albanisch Verb Übersicht", - "Altenglisch Substantiv Übersicht", - "Altgriechisch Adjektiv Übersicht", - "Altgriechisch Substantiv Übersicht", - "Altirisch Substantiv Übersicht", - "Altnordisch Substantiv Übersicht", - "Aserbaidschanisch Substantiv Übersicht", - "Asturisch Substantiv Übersicht", - "Baschkirisch Substantiv Übersicht", - "Baskisch Substantiv Übersicht", - "Bosnisch Substantiv Übersicht", - "Bretonisch Substantiv Übersicht", - "Bulgarisch Verb Übersicht", - "Dänisch Adjektiv Übersicht", - "Dänisch Possessivpronomen Übersicht", - "Dänisch Substantiv Übersicht", - "Dänisch Verb Übersicht", - "Englisch Adjektiv Übersicht", - "Englisch Substantiv Übersicht", - "Englisch Verb Übersicht", - "Esperanto Substantiv Übersicht", - "Färöisch Substantiv Übersicht", - "Färöisch Verb Übersicht", - "Finnisch Substantiv Übersicht", - "Finnisch Verb Übersicht", - "Französisch Adjektiv Übersicht", - "Französisch Substantiv Übersicht", - "Französisch Verb Übersicht", - "Galicisch Substantiv Übersicht", - "Georgisch Substantiv Übersicht", - "Hausa Adjektiv Übersicht", - "Hausa Possessiv Übersicht", - "Hausa Substantiv Übersicht", - "Hebräisch Substantiv Übersicht", - "Ido Substantiv Übersicht", - "Irisch Adjektiv Übersicht", - "Irisch Substantiv Übersicht", - "Isländisch Name Übersicht", - "Isländisch Adjektiv Übersicht", - "Isländisch Substantiv Übersicht", - "Isländisch Verb Übersicht", - "Italienisch Adjektiv Übersicht", - "Italienisch Substantiv Übersicht", - "Italienisch Substantiv Übersicht", - "Katalanisch Adjektiv Übersicht", - "Katalanisch Substantiv Übersicht", - "Katalanisch Verb Übersicht", - "Keilschrift Übersicht", - "Korsisch Substantiv Übersicht", - "Kroatisch Adjektiv Übersicht", - "Kroatisch Substantiv Übersicht", - "Kurdisch Substantiv Übersicht", - "Latein Adjektiv Übersicht", - "Latein Adverb Übersicht", - "Latein Substantiv Übersicht", - "Lateinisch Substantiv Übersicht", - "Lettisch Substantiv Übersicht", - "Lettisch Verb Übersicht", - "Mazedonisch Substantiv Übersicht", - "Nahuatl Substantiv Übersicht", - "Neugriechisch Substantiv Übersicht", - "Niederdeutsch Adjektiv Übersicht", - "Niederdeutsch Substantiv Übersicht", - "Niederländisch Adjektiv Übersicht", - "Niederländisch Substantiv Übersicht", - "Niedersorbisch Substantiv Übersicht", - "Norwegisch Adjektiv Übersicht", - "Norwegisch Eigenname Übersicht", - "Norwegisch Substantiv Übersicht", - "Norwegisch Verb Übersicht", - "Okzitanisch Substantiv Übersicht", - "Okzitanisch Verb Übersicht", - "Papiamentu Substantiv Übersicht", - "Polnisch Grundzahl Übersicht", - "Polnisch Substantiv Übersicht", - "Portugiesisch Substantiv Übersicht", - "Prußisch Substantiv Übersicht", - "Rumänisch Numerale Übersicht", - "Rumänisch Personalpronomen Übersicht", - "Rumänisch Substantiv Übersicht", - "Rumänisch Verb Übersicht", - "Russisch Substantiv Übersicht", - "Sardisch Substantiv Übersicht", - "Schwedisch Adjektiv Übersicht", - "Schwedisch Adverb Übersicht", - "Schwedisch Eigenname Übersicht", - "Schwedisch Pronomen Übersicht", - "Schwedisch Verb Übersicht", - "Scots Substantiv Übersicht", - "Serbisch Substantiv Übersicht", - "Sesotho Substantiv Übersicht", - "Slowakisch Adjektiv Übersicht", - "Slowenisch Substantiv Übersicht", - "Spanisch Adjektiv Übersicht", - "Spanisch Substantiv Übersicht", - "Spanisch Verb Übersicht", - "Suaheli Substantiv Übersicht", - "Suaheli Verb Übersicht", - "Symbol Übersicht", - "Tschechisch universal Übersicht", - "Türkisch Substantiv Übersicht", - "Ukrainisch Substantiv Übersicht", - "Umbrisch Substantiv Übersicht", - "Ungarisch Adjektiv Übersicht", - "Ungarisch Substantiv Übersicht", - "Ungarisch Verb Übersicht", - "Usbekisch Substantiv Übersicht", - "Venezianisch Substantiv Übersicht", - "Walisisch Substantiv Übersicht", - "Westflämisch Substantiv Übersicht" -] diff --git a/src/wiktextract/extractor/de/page.py b/src/wiktextract/extractor/de/page.py index 4e3d3630..dbac69d9 100644 --- a/src/wiktextract/extractor/de/page.py +++ b/src/wiktextract/extractor/de/page.py @@ -8,11 +8,12 @@ from wiktextract.datautils import append_base_data from wiktextract.extractor.de.pronunciation import extract_pronunciation -from wiktextract.extractor.de.translation import extract_translation from wiktextract.wxr_context import WiktextractContext from .example import extract_examples from .gloss import extract_glosses +from .pronunciation import extract_pronunciation +from .translation import extract_translation # Templates that are used to form panels on pages and that should be ignored in # various positions @@ -24,14 +25,7 @@ PANEL_PREFIXES = set() # Additional templates to be expanded in the pre-expand phase -ADDITIONAL_EXPAND_TEMPLATES = set() - - -# Templates that should not be pre-expanded -DO_NOT_PRE_EXPAND_TEMPLATES = { - "Ü-Tabelle", # Translation table - "Übersetzungen umleiten", # Translation table redirect -} +ADDITIONAL_EXPAND_TEMPLATES = {"NoCat"} def parse_section( @@ -210,7 +204,23 @@ def process_pos_section( and non_l4_node.kind == NodeKind.TEMPLATE and "Übersicht" in non_l4_node.template_name ): - # XXX: de: Extract form tables + # XXX: de: Extract form table templates + pass + elif ( + isinstance(non_l4_node, WikiNode) + and non_l4_node.kind == NodeKind.TABLE + and "inflection-table" in non_l4_node.attrs.get("class") + ): + # XXX: de: Extract html form table + pass + elif ( + isinstance(non_l4_node, WikiNode) + and non_l4_node.kind == NodeKind.LINK + and len(non_l4_node.largs) > 0 + and len(non_l4_node.largs[0]) > 0 + and "Kategorie" in non_l4_node.largs[0][0] + ): + # XXX Process categories pass else: wxr.wtp.debug( @@ -231,12 +241,10 @@ def parse_page( # Parse the page, pre-expanding those templates that are likely to # influence parsing - DO_NOT_PRE_EXPAND_TEMPLATES.update(wxr.config.DE_FORM_TABLES) tree = wxr.wtp.parse( page_text, pre_expand=True, additional_expand=ADDITIONAL_EXPAND_TEMPLATES, - do_not_pre_expand=DO_NOT_PRE_EXPAND_TEMPLATES, ) page_data = [] diff --git a/src/wiktextract/wiktionary.py b/src/wiktextract/wiktionary.py index 21988c90..3a41b3c8 100644 --- a/src/wiktextract/wiktionary.py +++ b/src/wiktextract/wiktionary.py @@ -225,8 +225,8 @@ def reprocess_wiktionary( last_time = estimate_progress( processed_pages, all_page_nums, start_time, last_time ) - - emit_words_in_thesaurus(wxr, emitted, out_f, human_readable) + if wxr.config.extract_thesaurus_pages: + emit_words_in_thesaurus(wxr, emitted, out_f, human_readable) logging.info("Reprocessing wiktionary complete") diff --git a/tests/test_de_example.py b/tests/test_de_example.py index edfa7c1d..3a40b3c5 100644 --- a/tests/test_de_example.py +++ b/tests/test_de_example.py @@ -5,7 +5,6 @@ from wiktextract.config import WiktionaryConfig from wiktextract.extractor.de.example import extract_examples, extract_reference -from wiktextract.thesaurus import close_thesaurus_db from wiktextract.wxr_context import WiktextractContext @@ -19,9 +18,6 @@ def setUp(self) -> None: def tearDown(self) -> None: self.wxr.wtp.close_db_conn() - close_thesaurus_db( - self.wxr.thesaurus_db_path, self.wxr.thesaurus_db_conn - ) def test_de_extract_examples(self): self.wxr.wtp.start_page("") diff --git a/tests/test_de_gloss.py b/tests/test_de_gloss.py index 8c00426a..af1a43c9 100644 --- a/tests/test_de_gloss.py +++ b/tests/test_de_gloss.py @@ -25,9 +25,6 @@ def setUp(self) -> None: def tearDown(self) -> None: self.wxr.wtp.close_db_conn() - close_thesaurus_db( - self.wxr.thesaurus_db_path, self.wxr.thesaurus_db_conn - ) def test_de_extract_glosses(self): self.wxr.wtp.start_page("") diff --git a/tests/test_de_page.py b/tests/test_de_page.py index da647f78..3401145a 100644 --- a/tests/test_de_page.py +++ b/tests/test_de_page.py @@ -7,7 +7,6 @@ from wiktextract.config import WiktionaryConfig from wiktextract.extractor.de.page import parse_page, parse_section -from wiktextract.thesaurus import close_thesaurus_db from wiktextract.wxr_context import WiktextractContext @@ -28,9 +27,6 @@ def setUp(self): def tearDown(self) -> None: self.wxr.wtp.close_db_conn() - close_thesaurus_db( - self.wxr.thesaurus_db_path, self.wxr.thesaurus_db_conn - ) def test_de_parse_page(self): self.wxr.wtp.add_page("Vorlage:Sprache", 10, "") diff --git a/tests/test_de_pronunciation.py b/tests/test_de_pronunciation.py index db5eb676..6786ab00 100644 --- a/tests/test_de_pronunciation.py +++ b/tests/test_de_pronunciation.py @@ -8,7 +8,6 @@ process_hoerbeispiele, process_ipa, ) -from wiktextract.thesaurus import close_thesaurus_db from wiktextract.wxr_context import WiktextractContext @@ -22,9 +21,6 @@ def setUp(self) -> None: def tearDown(self) -> None: self.wxr.wtp.close_db_conn() - close_thesaurus_db( - self.wxr.thesaurus_db_path, self.wxr.thesaurus_db_conn - ) def test_de_process_ipa(self): test_cases = [ diff --git a/tests/test_de_translation.py b/tests/test_de_translation.py index d1007865..2db61cd8 100644 --- a/tests/test_de_translation.py +++ b/tests/test_de_translation.py @@ -8,7 +8,6 @@ extract_translation, process_translation_list, ) -from wiktextract.thesaurus import close_thesaurus_db from wiktextract.wxr_context import WiktextractContext @@ -28,9 +27,6 @@ def setUp(self) -> None: def tearDown(self) -> None: self.wxr.wtp.close_db_conn() - close_thesaurus_db( - self.wxr.thesaurus_db_path, self.wxr.thesaurus_db_conn - ) def test_de_extract_translation(self): test_cases = [