
    Dh0                     R   S r SSKJr  SSKJr  SSKJr  SSKrSSKJ	r	  SSK
r
SSKJr  SSKJr  \
R                  " 5       rS	\l        S
\l         " S S\5      r\R(                  R*                  S\R,                  R*                  S\R.                  R*                  S\R0                  R*                  S\R2                  R*                  S\R4                  R*                  S\R6                  R*                  S\R8                  R*                  S0r0 \E\R<                  R*                  S\R>                  R*                  S\R@                  R*                  S\RB                  R*                  S\RD                  R*                  S\RF                  R*                  S\RH                  R*                  S\RJ                  R*                  S\RL                  R*                  S0	E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/S- r0g).zFiona data model    )hexlify)MutableMapping)EnumN)JSONEncoder)warn)FionaDeprecationWarning      c                   0   \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!S r"S!r#S"r$S#r%S$r&S%r'S&r(S'r)S(r*S)r+S*r,S+r-S,r.S-r/S.r0S/r1S0r2S1r3S2r4S3r5S4r6S5r7S6r8S7r9S8r:S9r;S:r<S;r=S<r>S=r?S>r@S?rAS@rBSArCSBrDSCrESDrFSErGSFrHSGrISHrJSIrKgJ)KOGRGeometryType   r   r	            r
            	   
                        d   e   i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  i  l       l       l       l       l       l       l        N)L__name__
__module____qualname____firstlineno__UnknownPoint
LineStringPolygon
MultiPointMultiLineStringMultiPolygonGeometryCollectionCircularStringCompoundCurveCurvePolygon
MultiCurveMultiSurfaceCurveSurfacePolyhedralSurfaceTINTriangleNONE
LinearRingCircularStringZCompoundCurveZCurvePolygonZMultiCurveZMultiSurfaceZCurveZSurfaceZPolyhedralSurfaceZTINZ	TriangleZPointMLineStringMPolygonMMultiPointMMultiLineStringMMultiPolygonMGeometryCollectionMCircularStringMCompoundCurveMCurvePolygonMMultiCurveMMultiSurfaceMCurveMSurfaceMPolyhedralSurfaceMTINM	TriangleMPointZMLineStringZM	PolygonZMMultiPointZMMultiLineStringZMMultiPolygonZMGeometryCollectionZMCircularStringZMCompoundCurveZMCurvePolygonZMMultiCurveZMMultiSurfaceZMCurveZM	SurfaceZMPolyhedralSurfaceZMTINZM
TriangleZMPoint25DLineString25D
Polygon25DMultiPoint25DMultiLineString25DMultiPolygon25DGeometryCollection25D__static_attributes__r       ^C:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\fiona/model.pyr   r      sq   GEJGJOLNMLJLEG
CHDJONMKMFHDIFKHKMONMKMFHDIGLILNONLNGIEJHMJM# O&rl   r   r$   r%   r&   r'   r(   r)   r*   r+   Noner7   z3D Pointz3D LineStringz
3D Polygonz3D MultiPointz3D MultiLineStringz3D MultiPolygonz3D GeometryCollectionc                   R    \ rS rSrSr/ rS rS rS rS r	S r
S rS	 rS
 rS rSrg)Objectv   a]  Base class for CRS, geometry, and feature objects

In Fiona 2.0, the implementation of those objects will change.  They
will no longer be dicts or derive from dict, and will lose some
features like mutability and default JSON serialization.

Object will be used for these objects in Fiona 1.9. This class warns
about future deprecation of features.
c                 $    [        S0 UD6U l        g Nr   )dict_data)selfkwdss     rm   __init__Object.__init__   s    \D\
rl   c                 z    U R                    Vs0 s H  nUc  M  U[        U R                  U5      _M!     sn$ s  snf N)_delegated_propertiesgetattr	_delegate)rv   ks     rm   _propsObject._props   sD     //
/ *Awt~~q))/
 	
 
s   88c           	      >   XR                   ;   a  [        U R                  U5      $ U R                  5       R	                  5        VVs0 s H(  u  p#U[        U[        5      (       a  [        U5      OU_M*     nnnUR                  " S0 U R                  D6  XA   $ s  snnf rs   )
r|   r}   r~   r   items
isinstancerp   rt   updateru   )rv   itemr   vpropss        rm   __getitem__Object.__getitem__   s    ---4>>400 !KKM//11DA z!V44DG!;1   LL&4::&;s   /Bc                     U R                  5       n[        R                  " [        U5      [        U R                  5      5      $ r{   )r   	itertoolschainiterru   rv   r   s     rm   __iter__Object.__iter__   s+    tE{D,<==rl   c                 d    U R                  5       n[        U5      [        U R                  5      -   $ r{   )r   lenru   r   s     rm   __len__Object.__len__   s$    5zC

