in elasticsearch/dsl/utils.py [0:0]
def __init__(self, meta: Optional[Dict[str, Any]] = None, **kwargs: Any):
meta = meta or {}
for k in list(kwargs):
if k.startswith("_") and k[1:] in META_FIELDS:
meta[k] = kwargs.pop(k)
super(AttrDict, self).__setattr__("meta", HitMeta(meta))
# process field defaults
if hasattr(self, "_defaults"):
for name in self._defaults:
if name not in kwargs:
value = self._defaults[name]
if callable(value):
value = value()
kwargs[name] = value
super().__init__(kwargs)