code: def __init__(self, lock=False):
      self._tables = {}
      self._views = {}
      self._callback_cache = _PerspectiveCallBackCache()
      self._queue_process_callback = None
      self._lock = lock
  
      # Perspective sends binary messages in two messages - a JSON
      # pre-message and the binary itself. Set up flags to handle that
      # special message flow.
      #
      # It is assumed that pre-messages and data messages are ordered:
      # e.g. you can send premessage1 and premessage2, but it is
      # assumed the data will then come as data1 followed by data2
      self._pending_binary = deque()
  
imports: import datetime
  import json
  import logging
  from collections import deque
  from functools import partial
  from ..core.exception import PerspectiveError
  from ..table import PerspectiveCppError, Table
  from ..table._callback_cache import _PerspectiveCallBackCache
  from ..table._date_validator import _PerspectiveDateValidator
label_desc: Use image node_id 1 to create a new _PerspectiveManagerInternal object from inherited base classes: object with example: obj = _PerspectiveManagerInternal(lock)