
    h                        S SK JrJr  S SKJrJrJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJr   " S S\5      r " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S \5      r " S! S"\5      r " S# S$\5      r\\\\\\\\\\\\\\S%.r\R?                  5        V Vs0 s H  u  pX_M	     snn r g&s  snn f )'    )byrefc_int)datedatetimetime)GDALBase)GDALException)ds)	force_strc                       \ rS rSrSrS rS rS rSS jrS r	S r
\S	 5       r\S
 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       rSrg)Field   zD
Wrap an OGR Field. Needs to be instantiated from a Feature object.
c                     Xl         X l        [        R                  " UR                  U5      nU(       d  [        S5      eX0l        [        U R                     U l        g)zY
Initialize on the feature object and the integer index of
the field within the feature.
z/Cannot create OGR Field, invalid pointer given.N)	_feat_indexcapiget_feat_field_defnptrr	   OGRFieldTypestype	__class__)selffeatindexfld_ptrs       O/var/www/html/env/lib/python3.13/site-packages/django/contrib/gis/gdal/field.py__init__Field.__init__   sL     
 **488U; QRR 'tyy1    c                 H    [        U R                  5      R                  5       $ )z.Return the string representation of the Field.)strvaluestripr   s    r   __str__Field.__str__%   s    4::$$&&r   c                     U R                   (       a5  [        R                  " U R                  R                  U R
                  5      $ S$ )z/Retrieve the Field's value as a double (float).N)is_setr   get_field_as_doubler   r   r   r$   s    r   	as_doubleField.as_double*   s8     {{ $$TZZ^^T[[A	
 	
