Files
Django_kube/Webcal-python/venv/lib/python3.11/site-packages/tatsu/synth.py
T

32 lines
692 B
Python

from collections.abc import Mapping
from typing import Any
__REGISTRY: Mapping[str, Any] = vars()
class _Synthetic:
def __reduce__(self):
return (
synthesize(type(self).__name__, type(self).__bases__),
(),
vars(self),
)
def synthesize(name, bases):
typename = f'{__name__}.{name}'
if not isinstance(bases, tuple):
bases = (bases,)
if _Synthetic not in bases:
bases += (_Synthetic,)
constructor = __REGISTRY.get(typename)
if not constructor:
constructor = type(name, bases, {})
typename = constructor.__name__
__REGISTRY[typename] = constructor
return constructor