-class connection(object):
- def __init__(self, driver):
- self.driver = driver
+class connect(object):
+ def __init__(self, dsn):
+ attempt = 0
+ while True:
+ try:
+ self.driver = psycopg2.connect(**dsn)
+ break
+ except psycopg2.OperationalError, e:
+ if attempt == 2:
+ raise e
+ attempt = attempt + 1
+
+ try:
+ self.driver.set_client_encoding('UNICODE')
+ self.driver.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)
+ except:
+ self.driver.close()
+
+ def close(self):
+ self.driver.close()
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, type, value, traceback):
+ self.close()