36 |
(psycopg.INTEGER, table.FIELDTYPE_INT), |
(psycopg.INTEGER, table.FIELDTYPE_INT), |
37 |
(psycopg.FLOAT, table.FIELDTYPE_DOUBLE)] |
(psycopg.FLOAT, table.FIELDTYPE_DOUBLE)] |
38 |
|
|
39 |
|
|
40 |
|
class ConnectionError(Exception): |
41 |
|
|
42 |
|
"""Class for exceptions occurring when establishing a Databse connection""" |
43 |
|
|
44 |
|
|
45 |
class PostGISConnection: |
class PostGISConnection: |
46 |
|
|
47 |
"""Represent a PostGIS database |
"""Represent a PostGIS database |
73 |
val = getattr(self, name) |
val = getattr(self, name) |
74 |
if val: |
if val: |
75 |
params.append("%s=%s" % (name, val)) |
params.append("%s=%s" % (name, val)) |
76 |
self.connection = psycopg.connect(" ".join(params)) |
try: |
77 |
|
self.connection = psycopg.connect(" ".join(params)) |
78 |
|
except psycopg.OperationalError, val: |
79 |
|
raise ConnectionError(str(val)) |
80 |
|
|
81 |
# determine the OID for the geometry type. This is PostGIS |
# determine the OID for the geometry type. This is PostGIS |
82 |
# specific. |
# specific. |
172 |
% (", ".join([col.name for col in self.columns]), |
% (", ".join([col.name for col in self.columns]), |
173 |
self.tablename)) |
self.tablename)) |
174 |
|
|
175 |
|
def DBConnection(self): |
176 |
|
"""Return the dbconnection used by the table""" |
177 |
|
return self.db |
178 |
|
|
179 |
|
def TableName(self): |
180 |
|
"""Return the name of the table in the database""" |
181 |
|
return self.tablename |
182 |
|
|
183 |
def Dependencies(self): |
def Dependencies(self): |
184 |
"""Return an empty tuple because a PostGISTable depends on nothing else |
"""Return an empty tuple because a PostGISTable depends on nothing else |
185 |
""" |
""" |
287 |
|
|
288 |
|
|
289 |
shapetype_map = {"POLYGON": SHAPETYPE_POLYGON, |
shapetype_map = {"POLYGON": SHAPETYPE_POLYGON, |
290 |
|
"MULTIPOLYGON": SHAPETYPE_POLYGON, |
291 |
"MULTILINESTRING": SHAPETYPE_ARC, |
"MULTILINESTRING": SHAPETYPE_ARC, |
292 |
"POINT": SHAPETYPE_POINT} |
"POINT": SHAPETYPE_POINT} |
293 |
|
|