lib/pool -- add convenience method for acquiring a cursor as a context

This commit is contained in:
Danny Cooper 2015-11-01 16:29:51 +00:00
parent fe4cb0d493
commit 4803870f90

View File

@ -26,6 +26,7 @@ This module implements thread-safe (and not) connection pools.
import psycopg2 import psycopg2
import psycopg2.extensions as _ext import psycopg2.extensions as _ext
from contextlib import contextmanager
class PoolError(psycopg2.Error): class PoolError(psycopg2.Error):
@ -122,6 +123,14 @@ class AbstractConnectionPool(object):
del self._used[key] del self._used[key]
del self._rused[id(conn)] del self._rused[id(conn)]
@property
@contextmanager
def quick_cursor(self):
"""A ContextManager for quickly getting a cursor"""
with self.getconn() as conn, conn.cursor() as cur:
yield cur
self.putconn(conn)
def _closeall(self): def _closeall(self):
"""Close all connections. """Close all connections.