in elasticsearch/dsl/utils.py [0:0]
def __init__(cls, name: str, bases: Tuple[type, ...], attrs: Dict[str, Any]):
super().__init__(name, bases, attrs)
# skip for DslBase
if not hasattr(cls, "_type_shortcut"):
return
if not cls.name:
# abstract base class, register it's shortcut
cls._types[cls._type_name] = cls._type_shortcut
# and create a registry for subclasses
if not hasattr(cls, "_classes"):
cls._classes = {}
elif cls.name not in cls._classes:
# normal class, register it
cls._classes[cls.name] = cls