code: def fill(self, replace_dict: bool = False, **kwargs: Any) -> Self:
      for key, value in kwargs.items():
          if not hasattr(self, key):
              raise AttributeError(
                  f"Model `{self.__class__.__name__}` has no attribute `{key}`"
              )
          # If the value is a dict, set value for each key one by one, as we want to update only the keys that are in
          # `value` and not override the whole dict.
          if isinstance(value, dict) and not replace_dict:
              dict_col = getattr(self, key) or {}
              dict_col.update(value)
              value = dict_col
          setattr(self, key, value)
      return self
  
file_path: argilla/src/argilla/server/models/mixins.py
imports: from datetime import datetime
  from typing import TYPE_CHECKING, Any, Dict, List, Set, TypeVar, Union
  from sqlalchemy import sql
  from sqlalchemy.dialects.mysql import insert
  from sqlalchemy.dialects.postgresql import insert
  from sqlalchemy.dialects.sqlite import insert
  from sqlalchemy.engine.default import DefaultExecutionContext
  from sqlalchemy.orm import Mapped, mapped_column
  from typing_extensions import Self
  from argilla.server.pydantic_v1 import BaseModel
label_desc: Use image node_id 1 for calling the CRUDMixin obj's underlying member method code with example usage: obj.fill(replace_dict) and returns: self