
0_c           @  s   d  Z  d d l m Z d d l m Z d d l m Z d d l m Z d d l	 m
 Z
 m Z d e f d     YZ d	 e f d
     YZ d e f d     YZ d e e f d     YZ d e f d     YZ d S(   uR   
This module holds simple classes to convert geospatial values from the
database.
i(   t   unicode_literals(   t   Decimal(   t   GeoSelectFormatMixin(   t   Geometry(   t   Areat   Distancet	   BaseFieldc           B  s    e  Z e Z d    Z d   Z RS(   c         C  s
   |  j  g S(   N(   t   from_db_value(   t   selft
   connection(    (    sM   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/models/sql/conversion.pyt   get_db_converters   s    c         C  s
   | | f S(   N(    (   R   t   compilert   sqlt   params(    (    sM   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/models/sql/conversion.pyt   select_format   s    (   t   __name__t
   __module__t   Truet   empty_strings_allowedR
   R   (    (    (    sM   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/models/sql/conversion.pyR      s   	t	   AreaFieldc           B  s,   e  Z d  Z d d  Z d   Z d   Z RS(   u   Wrapper for Area values.c         C  s   | |  _  d  S(   N(   t   area_att(   R   R   (    (    sM   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/models/sql/conversion.pyt   __init__   s    c         C  sq   | j  j r! | d k r! d  } n  t | t  r? t |  } n  | d  k	 rm |  j rm t i | |  j 6  } n  | S(   Nu    (   t   featurest!   interprets_empty_strings_as_nullst   Nonet
   isinstanceR   t   floatR   R   (   R   t   valuet
   expressionR	   t   context(    (    sM   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/models/sql/conversion.pyR      s    	c         C  s   d S(   Nu	   AreaField(    (   R   (    (    sM   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/models/sql/conversion.pyt   get_internal_type)   s    N(   R   R   t   __doc__R   R   R   R   (    (    (    sM   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/models/sql/conversion.pyR      s   	t   DistanceFieldc           B  s)   e  Z d  Z d   Z d   Z d   Z RS(   u   Wrapper for Distance values.c         C  s   | |  _  d  S(   N(   t   distance_att(   R   R!   (    (    sM   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/models/sql/conversion.pyR   /   s    c         C  s)   | d  k	 r% t i | |  j 6  } n  | S(   N(   R   R   R!   (   R   R   R   R	   R   (    (    sM   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/models/sql/conversion.pyR   2   s    c         C  s   d S(   Nu   DistanceField(    (   R   (    (    sM   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/models/sql/conversion.pyR   7   s    (   R   R   R   R   R   R   (    (    (    sM   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/models/sql/conversion.pyR    -   s   		t	   GeomFieldc           B  s&   e  Z d  Z d Z d   Z d   Z RS(   u   
    Wrapper for Geometry values.  It is a lightweight alternative to
    using GeometryField (which requires an SQL query upon instantiation).
    c         C  s   | d  k	 r t |  } n  | S(   N(   R   R   (   R   R   R   R	   R   (    (    sM   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/models/sql/conversion.pyR   C   s    c         C  s   d S(   Nu   GeometryField(    (   R   (    (    sM   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/models/sql/conversion.pyR   H   s    N(   R   R   R   R   t	   geom_typeR   R   (    (    (    sM   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/models/sql/conversion.pyR"   ;   s   	t   GMLFieldc           B  s    e  Z d  Z d   Z d   Z RS(   uQ   
    Wrapper for GML to be used by Oracle to ensure Database.LOB conversion.
    c         C  s   d S(   Nu   GMLField(    (   R   (    (    sM   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/models/sql/conversion.pyR   Q   s    c         C  s   | S(   N(    (   R   R   R   R	   R   (    (    sM   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/models/sql/conversion.pyR   T   s    (   R   R   R   R   R   (    (    (    sM   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/models/sql/conversion.pyR$   L   s   	N(   R   t
   __future__R    t   decimalR   t#   django.contrib.gis.db.models.fieldsR   t#   django.contrib.gis.geometry.backendR   t   django.contrib.gis.measureR   R   t   objectR   R   R    R"   R$   (    (    (    sM   /tmp/pip-unpacked-wheel-BAJOf3/django/contrib/gis/db/models/sql/conversion.pyt   <module>   s   
