code: def assign(
      self,
      value: typing.Union[IntegerVal, float, int],
      *,
      wait: bool = False,
  ):
      if not isinstance(value, IntegerVal):
          value = IntegerVal(value)
  
      if value.value < MIN_32_BIT_INT or value.value > MAX_32_BIT_INT:
          logger.warning(
              "WARNING: The value you're trying to log is outside the range of 32-bit integers "
              "(%s to %s) and will be skipped. "
              "We'll support 64-bit integers in the future. "
              'For now, try logging the value as a float instead: run["field"] = float(%s)',
              MIN_32_BIT_INT,
              MAX_32_BIT_INT,
              value.value,
          )
          return
  
      with self._container.lock():
          self._enqueue_operation(
              self.create_assignment_operation(self._path, value.value),
              wait=wait,
          )
  
file_path: neptune-client/src/neptune/attributes/atoms/integer.py
imports: import typing
  from neptune.attributes.atoms.copiable_atom import CopiableAtom
  from neptune.constants import MAX_32_BIT_INT, MIN_32_BIT_INT
  from neptune.internal.container_type import ContainerType
  from neptune.internal.operation import AssignInt
  from neptune.internal.utils.logger import logger
  from neptune.types.atoms.integer import Integer
label_desc: Use image node_id 3 for calling the Integer obj's underlying member method code with example usage: obj.assign(value) without return types