
    Dh
              	       &   S r SSKrSSKrSSKJr  SSSSSSSS	S
.r\R                  5        V Vs1 s H  u  pUS:X  d  M  U iM     snn r\R                  5        V Vs1 s H  u  pUS;   d  M  U iM     snn rS r	S r
SS jrSS jrgs  snn f s  snn f )z.Implementation of Apache VFS schemes and URLs.    N)urlparsecurlgzips3tarzipgs)ftpr   httphttpsr   r   r   r	   )r   r   r	   c                 D    [        S U R                  S5       5       5      $ )z4Ensures all parts of our vsi path are valid schemes.c              3   2   #    U  H  o[         ;   v   M     g 7fNSCHEMES.0ps     \C:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\fiona/vfs.py	<genexpr>valid_vsi.<locals>.<genexpr>   s     4^G|^   +)allsplit)vsis    r   	valid_vsir      s    4SYYs^444    c                 L    U c  g[        S U R                  S5       5       5      $ )NFc              3   2   #    U  H  o[         ;   v   M     g 7fr   )REMOTESCHEMESr   s     r   r   is_remote.<locals>.<genexpr>#   s     =+<aM!+<r   r   )anyr   )schemes    r   	is_remoter%       s$    ~=6<<+<===r   c                     U(       aE  SR                  S UR                  S5       5       5      nU(       a  SU SU U  3nU$ SU SU  3n U$ U nU$ )N/c              3   :   #    U  H  nS [         U    3v   M     g7f)r   Nr   r   s     r   r   vsi_path.<locals>.<genexpr>*   s     EnC
|,ns   r   )joinr   )pathr   archiveprefixresults        r   vsi_pathr/   &   sj     EciinEE'4&1F M	 $(F M Mr   c                    S=p#U n[         R                  S:X  a!  [        R                  " SU5      (       a  USS4$ U(       aT  [	        U5      nUR
                  nUR                  nUR                  (       a  UR                  S:w  a  UR                  U-   nO[	        U5      nUR
                  nUR                  nUR                  (       aa  UR                  S:w  aQ  UR                  S5      S   [        ;   a&  UR                  S5      S    SUR                   U 3nOUR                  U-   nU[        ;   aC  UR                  S5      nU(       a  UR                  5       OSnU(       a  UR                  5       OSnU(       d  SOUnXCU4$ )	zYParse a URI or Apache VFS URL into its parts

Returns: tuple
    (path, scheme, archive)
Nwin32z^[a-zA-Z]\:	localhostr   z://!)sysplatformrematchr   r$   r+   netlocr   CURLSCHEMESr   pop)urivfsr,   r$   r+   partss         r   parse_pathsr?   5   s:    GD ||w288ND#A#AT4
**<<ELLK7llW,Gzz<<ELLK7||C $3 ,,s+B/0ELL>$H||d*WJJsOE"'599;TD%*eiikGTVF  r   )NNr   )__doc__r5   r7   urllib.parser   r   itemsr:   r!   r   r%   r/   r?   )kvs   00r   <module>rE      s    4 
 	 ! 

	 %]]_<_TQVq_<  '}}Ltq!7K2KL5
>"!A = Ms   BBB,B