code: def enqueue_operation(self, op: Operation, *, wait: bool) -> None:
      if not self._accepts_operations:
          warn_once(
              "Not accepting operations", exception=NeptuneWarning
          )
          return
  
      self._last_version = self._queue.put(op)
  
      if self._check_queue_size():
          self._consumer.wake_up()
      if wait:
          self.wait()
  
imports: import os
  import threading
  from datetime import datetime
  from pathlib import Path
  from queue import Queue
  from time import monotonic, time
  from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional
  from neptune.common.exceptions import NeptuneException
  from neptune.common.warnings import NeptuneWarning, warn_once
  from neptune.constants import ASYNC_DIRECTORY
  from neptune.envs import NEPTUNE_SYNC_AFTER_STOP_TIMEOUT
  from neptune.exceptions import NeptuneSynchronizationAlreadyStoppedException
  from neptune.internal.disk_queue import DiskQueue
  from neptune.internal.init.parameters import DEFAULT_STOP_TIMEOUT
  from neptune.internal.metadata_file import MetadataFile
  from neptune.internal.operation import Operation
  from neptune.internal.operation_processors.operation_processor import OperationProcessor
  from neptune.internal.operation_processors.operation_storage import OperationStorage, get_container_dir
  from neptune.internal.operation_processors.utils import common_metadata
  from neptune.internal.signals_processing.utils import signal_batch_lag, signal_batch_processed, signal_batch_started
  from neptune.internal.threading.daemon import Daemon
  from neptune.internal.utils.disk_utilization import ensure_disk_not_overutilize
  from neptune.internal.utils.files import should_clean_internal_data
  from neptune.internal.utils.logger import logger
label_desc: Use image node_id 3 for calling the AsyncOperationProcessor obj's underlying member method code with example usage: obj.enqueue_operation(op) without return types