From ecee1fb16cf6b7b5d01187191ea23260b8bcef2a Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sun, 12 Nov 2006 20:50:51 +0000 Subject: - create_engine() reworked to be strict about incoming **kwargs. all keyword arguments must be consumed by one of the dialect, connection pool, and engine constructors, else a TypeError is thrown which describes the full set of invalid kwargs in relation to the selected dialect/pool/engine configuration. --- lib/sqlalchemy/engine/default.py | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) (limited to 'lib/sqlalchemy/engine/default.py') diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py index 02d3e4608..4af539e78 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -6,7 +6,6 @@ from sqlalchemy import schema, exceptions, util, sql, types -from sqlalchemy import pool as poollib import StringIO, sys, re from sqlalchemy.engine import base @@ -14,30 +13,8 @@ from sqlalchemy.engine import base class PoolConnectionProvider(base.ConnectionProvider): - def __init__(self, dialect, url, poolclass=None, pool=None, **kwargs): - (cargs, cparams) = dialect.create_connect_args(url) - cparams.update(kwargs.pop('connect_args', {})) - - if pool is None: - kwargs.setdefault('echo', False) - kwargs.setdefault('use_threadlocal',True) - if poolclass is None: - poolclass = poollib.QueuePool - dbapi = dialect.dbapi() - if dbapi is None: - raise exceptions.InvalidRequestError("Cant get DBAPI module for dialect '%s'" % dialect) - def connect(): - try: - return dbapi.connect(*cargs, **cparams) - except Exception, e: - raise exceptions.DBAPIError("Connection failed", e) - creator = kwargs.pop('creator', connect) - self._pool = poolclass(creator, **kwargs) - else: - if isinstance(pool, poollib.DBProxy): - self._pool = pool.get_pool(*cargs, **cparams) - else: - self._pool = pool + def __init__(self, pool): + self._pool = pool def get_connection(self): return self._pool.connect() def dispose(self): -- cgit v1.2.1