annot-server/utils.py
changeset 0 e1d4d7a8255a
child 22 986ee928a866
equal deleted inserted replaced
-1:000000000000 0:e1d4d7a8255a
       
     1 
       
     2 #
       
     3 # See LICENCE for detail
       
     4 # Copyright (c) 2014 IRI
       
     5 #
       
     6 
       
     7 import psycopg2.extras
       
     8 
       
     9 from twisted.python import log
       
    10 
       
    11 from txpostgres.txpostgres import Connection, ConnectionPool
       
    12 
       
    13 
       
    14 PIANOROLL_CHANNEL = 'PIANOROLL'
       
    15 ANNOTATION_CHANNEL = 'ANNOT'
       
    16 
       
    17 class DictConnection(Connection):
       
    18 
       
    19     @staticmethod
       
    20     def connectionFactory(*args, **kwargs):
       
    21         kwargs['connection_factory'] = psycopg2.extras.DictConnection
       
    22         return psycopg2.connect(*args, **kwargs)
       
    23 
       
    24 
       
    25 class DictConnectionPool(ConnectionPool):
       
    26     connectionFactory = DictConnection
       
    27 
       
    28 
       
    29 def create_connection_pool(conn_string):
       
    30 
       
    31     created_connection_pool = DictConnectionPool(None, conn_string)
       
    32 
       
    33     d = created_connection_pool.start()
       
    34     d.addErrback(log.err)
       
    35 
       
    36     return created_connection_pool, d