
    h                        S SK Jr  S SKJr  S SKJrJrJr  S SKJ	r	  S SK
Jr  \" S5      r " S S\\   5      r    SS	 jrSS
 jrSS jrSS jrSS jrg)    )annotations)Path)AnyGenericTypeVar)PartitioningScheme)is_path_or_str_sequenceTc                  N    \ rS rSrSrS
SS jjrSS jrSS jrSS jrSS jr	S	r
g)NoPickleOption   zx
Wrapper that does not pickle the wrapped value.

This wrapper will unpickle to contain a None. Used for cached values.
Nc                    Xl         g N
_opt_value)self	opt_values     P/home/james-whalen/.local/lib/python3.13/site-packages/polars/io/cloud/_utils.py__init__NoPickleOption.__init__   s    #    c                    U R                   $ r   r   r   s    r   getNoPickleOption.get   s    r   c                    Xl         g r   r   )r   values     r   setNoPickleOption.set   s    r   c                    g)N r!   r   s    r   __getstate__NoPickleOption.__getstate__   s    r   c                .    [         R                  U 5        g r   )r   r   )r   _states     r   __setstate__NoPickleOption.__setstate__    s    %r   r   r   )r   T | NonereturnNone)r)   r(   )r   r(   r)   r*   )r)   	tuple[()])r%   r+   r)   r*   )__name__
__module____qualname____firstlineno____doc__r   r   r   r"   r&   __static_attributes__r!   r   r   r   r      s     $ &r   r   c                    [        U [        [        45      (       a  U $ [        U 5      (       a  U (       a  U S   $ [        U [        5      (       a  U R
                  $ g )Nr   )
isinstancestrr   r	   r   
_base_path)sources    r   _first_scan_pathr7   $   sN     &3+&&	 	(	(Vay	F.	/	/   r   c                T    [        U 5      nUR                  S5      nUS:  a  US U $ S $ )Nz://r   )r4   find)pathpath_stris      r   _get_path_schemer=   1   s0    4yHeA68BQ<+t+r   c                  ^  [        U 4S jS 5       5      (       a  gT S:X  d  T S:X  ae  UR                  S5      nUR                  SUS-   5      nUR                  S	[        T 5      S
-   U5      S:  d  SU;   a  gSUs=:  =(       a    U:  $ s  $ g)Nc              3  .   >#    U  H
  nTU:H  v   M     g 7fr   r!   .0xschemes     r   	<genexpr> _is_aws_cloud.<locals>.<genexpr>9   s     
.16Q;   )s3s3aThttphttpsz.s3.z.amazonaws.com/   /   r   ?F)anyr9   len)rC   first_scan_path
bucket_end
region_ends   `   r   _is_aws_cloudrT   8   s    

.
...6W,$))&1
$))*;Z!^L
   c&kAozBQFo%:**
****r   c                .   ^  [        U 4S jS 5       5      $ )Nc              3  .   >#    U  H
  nTU:H  v   M     g 7fr   r!   r@   s     r   rD   "_is_azure_cloud.<locals>.<genexpr>L   s     L$Kqv{$KrF   )azazureadlabfsabfssrO   rC   s   `r   _is_azure_cloudr_   K   s    L$KLLLr   c                .   ^  [        U 4S jS 5       5      $ )Nc              3  .   >#    U  H
  nTU:H  v   M     g 7fr   r!   r@   s     r   rD    _is_gcp_cloud.<locals>.<genexpr>P   s     9$8qv{$8rF   )gsgcpgcsr]   r^   s   `r   _is_gcp_cloudrf   O   s    9$8999r   N)r6   r   r)   zstr | Path | None)r:   z
str | Pathr)   z
str | None)rC   r4   rQ   r4   r)   bool)rC   r4   r)   rg   )
__future__r   pathlibr   typingr   r   r   polars._typingr   polars._utils.variousr	   r
   r   r7   r=   rT   r_   rf   r!   r   r   <module>rm      sZ    "  ( ( - 9CL&WQZ &0


,&M:r   