r   c                 0   U(       aH  U R                   (       a5  [        R                  " U R                  R                  U R
                  5      $ S$ U R                   (       a5  [        R                  " U R                  R                  U R
                  5      $ S$ )z)Retrieve the Field's value as an integer.N)r(   r   get_field_as_integer64r   r   r   get_field_as_integer)r   is_64s     r   as_intField.as_int2   sq     ;; ++DJJNNDKKH  ;; ))$**..$++F r   c                     U R                   (       d  g[        R                  " U R                  R                  U R
                  5      n[        XR                  R                  SS9$ )z'Retrieve the Field's value as a string.NTencodingstrings_only)r(   r   get_field_as_stringr   r   r   r   r4   )r   strings     r   	as_stringField.as_stringA   sA    {{))$**..$++F***=*=DQQr   c                    U R                   (       d  g[        S5       Vs/ s H  n[        5       PM     snu  p#pEpgn[        R                  " U R
                  R                  U R                  [        U5      [        U5      [        U5      [        U5      [        U5      [        U5      [        U5      5	      n	U	(       a  X#XEXgU4$ [        S5      es  snf )z@Retrieve the Field's value as a tuple of date & time components.N   z:Unable to retrieve date & time information from the field.)
r(   ranger   r   get_field_as_datetimer   r   r   r   r	   )
r   iyymmddhhmnsstzstatuss
             r   as_datetimeField.as_datetimeH   s    {{7<Qx%@x!egx%@"++JJNNKK"I"I"I"I"I"I"I

 BBB//L  &As   Cc                 l    [         R                  " U R                  R                  U R                  5      $ )zCReturn True if the value of this field isn't null, False otherwise.)r   is_field_setr   r   r   r$   s    r   r(   Field.is_set`   s#       ==r   c                 ~    [         R                  " U R                  5      n[        XR                  R
                  SS9$ )zReturn the name of this Field.Tr3   )r   get_field_namer   r   r   r4   )r   names     r   rN   
Field.namee   s/     ""488,

(;(;$OOr   c                 B    [         R                  " U R                  5      $ )z#Return the precision of this Field.)r   get_field_precisionr   r$   s    r   	precisionField.precisionk   s     ''11r   c                 B    [         R                  " U R                  5      $ )z"Return the OGR type of this Field.)r   get_field_typer   r$   s    r   r   
Field.typep   s     ""488,,r   c                 B    [         R                  " U R                  5      $ )z.Return the OGR field type name for this Field.)r   get_field_type_namer   r$   s    r   	type_nameField.type_nameu   s     ''		22r   c                 "    U R                  5       $ )zReturn the value of this Field.)r8   r$   s    r   r"   Field.valuez   s     ~~r   c                 B    [         R                  " U R                  5      $ )zReturn the width of this Field.)r   get_field_widthr   r$   s    r   widthField.width   s     ##DHH--r   )r   r   r   r   N)F)__name__
__module____qualname____firstlineno____doc__r   r%   r*   r0   r8   rG   propertyr(   rN   rR   r   rY   r"   r_   __static_attributes__ r   r   r   r      s    2$'

R0 > > P P
 2 2 - - 3 3    
 . .r   r   c                   8    \ rS rSrSr\S 5       r\S 5       rSrg)
OFTInteger   Fc                 8    U R                  U R                  5      $ )z*Return an integer contained in this field.)r0   _bit64r$   s    r   r"   OFTInteger.value   s     {{4;;''r   c                     g)z
GDAL uses OFTReals to represent OFTIntegers in created
shapefiles -- forcing the type here since the underlying field
type may actually be OFTReal.
r   rh   r$   s    r   r   OFTInteger.type   s     r   rh   N)	ra   rb   rc   rd   rm   rf   r"   r   rg   rh   r   r   rj   rj      s-    F( (  r   rj   c                   $    \ rS rSr\S 5       rSrg)OFTReal   c                 "    U R                  5       $ )z'Return a float contained in this field.)r*   r$   s    r   r"   OFTReal.value   s     ~~r   rh   Nra   rb   rc   rd   rf   r"   rg   rh   r   r   rr   rr      s       r   rr   c                       \ rS rSrSrg)	OFTString   rh   Nra   rb   rc   rd   rg   rh   r   r   rx   rx          r   rx   c                       \ rS rSrSrg)OFTWideString   rh   Nrz   rh   r   r   r}   r}      r{   r   r}   c                       \ rS rSrSrg)	OFTBinary   rh   Nrz   rh   r   r   r   r      r{   r   r   c                   $    \ rS rSr\S 5       rSrg)OFTDate   c                      U R                  5       u  pp4pVn[        UR                  UR                  UR                  5      $ ! [        [        [
        4 a     gf = f)z4Return a Python `date` object for the OFTDate field.N)rG   r   r"   	TypeError
ValueErrorr	   r   r?   r@   rA   rB   rC   rD   rE   s           r   r"   OFTDate.value   sR    	)-)9)9);&BBBB"((BHH55:}5 		s   ?A AArh   Nrv   rh   r   r   r   r           r   r   c                   $    \ rS rSr\S 5       rSrg)OFTDateTime   c                      U R                  5       u  pp4pVn[        UR                  UR                  UR                  UR                  UR                  UR                  5      $ ! [        [        [
        4 a     gf = f)z=Return a Python `datetime` object for this OFTDateTime field.N)rG   r   r"   r   r   r	   r   s           r   r"   OFTDateTime.value   sd    	)-)9)9);&BBBBBHHbhh"((BHHbhhWW:}5 		s   A A# #A;:A;rh   Nrv   rh   r   r   r   r      s    
 
r   r   c                   $    \ rS rSr\S 5       rSrg)OFTTime   c                      U R                  5       u  pp4pVn[        UR                  UR                  UR                  5      $ ! [        [        4 a     gf = f)z5Return a Python `time` object for this OFTTime field.N)rG   r   r"   r   r	   r   s           r   r"   OFTTime.value   sP    	)-)9)9);&BBBB"((BHH55M* 		s   ?A AArh   Nrv   rh   r   r   r   r      r   r   r   c                       \ rS rSrSrSrg)OFTInteger64   Trh   N)ra   rb   rc   rd   rm   rg   rh   r   r   r   r      s    Fr   r   c                       \ rS rSrSrg)OFTIntegerList   rh   Nrz   rh   r   r   r   r      r{   r   r   c                       \ rS rSrSrg)OFTRealList   rh   Nrz   rh   r   r   r   r      r{   r   r   c                       \ rS rSrSrg)OFTStringList   rh   Nrz   rh   r   r   r   r      r{   r   r   c                       \ rS rSrSrg)OFTWideStringList   rh   Nrz   rh   r   r   r   r      r{   r   r   c                       \ rS rSrSrg)OFTInteger64List   rh   Nrz   rh   r   r   r   r      r{   r   r   )r                     r;      	   
            N)!ctypesr   r   r   r   r   django.contrib.gis.gdal.baser   django.contrib.gis.gdal.errorr	   "django.contrib.gis.gdal.prototypesr
   r   django.utils.encodingr   r   rj   rr   rx   r}   r   r   r   r   r   r   r   r   r   r   r   itemsROGRFieldTypes)numclss   00r   <module>r      s,    ) ) 1 7 9 +u.H u.r $ e  	 		E 		 	
e % e : 
	U 		% 		E 		 		u 	   ,9+>+>+@A+@xs#(+@AAs   4D