O++rl   c                 B   [         R                  " U R                  5       R                  5       U R                  R                  5       5       VVs/ s H  u  pU SU< 3PM     nnnSR                  U R                  R                  SR                  U5      5      $ s  snnf )N=zfiona.{}({}), )	r   r   r   r   ru   format	__class__r    joinrv   r   r   kvss       rm   __repr__Object.__repr__   s     "(;(;(=tzz?O?O?QR
R c1%LR 	 
 $$T^^%<%<diinMM	
s   Bc                     [        S[        SS9  XR                  ;   a  [        U R                  X5        g X R
                  U'   g Nzkinstances of this class -- CRS, geometry, and feature objects -- will become immutable in fiona version 2.0r   )
stacklevelr   r   r|   setattrr~   ru   )rv   keyvalues      rm   __setitem__Object.__setitem__   s:    y#	

 ,,,DNNC/#JJsOrl   c                     [        S[        SS9  XR                  ;   a  [        U R                  US 5        g U R
                  U	 g r   r   )rv   r   s     rm   __delitem__Object.__delitem__   s<    y#	

 ,,,DNNC.

3rl   c                 0    [        S0 U D6[        S0 UD6:H  $ rs   )rt   rv   others     rm   __eq__Object.__eq__   s    |d|t}e},,rl   )ru   N)r    r!   r"   r#   __doc__r|   rx   r   r   r   r   r   r   r   r   rk   r   rl   rm   rp   rp   v   s=     "
	>,N	$	 -rl   rp   c                       \ rS rSrSS jrSrg)	_Geometry   Nc                 (    Xl         X l        X0l        g r{   coordinatestype
geometries)rv   r   r   r   s       rm   rx   _Geometry.__init__   s    &	$rl   )r   r   r   NNNr    r!   r"   r#   rx   rk   r   rl   rm   r   r          %rl   r   c                      ^  \ rS rSrSr/ SQrSU 4S jjrS r\SS j5       r	\
S 5       r\
S 5       r\
S	 5       r\
S
 5       rSrU =r$ )Geometry   zA GeoJSON-like geometry

Notes
-----
Delegates coordinates and type properties to an instance of
_Geometry, which will become an extension class in Fiona 2.0.

r   c                 D   > [        XUS9U l        [        TU ]  " S0 UD6  g )Nr   r   )r   r~   superrx   )rv   r   r   r   datar   s        rm   rx   Geometry.__init__   s&    "#:
 	 4 rl   c           	          U R                  5        VVs/ s H$  u  pUc  M
  U S[        R                  U5       3PM&     nnnSR                  SR	                  U5      5      $ s  snnf )Nr   zfiona.Geometry({})r   )r   _model_reprreprr   r   r   s       rm   r   Geometry.__repr__   sY    8<

V+!Ak&&q)*+V#**499S>:: Ws
   	A"A"c           
         Ub(  [        [        USU5      5      nUR                  U5        OUnSU;   an  US   S:X  ae  UR                  SS 5      nUR                  SS 5      n[	        SSUR                  S5       Vs/ s H  n[        R                  U5      PM     snS.UD6$ UR                  SS 5      n[	        SUR                  SS 5      UR                  S/ 5      S.UD6$ s  snf )	N__geo_interface__r   r   r+   r   )r   r   )r   r   r   )rt   r}   r   popr   	from_dict)clsobkwargsr   _parts         rm   r   Geometry.from_dict   s    >$7<=DKKD4DL4H$H-A&A )9=,9O9OH&&t,9O
   t,A XXfd+ HH]B7  s   ;C"c                 .    U R                   R                  $ )z6The geometry's coordinates

Returns
-------
Sequence

)r~   r   rv   s    rm   r   Geometry.coordinates   s     ~~)))rl   c                 .    U R                   R                  $ )z*The geometry's type

