Drop lots of legacy code. Support Python 3.7-3.11.
[librarian.git] / src / librarian / elements / __init__.py
1 # This file is part of Librarian, licensed under GNU Affero GPLv3 or later.
2 # Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
3 #
4 from lxml import etree
5 from . import (blocks, comments, drama, figures, footnotes, front, headers,
6                masters, paragraphs, poetry, ref, root, separators, styles, themes,
7                tools, base)
8
9
10 WL_ELEMENTS = {
11     'snippet': base.Snippet,
12     'meta': etree.ElementBase,
13     'coverClass': etree.ElementBase,
14     "developmentStage": etree.ElementBase,
15     "coverBarColor": etree.ElementBase,
16     "coverBoxPosition": etree.ElementBase, 
17     "coverLogoUrl": etree.ElementBase,
18     "contentWarning": etree.ElementBase,
19     "endnotes": etree.ElementBase,
20
21     "utwor": root.Utwor,
22     "dramat_wierszowany_l": masters.Master,
23     "dramat_wierszowany_lp": masters.Master,
24     "dramat_wspolczesny": masters.Master,
25     "liryka_l": masters.Master,
26     "liryka_lp": masters.Master,
27     "opowiadanie": masters.Master,
28     "powiesc": masters.Master,
29
30     "blok": tools.WLElement,
31     
32     "autor_utworu": front.AutorUtworu,
33     "dzielo_nadrzedne": front.DzieloNadrzedne,
34     "nazwa_utworu": front.NazwaUtworu,
35     "podtytul": front.Podtytul,
36
37     "lista_osob": drama.ListaOsob,
38     "lista_osoba": drama.ListaOsoba,
39     "naglowek_osoba": drama.NaglowekOsoba,
40     "osoba": drama.Osoba,
41
42     "dlugi_cytat": blocks.DlugiCytat,
43     "poezja_cyt": blocks.PoezjaCyt,
44     "dlugi_cyt": blocks.DlugiCytat,  ### ???
45     "ramka": blocks.Ramka,
46     
47     "slowo_obce": styles.SlowoObce,
48     "tytul_dziela": styles.TytulDziela,
49     "wyroznienie": styles.Wyroznienie,
50
51     "akap": paragraphs.Akap,
52     "akap_cd": paragraphs.Akap,
53     "akap_dialog": paragraphs.Akap,
54
55     "motto_podpis": front.MottoPodpis,
56
57     "strofa": poetry.Strofa,
58
59     "motto": front.Motto,
60
61     "didaskalia": drama.Didaskalia,
62     "kwestia": drama.Kwestia,
63     "didask_tekst": drama.DidaskTekst,
64
65     "dedykacja": blocks.Dedykacja,
66     "miejsce_czas": drama.MiejsceCzas,
67
68     "uwaga": comments.Uwaga,
69
70     "wers": poetry.Wers,
71     "wers_wciety": poetry.WersWciety,
72     "wers_cd": poetry.WersCd,
73     "wers_akap": poetry.WersAkap,
74     "zastepnik_wersu": poetry.ZastepnikWersu,
75     "wers_do_prawej": poetry.WersDoPrawej,
76     "wers_srodek": poetry.WersSrodek,
77     
78     "pa": footnotes.PA,
79     "pe": footnotes.PE,
80     "pr": footnotes.PR,
81     "pt": footnotes.PT,
82
83     "ref": ref.Ref,
84
85     "begin": themes.Begin,
86     "end": themes.End,
87     "motyw": themes.Motyw,
88
89     "nota": blocks.Nota,
90
91     "nota_red": comments.NotaRed,
92     "extra": comments.Uwaga,
93     "abstrakt": comments.Abstrakt,
94
95     "naglowek_czesc": headers.NaglowekCzesc,
96     "naglowek_akt": headers.NaglowekCzesc,
97     "naglowek_scena": headers.NaglowekScena,
98     "naglowek_rozdzial": headers.NaglowekRozdzial,
99     "naglowek_podrozdzial": headers.NaglowekPodrozdzial,
100     "srodtytul": headers.NaglowekCzesc,
101     "podtytul_czesc": headers.PodtytulCzesc,
102     "podtytul_akt": headers.PodtytulCzesc,
103     "podtytul_scena": headers.PodtytulRozdzial,
104     "podtytul_rozdzial": headers.PodtytulRozdzial,
105     "podtytul_podrozdzial": headers.PodtytulPodrozdzial,
106
107     "naglowek_listy": drama.NaglowekListy,
108
109     "sekcja_asterysk": separators.SekcjaAsterysk,
110     "sekcja_swiatlo": separators.SekcjaSwiatlo,
111     "separator_linia": separators.SeparatorLinia,
112
113     "wieksze_odstepy": styles.WiekszeOdstepy,
114     "mat": styles.Mat,
115     "www": styles.WWW,
116     "indeks_dolny": styles.IndeksDolny,
117
118     "tabela": figures.Tabela,
119     "tabelka": figures.Tabela,
120     "wiersz": figures.Wiersz,
121     "kol": figures.Kol,
122
123     "animacja": figures.Animacja,
124     "ilustr": figures.Ilustr,
125
126     "numeracja": tools.Numeracja,
127     "rownolegle": tools.Rownolegle,
128     "tab": tools.Tab,
129
130     # Section
131     "wywiad_pyt": blocks.WywiadPyt,
132     "wywiad_odp": blocks.WywiadOdp,
133
134     # Inline MathML, should really be namespaced.
135     "mrow": etree.ElementBase,
136     "mi": etree.ElementBase,
137     "mo": etree.ElementBase,
138     "msup": etree.ElementBase,
139     "mn": etree.ElementBase,
140     "mfrac": etree.ElementBase,
141     "mfenced": etree.ElementBase,
142 }