[Twisted-Python] Using different cursor types with psycopg+twisted.enterprise.adbapi?

Nathan nathan.stocks at gmail.com
Fri Apr 18 14:38:30 MDT 2008


On Fri, Apr 18, 2008 at 2:12 PM, Vlado Handziski
<handzisk at tkn.tu-berlin.de> wrote:
>  I am using the hack below from Federico Di Gregorio to force a
>  RealDictCursor in my adbapi stores:
>
>  #module twistedpg.py
>  #Author: Federico Di Gregorio
>
>  from psycopg2 import *
>  from psycopg2 import _psycopg as _2psycopg
>  from psycopg2.extensions import register_type, UNICODE, connection as
>  _2connection
>  from psycopg2.extras import RealDictCursor
>
>  del connect
>  def connect(*args, **kwargs):
>     kwargs['connection_factory'] = connection
>     return _2psycopg.connect(*args, **kwargs)
>
>  class connection(_2connection):
>     def cursor(self):
>         return _2connection.cursor(self, cursor_factory=RealDictCursor)
>
>  register_type(UNICODE)
>
>  and then:
>
>         self.dbpool = adbapi.ConnectionPool('twistedpg',
>                                             database=dname,
>                                             user=duser,
>                                             password=dpasswd,
>                                             host=dhost,
>                                             cp_reconnect=True)

Oh, ok!  That makes sense.  So since twisted just calls the underlying
db module's connect() function, you just (in essence) sub-classed the
whole psycopg2 module and overrode connect() to use the DictCursor.

I don't understand what the "UNICODE" stuff is about, though.  Do you
know what that is?

~ Nathan




More information about the Twisted-Python mailing list