summaryrefslogtreecommitdiff
path: root/lib/python2.7/site-packages/django/contrib/gis/db/backends/util.py
diff options
context:
space:
mode:
authorttt2017-05-13 00:29:47 +0530
committerttt2017-05-13 00:29:47 +0530
commitabf599be33b383a6a5baf9493093b2126a622ac8 (patch)
tree4c5ab6e0d935d5e65fabcf0258e4a00dd20a5afa /lib/python2.7/site-packages/django/contrib/gis/db/backends/util.py
downloadSBHS-2018-Rpi-abf599be33b383a6a5baf9493093b2126a622ac8.tar.gz
SBHS-2018-Rpi-abf599be33b383a6a5baf9493093b2126a622ac8.tar.bz2
SBHS-2018-Rpi-abf599be33b383a6a5baf9493093b2126a622ac8.zip
added all server files
Diffstat (limited to 'lib/python2.7/site-packages/django/contrib/gis/db/backends/util.py')
-rw-r--r--lib/python2.7/site-packages/django/contrib/gis/db/backends/util.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/lib/python2.7/site-packages/django/contrib/gis/db/backends/util.py b/lib/python2.7/site-packages/django/contrib/gis/db/backends/util.py
new file mode 100644
index 0000000..2612810
--- /dev/null
+++ b/lib/python2.7/site-packages/django/contrib/gis/db/backends/util.py
@@ -0,0 +1,44 @@
+"""
+A collection of utility routines and classes used by the spatial
+backends.
+"""
+
+class SpatialOperation(object):
+ """
+ Base class for generating spatial SQL.
+ """
+ sql_template = '%(geo_col)s %(operator)s %(geometry)s'
+
+ def __init__(self, function='', operator='', result='', **kwargs):
+ self.function = function
+ self.operator = operator
+ self.result = result
+ self.extra = kwargs
+
+ def as_sql(self, geo_col, geometry='%s'):
+ return self.sql_template % self.params(geo_col, geometry), []
+
+ def params(self, geo_col, geometry):
+ params = {'function' : self.function,
+ 'geo_col' : geo_col,
+ 'geometry' : geometry,
+ 'operator' : self.operator,
+ 'result' : self.result,
+ }
+ params.update(self.extra)
+ return params
+
+class SpatialFunction(SpatialOperation):
+ """
+ Base class for generating spatial SQL related to a function.
+ """
+ sql_template = '%(function)s(%(geo_col)s, %(geometry)s)'
+
+ def __init__(self, func, result='', operator='', **kwargs):
+ # Getting the function prefix.
+ default = {'function' : func,
+ 'operator' : operator,
+ 'result' : result
+ }
+ kwargs.update(default)
+ super(SpatialFunction, self).__init__(**kwargs)