Blame db/holder.py

cbf076
cbf076
from db.connection import Connection
cbf076
cbf076
cbf076
class Holder:
cbf076
  def __init__(self, pool, internal = None, readonly = True):
cbf076
    self.pool = pool
cbf076
    self.internal = internal
cbf076
    self.readonly = readonly
cbf076
cbf076
  def __enter__(self):
cbf076
    if not self.internal:
cbf076
      self.internal = self.pool.asquire(self.readonly)
cbf076
    self.connection = Connection(
cbf076
      self.pool,
cbf076
      internal = self.internal,
cbf076
      readonly = self.readonly )
cbf076
    return self.connection
cbf076
cbf076
  def __exit__(self, _exc_type, _exc_value, _traceback):
cbf076
    self.connection.release()
cbf076
    self.pool.release(self.connection.internal, self.readonly)