
    h                         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ej                         D  ch c]  \  } }|dk(  s|  c}} Z	defdZ
defdZyc c}} w )zAVendored, cut down version of pyogrio/util.py for use with fiona.    N)urlparsepathreturnc                 4   | j                  d      r| S t        j                  dk(  r@t        j                  d|       r*| j                  d      d   j                  d      s| S d|  } t        |       \  } }}|s|s| j                  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      D/var/www/html/immo/lib/python3.12/site-packages/geopandas/io/util.pyvsi_pathr      s     v ||w288ND#Azz#q!**62K v&t,D'6DMM&1"4&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                    t        | d      }|j                  r0t        d |j                  j                  d      D              s| ddfS |j                  } |j                  xs d}|j
                  r| d|j
                  z   z  } |j                  r|j                  r|j                  | z   } | j                  d      }|r|j                         nd} |r|j                         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   y w)NSCHEMES.0ps     r   	<genexpr>z_parse_uri.<locals>.<genexpr>F   s     NWNs   + ?r   )r   r   allr   r   querynetlocpop)r   partsr   r   s       r   r   r   6   s     T51E ||CNell6H6H6MNNR| ::D\\RF{{ekk!!||||d"JJsOE599;RD"eiikG'6""r   c                 \   d}d}|j                  d      }d|vr4|j                  d      s| j                  d      r|j                  dd       |r+dj                  d |D              }|d   t        v r|d    d	}|r/|r#d
j                  |||| j                  d            S d| d| |  S | S )z)Convert a parsed path to a GDAL VSI path.r1   r0   r   r	   r   /c              3   F   K   | ]  }|s|d k7  sdt         |      yw)r   vsiNr*   r,   s     r   r/   z&_construct_vsi_path.<locals>.<genexpr>c   s#     SqF{C
|,Ss   !!!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&!9T]]6=Rq% SgSS2;+%}C(F ''SAQRRvhaxv..Kr   )__doc__r   r   urllib.parser   strr   r+   itemsr?   r   r   )kvs   00r   <module>rK      s    G 	 
 !3 3 2 


& %]]_<TQVq< #S  #F# M =s   A A 