class_docstr: SQLite3 TaskRecord backend.
code: def __init__(self, **kwargs):
      super().__init__(**kwargs)
      if sqlite3 is None:
          raise ImportError("SQLiteDB requires sqlite3")
      if not self.table:
          # use session, and prefix _, since starting with # is illegal
          self.table = "_" + self.session.replace("-", "_")
      if not self.location:
          # get current profile
          from IPython.core.application import BaseIPythonApplication
  
          if BaseIPythonApplication.initialized():
              app = BaseIPythonApplication.instance()
              if app.profile_dir is not None:
                  self.location = app.profile_dir.location
              else:
                  self.location = "."
          else:
              self.location = "."
      self._init_db()
  
      # register db commit as 2s periodic callback
      # to prevent clogging pipes
      # assumes we are being run in a zmq ioloop app
      self._commit_callback = pc = ioloop.PeriodicCallback(
          self._db.commit, 2000
      )
      pc.start()
  
imports: import json
  import os
  from datetime import datetime
  from dateutil.parser import parse
  from tornado import ioloop
  from traitlets import Dict, Instance, List, Unicode
  from ..util import ensure_timezone, extract_dates
  from .dictdb import BaseDB
label_desc: Use image node_id 1 to create a new SQLiteDB object from inherited base classes: BaseDB with example: obj = SQLiteDB()