app/django/contrib/gis/db/backend/base.py
author Sverre Rabbelier <srabbelier@gmail.com>
Wed, 26 Nov 2008 20:50:56 +0000
changeset 590 37735d97b541
parent 323 ff1a9aa48cfd
permissions -rw-r--r--
Created a seperate module for editSelf things This improves the coherency in the user module, while at the same time making it easier to set proper access control for the editSelf related pages. Patch by: Sverre Rabbelier

"""
 This module holds the base `SpatialBackend` object, which is
 instantiated by each spatial backend with the features it has.
"""
# TODO: Create a `Geometry` protocol and allow user to use
# different Geometry objects -- for now we just use GEOSGeometry.
from django.contrib.gis.geos import GEOSGeometry, GEOSException

class BaseSpatialBackend(object):
    Geometry = GEOSGeometry
    GeometryException = GEOSException

    def __init__(self, **kwargs):
        kwargs.setdefault('distance_functions', {})
        kwargs.setdefault('limited_where', {})
        for k, v in kwargs.iteritems(): setattr(self, k, v)
 
    def __getattr__(self, name):
        """
        All attributes of the spatial backend return False by default.
        """
        try:
            return self.__dict__[name]
        except KeyError:
            return False