Returns
-------
str

)r~   r   r   s    rm   r   Geometry.type  s     ~~"""rl   c                 .    U R                   R                  $ )z2A collection's geometries.

Returns
-------
list

)r~   r   r   s    rm   r   Geometry.geometries       ~~(((rl   c                 4    [        5       R                  U 5      $ r{   ObjectEncoderdefaultr   s    rm   r   Geometry.__geo_interface__      &&t,,rl   r~   r   r{   )r    r!   r"   r#   r   r|   rx   r   classmethodr   propertyr   r   r   r   rk   __classcell__r   s   @rm   r   r      s     B!;  2 * * # # ) ) - -rl   r   c                       \ rS rSrSS jrSrg)_Featurei  Nc                 (    Xl         X l        X0l        g r{   geometryid
properties)rv   r   r   r   s       rm   rx   _Feature.__init__  s     $rl   r   r   r   r   rl   rm   r   r     r   rl   r   c                      ^  \ rS rSrSr/ SQrSU 4S jjr\SS j5       rS r	\
S 5       r\
S 5       r\
S	 5       r\
S
 5       r\
S 5       rSrU =r$ )Featurei%  zA GeoJSON-like feature

Notes
-----
Delegates geometry and properties to an instance of _Feature, which
will become an extension class in Fiona 2.0.

r   c                 ^   > Uc
  [        5       n[        XUS9U l        [        TU ]  " S0 UD6  g )Nr   r   )
Propertiesr   r~   r   rx   )rv   r   r   r   r   r   s        rm   rx   Feature.__init__1  s.    #J!8zR 4 rl   c                    Ub(  [        [        USU5      5      nUR                  U5        OUnUR                  SS 5      n[	        U[
        5      (       a  UnOUb  [
        R                  U5      OS nUR                  SS 5      n[	        U[        5      (       a  UnOUb  [        S0 UD6OS nUR                  SS 5      n[        SXXUS.UD6$ )Nr   r   r   r   r   r   )	rt   r}   r   r   r   r   r   r   r   )	r   r   r   r   	geom_datageom
props_datar   fids	            rm   r   Feature.from_dict7  s    >$7<=DKKDHHZ.	i**D4=4I8%%i0tDXXlD1
j*--E0:0FJ,,DEhhtT"GG$GGrl   c                     U R                   UR                   :H  =(       a9    U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r{   r   r   s     rm   r   Feature.__eq__O  sC    MMU^^+ 4588#45#3#33	
rl   c                 .    U R                   R                  $ )z9The feature's geometry object

Returns
-------
Geometry

)r~   r   r   s    rm   r   Feature.geometryV  s     ~~&&&rl   c                 .    U R                   R                  $ )z)The feature's id

Returns
------
object

)r~   r   r   s    rm   r   
Feature.ida  s     ~~   rl   c                 .    U R                   R                  $ )z2The feature's properties

Returns
-------
object

)r~   r   r   s    rm   r   Feature.propertiesl  r   rl   c                     g)z)The Feature's type

Returns
-------
str

r   r   r   s    rm   r   Feature.typew  s     rl   c                 4    [        5       R                  U 5      $ r{   r   r   s    rm   r   Feature.__geo_interface__  r   rl   r   r   r{   )r    r!   r"   r#   r   r|   rx   r   r   r   r   r   r   r   r   r   rk   r   r   s   @rm   r   r   %  s     =! H H.
 ' ' ! ! ) )   - -rl   r   c                   @   ^  \ rS rSrSrU 4S jr\SS j5       rSrU =r	$ )r   i  z#A GeoJSON-like feature's propertiesc                 &   > [         TU ]  " S0 UD6  g rs   )r   rx   )rv   rw   r   s     rm   rx   Properties.__init__  s     4 rl   c                 @    U(       a  [        S0 UDUD6$ [        S0 UD6$ rs   )r   )r   mappingr   s      rm   r   Properties.from_dict  s&    22622#F##rl   r   r{   )
r    r!   r"   r#   r   rx   r   r   rk   r   r   s   @rm   r   r     s    -! $ $rl   r   c                       \ rS rSrSrS rSrg)r   i  z*Encodes Geometry, Feature, and Properties.c                 ,   [        U[        5      (       a  [        R                  " UR	                  5       R                  5       UR                  R                  5       5       VVs0 s H  u  p#X R                  U5      _M     nnn[        U[        5      (       a9  UR                  S:X  a  UR                  SS 5      nU$ UR                  SS 5      n U$ [        U[        5      (       a  SUS'   U$ [        U[        5      (       a  [        U5      $ U$ s  snnf )Nr+   r   r   r   r   )r   rp   r   r   r   r   ru   r   r   r   r   r   bytesr   )rv   or   r   o_dictr   s         rm   r   ObjectEncoder.default  s    a   &OOAHHJ,<,<,>PPDA <<?"P   !X&&6611

=$7A
 M 

<6A M Aw''!*vM5!!1:Hs   $Dr   N)r    r!   r"   r#   r   r   rk   r   rl   rm   r   r     s
    4rl   r   c                    [        U [        5      (       a  U $ U R                  SU 5      n U R                  SS5      nUS:X  d  SU ;   a  [        R	                  U 5      $ U[
        R                  5       ;   a  [        R	                  U 5      $ U $ )z|A json.loads object_hook

Parameters
----------
obj : dict
    A decoded dict.

Returns
-------
Feature, Geometry, or dict

r   r   Nr   r   )r   rp   getr   r   
_GEO_TYPESvaluesr   )obj_types     rm   decode_objectr    s~     #v
gg)3/%Y:#4$$S))j''))%%c**Jrl   c                 ^     [        5       R                  U 5      nU$ ! [         a    U s $ f = f)zConverts an object to a dict)r   r   	TypeError)valr  s     rm   to_dictr    s6    o%%c* 
  
s    ,,)1r   binasciir   collections.abcr   enumr   r   jsonr   reprlibwarningsr   fiona.errorsr   Reprr   maxlistmaxdictr   r$   r   r%   r&   r'   r(   r)   r*   r+   r  r6   r7   rd   re   rf   rg   rh   ri   rj   GEOMETRY_TYPESrp   r   r   r   r   r   r   r  r  r   rl   rm   <module>r'     s     *      0lln  G'd G'X !!9$$l!!9$$l##))+<  &&&&,,.B	
$$l""J!!''$$l!!''&&,,.B##))+<))//1HH-^ H-V% %S-v S-l% %_-f _-D
$ 
$K .6rl   