î
ªÍ XÁ  ã               @   sF   d  d l  Z  d  d l m Z d  d l m Z Gd d „  d e ƒ Z d S)é    N)Úpartial)Ú
aggregatesc                   sH  e  Z d  Z d Z d Z d Z d Z d Z d Z d Z	 d Z
 d Z d Z d Z d Z d Z d Z d Z d Z d Z e d d „  ƒ Z e d d „  ƒ Z e d d „  ƒ Z e d	 d
 „  ƒ Z e d d „  ƒ Z e d d „  ƒ Z d6 Z e d* d+ „  ƒ Z e d, d- „  ƒ Z e d. d/ „  ƒ Z ‡  f d0 d1 †  Z d2 d3 „  Z  d4 d5 „  Z! ‡  S)7ÚBaseSpatialFeaturesTFc             C   s   d |  j  j j k S)NZ
bbcontains)Ú
connectionÚopsÚgis_operators)Úself© r	   úZ/home/ubuntu/projects/ifolica/build/django/django/contrib/gis/db/backends/base/features.pyÚsupports_bbcontains_lookup/   s    z.BaseSpatialFeatures.supports_bbcontains_lookupc             C   s   d |  j  j j k S)NZ	contained)r   r   r   )r   r	   r	   r
   Úsupports_contained_lookup3   s    z-BaseSpatialFeatures.supports_contained_lookupc             C   s   d |  j  j j k S)NZcrosses)r   r   r   )r   r	   r	   r
   Úsupports_crosses_lookup7   s    z+BaseSpatialFeatures.supports_crosses_lookupc             C   s   d |  j  j j k S)NZdwithin)r   r   r   )r   r	   r	   r
   Úsupports_dwithin_lookup;   s    z+BaseSpatialFeatures.supports_dwithin_lookupc             C   s   d |  j  j j k S)NZrelate)r   r   r   )r   r	   r	   r
   Úsupports_relate_lookup?   s    z*BaseSpatialFeatures.supports_relate_lookupc             C   s   d |  j  j j k S)NZisvalid)r   r   r   )r   r	   r	   r
   Úsupports_isvalid_lookupC   s    z+BaseSpatialFeatures.supports_isvalid_lookupÚareaÚbounding_circleÚcentroidÚ
differenceÚdistanceÚdistance_spheroidÚenvelopeÚ	force_rhrÚgeohashÚgmlÚintersectionÚkmlÚlengthÚmem_sizeÚnum_geomÚ
num_pointsÚ	perimeterÚpoint_on_surfaceÚreverseÚscaleÚsnap_to_gridÚsvgÚsym_differenceÚ	transformÚ	translateÚunionÚunionaggc             C   s   t  j |  j j j k S)N)r   ZCollectr   r   Údisallowed_aggregates)r   r	   r	   r
   Úsupports_collect_aggrS   s    z)BaseSpatialFeatures.supports_collect_aggrc             C   s   t  j |  j j j k S)N)r   ZExtentr   r   r,   )r   r	   r	   r
   Úsupports_extent_aggrW   s    z(BaseSpatialFeatures.supports_extent_aggrc             C   s   t  j |  j j j k S)N)r   ZMakeLiner   r   r,   )r   r	   r	   r
   Úsupports_make_line_aggr[   s    z+BaseSpatialFeatures.supports_make_line_aggrc          	      sZ   t  t |  ƒ j | Œ  x= |  j D]2 } t |  j d | t t t j d | ƒƒ ƒ q  Wd  S)Nzhas_%s_methodÚmethod)	Úsuperr   Ú__init__Úgeoqueryset_methodsÚsetattrÚ	__class__Úpropertyr   Úhas_ops_method)r   Úargsr0   )r5   r	   r
   r2   _   s    zBaseSpatialFeatures.__init__c             C   sD   t  j d | ƒ } | r: | j d ƒ } | |  j j j k St ‚ d  S)Nzhas_(\w*)_function$é   )ÚreÚmatchÚgroupr   r   Zunsupported_functionsÚAttributeError)r   ÚnameÚmÚ	func_namer	   r	   r
   Ú__getattr__f   s
    zBaseSpatialFeatures.__getattr__c             C   s   t  |  j j | d ƒ S)NF)Úgetattrr   r   )r   r0   r	   r	   r
   r7   m   s    z"BaseSpatialFeatures.has_ops_method)zarear   r   z
differencer   r   r   r   r   r   zintersectionr   zlengthr   r   r    r!   r"   zreverser$   r%   zsvgr'   r(   z	translatezunionr+   )"Ú__name__Ú
__module__Ú__qualname__Zgis_enabledZhas_spatialrefsys_tableZsupports_add_srs_entryZ%supports_geometry_field_introspectionZsupports_3d_storageZsupports_3d_functionsZsupports_transformZsupports_real_shape_operationsZsupports_null_geometriesZsupports_distance_geodeticZsupports_length_geodeticZsupports_perimeter_geodeticZsupports_num_points_polyZsupports_distances_lookupsZsupports_left_right_lookupsZsupports_rasterZ$supports_geometry_field_unique_indexr6   r   r   r   r   r   r   r3   r-   r.   r/   r2   rA   r7   r	   r	   )r5   r
   r      sD       r   )r:   Ú	functoolsr   Zdjango.contrib.gis.db.modelsr   Úobjectr   r	   r	   r	   r
   Ú<module>   s   