docs: def init(uri=None, alembic_ini=None, engine=None, create=False):
      """ Initialize a connection.  Create tables if requested."""
  
      if uri and engine:
          raise ValueError("uri and engine cannot both be specified")
  
      if uri is None and not engine:
          uri = 'sqlite:////tmp/datanommer.db'
          log.warning("No db uri given.  Using %r" % uri)
  
      if uri and not engine:
          engine = create_engine(uri)
  
      if 'sqlite' in engine.driver:
          # Enable nested transaction support under SQLite
          # See https://stackoverflow.com/questions/1654857/nested-transactions-with-sqlalchemy-and-sqlite
          @event.listens_for(engine, "connect")
          def do_connect(dbapi_connection, connection_record):
              # disable pysqlite's emitting of the BEGIN statement entirely.
              # also stops it from emitting COMMIT before any DDL.
              dbapi_connection.isolation_level = None
  
          @event.listens_for(engine, "begin")
          def do_begin(conn):
              # emit our own BEGIN
              conn.execute("BEGIN")
  
      # We need to hang our own attribute on the sqlalchemy session to stop
      # ourselves from initializing twice.  That is only a problem is the code
      # calling us isn't consistent.
      if getattr(session, '_datanommer_initialized', None):
          log.warning("Session already initialized.  Bailing")
          return
      session._datanommer_initialized = True
  
      session.configure(bind=engine)
      DeclarativeBase.query = session.query_property()
  
      # Loads the alembic configuration and generates the version table, with
      # the most recent revision stamped as head
      if alembic_ini is not None:
          from alembic.config import Config
          from alembic import command
          alembic_cfg = Config(alembic_ini)
          command.stamp(alembic_cfg, "head")
  
      if create:
          DeclarativeBase.metadata.create_all(engine)