diff -r b758351d191f -r cc9b7e14412b web/lib/django/contrib/gis/db/backend/util.py --- a/web/lib/django/contrib/gis/db/backend/util.py Wed May 19 17:43:59 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -""" -A collection of utility routines and classes used by the spatial -backends. -""" - -def getstatusoutput(cmd): - """ - Executes a shell command on the platform using subprocess.Popen and - return a tuple of the status and stdout output. - """ - from subprocess import Popen, PIPE - # Set stdout and stderr to PIPE because we want to capture stdout and - # prevent stderr from displaying. - p = Popen(cmd, shell=True, stdout=PIPE, stderr=PIPE) - # We use p.communicate() instead of p.wait() to avoid deadlocks if the - # output buffers exceed POSIX buffer size. - stdout, stderr = p.communicate() - return p.returncode, stdout.strip() - -def gqn(val): - """ - The geographic quote name function; used for quoting tables and - geometries (they use single rather than the double quotes of the - backend quotename function). - """ - if isinstance(val, basestring): - if isinstance(val, unicode): val = val.encode('ascii') - return "'%s'" % val - else: - return str(val) - -class SpatialOperation(object): - """ - Base class for generating spatial SQL. - """ - def __init__(self, function='', operator='', result='', beg_subst='', end_subst=''): - self.function = function - self.operator = operator - self.result = result - self.beg_subst = beg_subst - try: - # Try and put the operator and result into to the - # end substitution. - self.end_subst = end_subst % (operator, result) - except TypeError: - self.end_subst = end_subst - - @property - def sql_subst(self): - return ''.join([self.beg_subst, self.end_subst]) - - def as_sql(self, geo_col): - return self.sql_subst % self.params(geo_col) - - def params(self, geo_col): - return (geo_col, self.operator) - -class SpatialFunction(SpatialOperation): - """ - Base class for generating spatial SQL related to a function. - """ - def __init__(self, func, beg_subst='%s(%s, %%s', end_subst=')', result='', operator=''): - # Getting the function prefix. - kwargs = {'function' : func, 'operator' : operator, 'result' : result, - 'beg_subst' : beg_subst, 'end_subst' : end_subst,} - super(SpatialFunction, self).__init__(**kwargs) - - def params(self, geo_col): - return (self.function, geo_col)