
    rbi                         d Z ddlZddlZddlmZ dedefdZddd	d
dddddddddddZd e                                D             Z	defdZ
defdZdS )zAVendored, cut down version of pyogrio/util.py for use with fiona.    N)urlparsepathreturnc                 b   |                      d          r| S t          j        dk    rJt          j        d|           r5|                     d          d                             d          s| S d|  } t          |           \  } }}|s|s|                     d          rt          | ||          S | S )z:Ensure path is a local path or a GDAL-compatible vsi path.z/vsiwin32z^[a-zA-Z]\:!r   .zipzzip://)	
startswithsysplatformrematchsplitendswith
_parse_uri_construct_vsi_path)r   archiveschemes      a/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/geopandas/io/util.pyvsi_pathr      s     v  |w28ND#A#Azz#q!**622 	K &t,,D'6 : :DMM&11 :"4&999K    fileziptargzipcurls3gsazadlshdfswebhdfs)r   r   r   r   httphttpsftpr   r   r   r    adlr!   r"   c                 $    h | ]\  }}|d k    |S )r    ).0kvs      r   	<setcomp>r,   3   s!    <<<TQVqr   c                    t          | d          }|j        r6t          d |j                            d          D                       s| ddfS |j        } |j        pd}|j        r| d|j        z   z  } |j        r|j        r
|j        | z   } |                     d          }|r|                                nd} |r|                                nd}| ||fS )a  Parse a URI.

    Returns a tuples of (path, archive, scheme)

    path : str
        Parsed path. Includes the hostname and query string in the case
        of a URI.
    archive : str
        Parsed archive path.
    scheme : str
        URI scheme such as "https" or "zip+s3".
    F)allow_fragmentsc              3   (   K   | ]}|t           v V  d S )NSCHEMESr)   ps     r   	<genexpr>z_parse_uri.<locals>.<genexpr>F   s&      NNWNNNNNNr   + ?r   )r   r   allr   r   querynetlocpop)r   partsr   r   s       r   r   r   6   s     T5111E | CNNel6H6H6M6MNNNNN R| :D\RF{ "ek!!| # #|d"JJsOOE'599;;;RD"*eiikkkG'6""r   c                    d}d}|                     d          }d|vr@|                    d          s|                     d          r|                    dd           |r9d                    d |D                       }|d         t          v r|d          d	}|r7|r+d
                    ||||                     d                    S d| d| |  S | S )z)Convert a parsed path to a GDAL VSI path.r6   r5   r   r	   r   /c              3   F   K   | ]}||d k    
dt           |          V  dS )r   vsiNr0   r2   s     r   r4   z&_construct_vsi_path.<locals>.<genexpr>c   s8      SSSqF{{,
,,{{{{SSr   z://z/{}/{}{}/{})r   r   insertjoinCURLSCHEMESformatlstrip)r   r   r   prefixsuffixschemess         r   r   r   Y   s    FFll3GG!1!1&!9!9T]]6=R=Rq%    )SSgSSSSS2;+%%(((F / 	/ ''SAQAQRRR.v......Kr   )__doc__r   r   urllib.parser   strr   r1   itemsrD   r   r   r(   r   r   <module>rN      s    G G 				 



 ! ! ! ! ! !3 3    2 


 & =<W]]__<<< #S  #  #  #  #F#      r   