
    Dh                     Z   S SK r S SKJs  Jr  S SKJr  S SKJr  \ R                  " \
5      r " S S5      rS r\" S5      S 5       r\" S5      S	 5       r\" S5      S
 5       r\" S5      S 5       r\" S5      S 5       rS r\" S5      S 5       r\" S5      S 5       r\" S5      S 5       rg)    N)require_gdal_version)_get_metadata_itemc                   L    \ 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g)MetadataItem
   DMD_CREATIONFIELDDATATYPESDMD_CREATIONFIELDDATASUBTYPESDMD_CREATIONOPTIONLISTDS_LAYER_CREATIONOPTIONLISTDMD_OPENOPTIONLISTDMD_EXTENSIONSDMD_EXTENSIONDCAP_VIRTUALIODCAP_NOTNULL_FIELDSDCAP_NOTNULL_GEOMFIELDSDCAP_UNIQUE_FIELDSDCAP_DEFAULT_FIELDS	DCAP_OPENDCAP_CREATE N)__name__
__module____qualname____firstlineno__CREATION_FIELD_DATA_TYPESCREATION_FIELD_DATA_SUB_TYPESCREATION_OPTION_LISTLAYER_CREATION_OPTION_LISTDATASET_OPEN_OPTIONS
EXTENSIONS	EXTENSION
VIRTUAL_IONOT_NULL_FIELDSNOT_NULL_GEOMETRY_FIELDSUNIQUE_FIELDSDEFAULT_FIELDSOPENCREATE__static_attributes__r       ]C:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\fiona/meta.pyr   r   
   sN     <$C!3!>/!JI!J+O8(M*NDFr*   r   c                    0 n[        U 5      S:  a  [        R                  " U 5      nUR                  S5       H  nUR                  S   n0 nUR                  S UR                  R                  5        5       5        / nUR                  S5       H  nUR                  UR                  5        M      [        U5      S:  a  XeS'   XQU'   M     U$ )zConvert metadata xml to dictr   Optionnamec              3   <   #    U  H  u  pUS :X  a  M  X4v   M     g7f)r.   Nr   ).0kvs      r+   	<genexpr>!_parse_options.<locals>.<genexpr>-   s     S*?$!qF{vv*?s   
Valuevalues)	lenET
fromstringiterattribupdateitemsappendtext)xmloptionsrootoptionoption_nameoptr6   values           r+   _parse_optionsrG   #   s    G
3x!|}}S!ii)F --/KCJJS&--*=*=*?SSFW-ejj) .6{Q &H#&K  * Nr*   z2.0c                 x    [        U [        R                  5      nUc  0 $ [        U5      S:X  a  0 $ [	        U5      $ )zReturns dataset creation options for driver

Parameters
----------
driver : str

Returns
-------
dict
    Dataset creation options

r   )r   r   r   r7   rG   driverr@   s     r+   dataset_creation_optionsrK   :   s;     V\%F%F
GC
{	
3x1}	#r*   c                 x    [        U [        R                  5      nUc  0 $ [        U5      S:X  a  0 $ [	        U5      $ )zReturns layer creation options for driver

Parameters
----------
driver : str

Returns
-------
dict
    Layer creation options

r   )r   r   r   r7   rG   rI   s     r+   layer_creation_optionsrM   T   s;     V\%L%L
MC
{	
3x1}	#r*   c                 x    [        U [        R                  5      nUc  0 $ [        U5      S:X  a  0 $ [	        U5      $ )z|Returns dataset open options for driver

Parameters
----------
driver : str

Returns
-------
dict
    Dataset open options

r   )r   r   r   r7   rG   rI   s     r+   dataset_open_optionsrO   m   s;     V\%F%F
GC
{	
3x1}	#r*   c           
      8   S[        U 5      4S[        U 5      4S[        U 5      44 H  u  p[        U S35        [	        U5      S:X  a  [        S5        OU H  n[        SU S35        SX#   ;   a  [        S	X#   S    35        S
X#   ;   a  [        SX#   S
    35        SX#   ;   a6  [	        X#   S   5      S:  a"  [        SSR                  X#   S   5       35        S H%  u  pEXRU   ;   d  M  [        SU SX#   U    35        M'     M     [        S5        M     g)zrPrint driver options for dataset open, dataset creation, and layer creation.

Parameters
----------
driver : str

zDataset Open OptionszDataset Creation OptionszLayer Creation Options:r   z	No options available.	descriptionz		Description: typez		Type: r6   z		Accepted values: ,))zDefault valuedefault)Requiredrequired)AliasaliasOf)Minmin)Maxmax)zMax sizemaxsize)Scopescope)z Alternative configuration optionalt_config_optionz		z:  N)rO   rK   rM   printr7   join)rJ   option_typerA   rD   	attr_text	attributes         r+   print_driver_optionsri      sR    #9:Nv:V!W"<>VW]>^!_":<RSY<Z![!] 	Q w<1+,&;-q)* G$88-g.B=.Q-RSTW11Jw';F'C&DEFw33G<PQY<Z8[^_8_1#((7;OPX;Y2Z1[\]-h(I !K$88YKr'2Fy2Q1RST-h  '$ 	b	5!]r*   c                     [        U [        R                  5      nUc  gUR                  S5       Vs/ s H  n[	        U5      S:  d  M  UPM     sn$ s  snf )zReturns file extensions supported by driver

Parameters
----------
driver : str

Returns
-------
list
    List with file extensions or None if not specified by driver

N r   )r   r   r    splitr7   )rJ   extsexts      r+   
extensionsro      sH     fl&=&=>D|::c?;?Cc#hlC?;;;   A	Ac                 6    [        U [        R                  5      $ )zReturns file extension of driver

Parameters
----------
driver : str

Returns
-------
str
    File extensions or None if not specified by driver

)r   r   r!   )rJ   s    r+   	extensionrr      s     fl&<&<==r*   c                 r    [        U [        R                  5      nUSL=(       a    UR                  5       S:H  $ )zlReturns True if driver supports GDAL's VSI*L API

Parameters
----------
driver : str

Returns
-------
bool

NYES)r   r   r"   upper)rJ   
virtual_ios     r+   supports_vsirw      s4     $FL,C,CDJT!Aj&6&6&8E&AAr*   c                     [        U [        R                  5      nUc  gUR                  S5       Vs/ s H  n[	        U5      S:  d  M  UPM     sn$ s  snf )zReturns supported field types

Parameters
----------
driver : str

Returns
-------
list
    List with supported field types or None if not specified by driver

Nrk   r   )r   r   r   rl   r7   rJ   field_types_str
field_types      r+   supported_field_typesr|      sP     )1W1WXO)8)>)>s)C[)C:s:YZGZJ)C[[[rp   z2.3c                     [        U [        R                  5      nUc  gUR                  S5       Vs/ s H  n[	        U5      S:  d  M  UPM     sn$ s  snf )zReturns supported sub field types

Parameters
----------
driver : str

Returns
-------
list
    List with supported field types or None if not specified by driver

Nrk   r   )r   r   r   rl   r7   ry   s      r+   supported_sub_field_typesr~      sP     )1[1[\O)8)>)>s)C[)C:s:YZGZJ)C[[[rp   )loggingxml.etree.ElementTreeetreeElementTreer8   	fiona.envr   fiona.ogrextr   	getLoggerr   logr   rG   rK   rM   rO   ri   ro   rr   rw   r|   r~   r   r*   r+   <module>r      s    " " * +! 2. e 2 e 0 e 0 e# #L e< <,>" eB B  e\ \* e\ \r*   