Drop lots of legacy code. Support Python 3.7-3.11.
[librarian.git] / src / librarian / elements / root / __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 ..base import WLElement
5 from ..masters import Master
6
7
8 class Utwor(WLElement):
9     CAN_HAVE_TEXT = False
10
11     @property
12     def meta(self):
13         if self.meta_object is not None:
14             return self.meta_object
15         else:
16             # Deprecated: allow RDF record in master.
17             for c in self:
18                 if isinstance(c, Master) and c.meta_object is not None:
19                     return c.meta_object
20             # This should not generally happen.
21             if self.getparent() is not None:
22                 return self.getparent().meta
23         # Fallback
24         return self.document.base_meta
25
26     @property
27     def master(self):
28         for c in self:
29             if isinstance(c, Master):
30                 return c