diff --git a/lib/pool.py b/lib/pool.py index 8d7c4afb..2407fcc2 100644 --- a/lib/pool.py +++ b/lib/pool.py @@ -26,6 +26,7 @@ This module implements thread-safe (and not) connection pools. import psycopg2 import psycopg2.extensions as _ext +from contextlib import contextmanager class PoolError(psycopg2.Error): @@ -122,6 +123,14 @@ class AbstractConnectionPool(object): del self._used[key] 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): """Close all connections.