(self)
| 74 | |
| 75 | @memoize |
| 76 | def metas(self) -> Optional[MetaList]: |
| 77 | # metas: meta metas | meta |
| 78 | mark = self._mark() |
| 79 | if ( |
| 80 | (meta := self.meta()) |
| 81 | and |
| 82 | (metas := self.metas()) |
| 83 | ): |
| 84 | return [meta] + metas |
| 85 | self._reset(mark) |
| 86 | if ( |
| 87 | (meta := self.meta()) |
| 88 | ): |
| 89 | return [meta] |
| 90 | self._reset(mark) |
| 91 | return None |
| 92 | |
| 93 | @memoize |
| 94 | def meta(self) -> Optional[MetaTuple]: |