ó
®â0_c           @   sF   d  d l  Z  d  d l m Z d  d l m Z d e f d „  ƒ  YZ d S(   iÿÿÿÿN(   t   partial(   t
   aggregatest   BaseSpatialFeaturesc           B   s1  e  Z e Z e Z e Z e Z e Z e Z	 e Z
 e Z e Z e Z e Z e Z e Z e Z e Z e Z e Z e Z e Z e d  „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z d( Z e d! „  ƒ Z e d" „  ƒ Z  e d# „  ƒ Z! e d$ „  ƒ Z" d% „  Z# d& „  Z$ d' „  Z% RS()   c         C   s   d |  j  j j k S(   Nt
   bbcontains(   t
   connectiont   opst   gis_operators(   t   self(    (    sN   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/base/features.pyt   supports_bbcontains_lookup2   s    c         C   s   d |  j  j j k S(   Nt	   contained(   R   R   R   (   R   (    (    sN   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/base/features.pyt   supports_contained_lookup6   s    c         C   s   d |  j  j j k S(   Nt   crosses(   R   R   R   (   R   (    (    sN   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/base/features.pyt   supports_crosses_lookup:   s    c         C   s   d |  j  j j k S(   Nt   dwithin(   R   R   R   (   R   (    (    sN   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/base/features.pyt   supports_dwithin_lookup>   s    c         C   s   d |  j  j j k S(   Nt   relate(   R   R   R   (   R   (    (    sN   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/base/features.pyt   supports_relate_lookupB   s    c         C   s   d |  j  j j k S(   Nt   isvalid(   R   R   R   (   R   (    (    sN   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/base/features.pyt   supports_isvalid_lookupF   s    t   areat   bounding_circlet   centroidt
   differencet   distancet   distance_spheroidt   envelopet	   force_rhrt   geohasht   gmlt   intersectiont   kmlt   lengtht   mem_sizet   num_geomt
   num_pointst	   perimetert   point_on_surfacet   reverset   scalet   snap_to_gridt   svgt   sym_differencet	   transformt	   translatet   uniont   unionaggc         C   s   t  j |  j j j k S(   N(   R   t   CollectR   R   t   disallowed_aggregates(   R   (    (    sN   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/base/features.pyt   supports_collect_aggrV   s    c         C   s   t  j |  j j j k S(   N(   R   t   ExtentR   R   R/   (   R   (    (    sN   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/base/features.pyt   supports_extent_aggrZ   s    c         C   s   t  j |  j j j k S(   N(   R   t   MakeLineR   R   R/   (   R   (    (    sN   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/base/features.pyt   supports_make_line_aggr^   s    c         C   s   t  j |  j j j k S(   N(   R   t   UnionR   R   R/   (   R   (    (    sN   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/base/features.pyt   supports_union_aggrb   s    c      	   G   sZ   t  t |  ƒ j | Œ  x= |  j D]2 } t |  j d | t t t j d | ƒƒ ƒ q  Wd  S(   Ns   has_%s_methodt   method(	   t   superR   t   __init__t   geoqueryset_methodst   setattrt	   __class__t   propertyR    t   has_ops_method(   R   t   argsR7   (    (    sN   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/base/features.pyR9   f   s    c         C   sD   t  j d | ƒ } | r: | j d ƒ } | |  j j j k St ‚ d  S(   Ns   has_(\w*)_function$i   (   t   ret   matcht   groupR   R   t   unsupported_functionst   AttributeError(   R   t   namet   mt	   func_name(    (    sN   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/base/features.pyt   __getattr__m   s
    c         C   s   t  |  j j | t ƒ S(   N(   t   getattrR   R   t   False(   R   R7   (    (    sN   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/base/features.pyR>   t   s    (   R   R   R   R   R   R   R   R   R   R   R   R   R   R    R!   R"   R#   R$   R%   R&   R'   R(   R)   R*   R+   R,   R-   (&   t   __name__t
   __module__t   Truet   gis_enabledt   has_spatialrefsys_tablet   supports_add_srs_entryt%   supports_geometry_field_introspectionRJ   t   supports_3d_storaget   supports_3d_functionst   supports_transformt   supports_real_shape_operationst   supports_null_geometriest   supports_empty_geometriest   supports_distance_geodetict   supports_length_geodetict   supports_perimeter_geodetict   supports_area_geodetict   supports_num_points_polyt   supports_distances_lookupst   supports_left_right_lookupst   supports_rastert$   supports_geometry_field_unique_indexR=   R   R
   R   R   R   R   R:   R0   R2   R4   R6   R9   RH   R>   (    (    (    sN   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/base/features.pyR      sJ       		(   R@   t	   functoolsR    t   django.contrib.gis.db.modelsR   t   objectR   (    (    (    sN   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/backends/base/features.pyt   <module>   s   