66from .connection import SAConnection
77from .exc import InvalidRequestError , ArgumentError
88from ..utils import _PoolContextManager , _PoolAcquireContextManager
9- from ..cursors import Cursor
9+ from ..cursors import (
10+ Cursor , DeserializationCursor , DictCursor , SSCursor , SSDictCursor )
1011
1112
1213try :
@@ -26,16 +27,23 @@ def create_engine(minsize=1, maxsize=10, loop=None,
2627
2728 Returns Engine instance with embedded connection pool.
2829
29- The pool has *minsize* opened connections to PostgreSQL server.
30+ The pool has *minsize* opened connections to MySQL server.
3031 """
32+ deprecated_cursor_classes = [
33+ DeserializationCursor , DictCursor , SSCursor , SSDictCursor ,
34+ ]
35+
36+ cursorclass = kwargs .get ('cursorclass' , Cursor )
37+ if not issubclass (cursorclass , Cursor ) or any (
38+ issubclass (cursorclass , cursor_class )
39+ for cursor_class in deprecated_cursor_classes
40+ ):
41+ raise ArgumentError ('SQLAlchemy engine does not support '
42+ 'this cursor class' )
43+
3144 coro = _create_engine (minsize = minsize , maxsize = maxsize , loop = loop ,
3245 dialect = dialect , pool_recycle = pool_recycle ,
3346 compiled_cache = compiled_cache , ** kwargs )
34- compatible_cursor_classes = [Cursor ]
35- # Without provided kwarg, default is default cursor from Connection class
36- if kwargs .get ('cursorclass' , Cursor ) not in compatible_cursor_classes :
37- raise ArgumentError ('SQLAlchemy engine does not support '
38- 'this cursor class' )
3947 return _EngineContextManager (coro )
4048
4149
0 commit comments