
    .h                        d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	 d dl
mZ  ed      Z G d dee         Z	 	 	 	 dd	Zdd
ZddZddZddZy)    )annotations)Path)AnyGenericTypeVar)PartitioningScheme)is_path_or_str_sequenceTc                  :    e Zd ZdZdd	dZd
dZddZddZddZy)NoPickleOptionz
    Wrapper that does not pickle the wrapped value.

    This wrapper will unpickle to contain a None. Used for cached values.
    Nc                    || _         y N
_opt_value)self	opt_values     T/var/www/html/ai-service/venv/lib/python3.12/site-packages/polars/io/cloud/_utils.py__init__zNoPickleOption.__init__   s	    #    c                    | j                   S r   r   r   s    r   getzNoPickleOption.get   s    r   c                    || _         y r   r   )r   values     r   setzNoPickleOption.set   s	    r   c                     y)N r   r   s    r   __getstate__zNoPickleOption.__getstate__   s    r   c                .    t         j                  |        y r   )r   r   )r   _states     r   __setstate__zNoPickleOption.__setstate__    s    %r   r   )r   T | NonereturnNone)r#   r"   )r   r"   r#   r$   )r#   	tuple[()])r    r%   r#   r$   )	__name__
__module____qualname____doc__r   r   r   r   r!   r   r   r   r   r      s     $ &r   r   c                    t        | t        t        f      r| S t        |       r| r| d   S t        | t              r| j
                  S y )Nr   )
isinstancestrr   r	   r   
_base_path)sources    r   _first_scan_pathr/   $   sE     &3+&	 	(Vay	F.	/   r   c                R    t        |       }|j                  d      }|dk\  r|d | S d S )Nz://r   )r,   find)pathpath_stris      r   _get_path_schemer5   1   s0    4yHeA68BQ<+t+r   c                     t         fddD              ry dk(  s dk(  r]|j                  d      }|j                  d|dz         }|j                  d	t               d
z   |      dkD  sd|v ryd|cxk  xr |k  S c S y)Nc              3  (   K   | ]	  }|k(    y wr   r   .0xschemes     r   	<genexpr>z _is_aws_cloud.<locals>.<genexpr>9   s     
.16Q;
.   )s3s3aThttphttpsz.s3.z.amazonaws.com/   /   r   ?F)anyr1   len)r;   first_scan_path
bucket_end
region_ends   `   r   _is_aws_cloudrK   8   s    

.
..6W,$))&1
$))*;Z!^L
   c&kAozBQFo%:*
****r   c                ,     t         fddD              S )Nc              3  (   K   | ]	  }|k(    y wr   r   r8   s     r   r<   z"_is_azure_cloud.<locals>.<genexpr>L   s     Lqv{Lr=   )azazureadlabfsabfssrF   r;   s   `r   _is_azure_cloudrU   K   s    L$KLLLr   c                ,     t         fddD              S )Nc              3  (   K   | ]	  }|k(    y wr   r   r8   s     r   r<   z _is_gcp_cloud.<locals>.<genexpr>P   s     9qv{9r=   )gsgcpgcsrS   rT   s   `r   _is_gcp_cloudr[   O   s    9$8999r   N)r.   r   r#   zstr | Path | None)r2   z
str | Pathr#   z
str | None)r;   r,   rH   r,   r#   bool)r;   r,   r#   r\   )
__future__r   pathlibr   typingr   r   r   polars._typingr   polars._utils.variousr	   r
   r   r/   r5   rK   rU   r[   r   r   r   <module>rb      sZ    "  ( ( - 9CL&WQZ &0


,&M:r   