
    q-PhC                       d dl mZ d dlZd dlmZmZmZ d dlmZmZm	Z	m
Z
 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c mZ d dlmZ d d	lmZmZm Z m!Z!m"Z" d d
l#m$Z$ d dl%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.mZm/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 d dl:m;Z;m<Z<m=Z=m>Z> d dl?m@Z@mAZAmBZB d dl?mCZD d dl?mEZF d dl?mGZH  ejI        eJ          5  d dlKmLZL ddd           n# 1 swxY w Y   erd dlmMZMmNZN d dlOmPZPmQZQ d dlRmSZS d dl?mEZF 	 d<dddd=d$ZTd>d'ZU	 d<d(dd)d?d-ZV	 d<dddd@d/ZW	 d<ddd0dAd3ZXddddBd5ZYddd6dCd9ZZddd6dDd;Z[dS )E    )annotationsN)	GeneratorIteratorMapping)datedatetimetime	timedelta)Enum)islice)TYPE_CHECKINGAnyCallable)_sequence_of_dict_to_pydf)get_first_non_noneis_namedtupleis_pydantic_model$is_simple_numpy_backed_pandas_seriesis_sqlalchemy_rowrange_to_series)wrap_s)ArrayBooleanCategoricalDateDatetimeDecimalDurationr   ListNullObjectStructTimeUnknowndtype_to_py_typeis_polars_dtypenumpy_char_code_to_dtypeparse_into_dtypetry_parse_into_dtype)numpy_type_to_constructornumpy_values_and_dtypepolars_type_to_constructorpy_type_to_constructor)_PYARROW_AVAILABLE_check_for_numpydataclasses)numpy)pandas)pyarrow)PySeries)IterableSequence)	DataFrameSeries)PolarsDataTypeTFstrictnan_to_nullnamestrvaluesSequence[Any]dtypePolarsDataType | Noner<   boolr=   returnr5   c          	     $   d}t          |t                    rt          | ||          j        S t	          |          dk    r
|t
          }n|t          t          fv rt          }t          t          t          t          h}t          t          t          t           h}t#          |          }|at%          j        |          s2t)          |          s#t+          |j                  st/          |          r7|t0          k    r,t3          j        |                              |           j        S t          |t8                    sIt          |t:                    r4|t0          k    r)t=          ||ddd                              | g           S t          |t                    r|d |D             }nb||v r%t          |t>                    rtA          |          }n9||v stC          |          |v r$t          |t>                    stE          |          }tG          tC          |          tH                    ry|O|MtK          j&        tN                    5  tQ          tC          |                    }ddd           n# 1 swxY w Y   t          |tR          t>          f          sd |D             }|tU          |          r|+                                s|tX          k    r|t[          |          }	t]          |	| ||          }
|t          t          t          t           t^          t`          tP          tb          fv r0|
2                                |k    r|
3                    |d	          }
|
S |th          k    rt          |th                    r|5                                nd}i }g }g }tm          |          D ]G\  }}|+|7                    |           |7                    |           2|7                    |           Htq          j9        ||d
                              | |          S |2|!t[          t
                    }	 |	| |          S tC          |          }tG          |tu          |                    r^|tA          |          }n||v rtA          |          }|dntw          tC          |                    }|-|<                                rd|j=        }tO          |          t}          j?        | |          }t          |dd          }t          |dd          }||t          k    rt          |          }n't          |          jB        C                    |          }|t          k    |t          k    z  r$|3                    t          |pd                    }|t          k    r!||jB        D                    |          j        S |j        S t          |          rt          |t          jG                  rt	          |jH                  dk    rrt	          |          t          fd|D                       r%t          | t          jK        |                    S t}          jL        | fd|D                       S |t          tt          fv r|t}          j?        | |          S |t0          k    rt}          jM        | |          S t          |dd          x'fd|D             }t}          jL        | |          }
nt}          jN        | ||          }
||
2                                k    r|
3                    |dd	          }
|
S |t2          jO        k    r t}          jL        | d |D                       S |t|          k    rt}          jL        | |          S t          |          }	|	t|          jM        k    r	 t}          j?        | |          }t          |d          rjt          t          jQ        d          t          jR                  r>t          t          j2        |          jT                  }|3                    |d	          S |S # t          $ r t}          j?        | |          cY S w xY wt]          |	| ||          S )z%Construct a PySeries from a sequence.NrB   r   )datar<   schema_overridesinfer_schema_lengthschemac                .    g | ]}t          d |          S ) r   .0vs     a/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/polars/_utils/construction/series.py
<listcomp>z(sequence_to_pyseries.<locals>.<listcomp>|   s"    ===ob!,,===    c                    g | ]	}|j         
S  )valuerN   s     rQ   rR   z(sequence_to_pyseries.<locals>.<listcomp>   s    ...!ag...rS   r<   Fr<   wrap_numericalrow)rH   rK   orientz*'float' object cannot be interpreted as a 	time_unit	time_zoneus   c              3  >   K   | ]}t          |          k    V  d S N)len)rO   rP   n_elemss     rQ   	<genexpr>z'sequence_to_pyseries.<locals>.<genexpr>   s.      11Qs1vv 111111rS   r;   c                6    g | ]}t          d |          S )rM   r;   numpy_to_pyseries)rO   rP   r=   r<   s     rQ   rR   z(sequence_to_pyseries.<locals>.<listcomp>   s:        &b!FTTT  rS   innerc           	     @    g | ]}|d nt          d|          S )NrM   r;   )sequence_to_pyseries)rO   rV   inner_dtyper=   r<   s     rQ   rR   z(sequence_to_pyseries.<locals>.<listcomp>  sU     ! ! !  } D-#%$/  ! ! !rS   c                $    g | ]}||j         nd S ra   )_srN   s     rQ   rR   z(sequence_to_pyseries.<locals>.<listcomp>$  s"    CCCq1=144dCCCrS   )
check_typeT)V
isinstanceranger   rm   rb   r!   r    r   listr   r   r
   r	   r   r   r   r$   r   r1   is_dataclassr   r   	__class__r   r"   plr8   	to_structdictr   r   intr)   typer&   
issubclassPyEnum
contextlibsuppress	TypeErrorr   r?   r'   	is_nestedr%   r-    _construct_series_with_fallbacksr   r   r   rB   castr#   	to_schema	enumerateappendplcsequence_to_pydftupler*   is_float__name__r5   new_from_any_valuesgetattrr   dtcast_time_unitconvert_time_zoner0   npndarrayshapeallrg   vstacknew_series_list
new_objectnew_from_any_values_and_dtyper9   r.   bool_genericr(   charRuntimeError)r>   r@   rB   r<   r=   python_dtypepy_temporal_typespl_temporal_typesrV   constructorpyseriesstruct_schemaemptyrH   invalidirP   values_dtypemsg	py_seriesr\   r]   spyseries_listsrsrk   rc   s      ``                    @@rQ   rj   rj   K   sk	    !%L&%   =tV5999<< 6{{aEM  
4-		 xD9x48v&&E$U++	7 ''	7 U_--	7 !''		7
 voo<''11$77::5$''	7,6ug,F,F	7voo,!%$(   ib!!" u%% 	7%-==f===FF )))j.D.D)(//***d5kk=N.N.N ,, /O/66 $u++v&& /=\1$Y// * *T%[[))* * * * * * * * * * * * * * *%#s,, 	/..v...F
 	E"" 	!! 	 W!0773vuV
 
 
 	
 	
 	
 ~~5((#==ve=TT	& .8v-F-FP)))Df%% 	 	DAqyq!!!E""""A# 
 
 
 )D'
"
"		# =4T::K;tVV444 E{{ ,&7 8 899 o
=$\22EE'''$U++E$}tt2FtE{{2S2S#(=(=(?(?#X|?TXXC    0vvFF	E;55	E;55	 4 4y!!AAy!!$33I>>AD Uh%67 	4x	 1T2233AH!64)))4477t 	M
ubj))M
 !!e**1111&11111 	$	&!!'	    +    #      
$	&	&=/fVLLLLf__&tVV<<<&ugt<<<I! ! ! ! ! ! "(! ! ! $3D-PP#A&%   ((((#==uU=SSO		"	"'CCFCCCV
 
 	
 
	!	!'ff===,\::(---Q24HH#LUCCC 
HTNNBJI I  5RXl5K5K5PQQE88E&8OOOJ Q Q Q3D&PPPPPPQ 0vuV
 
 
 	
s+   I66I:=I:Ba a !a;:a;r   .Callable[[str, Sequence[Any], bool], PySeries]c               Z   	  | |||          S # t           t          f$ r}t          |t                    r5|3| t          j        k    r#t          t          j        ||||          cY d}~S |t          j        |||          cY d}~S t          j        ||||          cY d}~S d}~ww xY w)zHConstruct Series, with fallbacks for basic type mismatch (eg: bool/int).NrW   )	r}   OverflowErrorro   r5   new_opt_i64r   new_opt_u64r   r   )r   r>   r@   rB   r<   es         rQ   r   r   >  s   {4000}%    q-((	x3333$dFE&         ]/fVLLLLLLLLL9feF        s3    B*AB%$B**B%B*B%B*%B*i@B )
chunk_sizer<   Iterable[Any]r   rw   c               |    t          |t          t          f          st          |          }d fd}d}d	}	 t	          t          ||                    }|sn3 |||          }	|
|	}|j        }n|                    |	           |dz  }S| |g |          }|dk    r|                    d
           |j	        S )z0Construct a PySeries from an iterable/generator.r@   	list[Any]rB   rC   rE   r9   c                4    t          j        | |          S )N)r>   r@   rB   r<   )rt   r9   )r@   rB   r>   r<   s     rQ   to_series_chunkz-iterable_to_pyseries.<locals>.to_series_chunkh  s(    y	
 
 
 	
rS   r   NTr_   in_place)r@   r   rB   rC   rE   r9   )
ro   r   r   iterrq   r   rB   r   rechunkrm   )
r>   r@   rB   r   r<   r   n_chunksseriesslice_valuesschunks
   `   `     rQ   iterable_to_pyseriesr   \  s     fy(344 f
 
 
 
 
 
 
 HF
F6:6677 	 u55>FLEEMM&!!!MH
 ~ U++!||%%%9rS   1pd.Series[Any] | pd.Index[Any] | pd.DatetimeIndexc               8   | s|j         t          |j                   } t          |          r0t          j        | |                                |||          j        S t          sd}t          |          t          | t          j        ||          ||          S )z;Construct a PySeries from a pandas Series or DatetimeIndex.N)rB   r=   r<   zpyarrow is required for converting a pandas series to Polars, unless it is a simple numpy-backed one (e.g. 'int64', 'bool', 'float32' - not 'Int64'))r=   rB   r<   )r>   r?   r   rt   r9   to_numpyrm   r/   ImportErrorarrow_to_pyseriesr   pandas_series_to_arrow)r>   r@   rB   r<   r=   r   s         rQ   pandas_to_pyseriesr     s       FK+6;+F33 y&//##5kRX
 
 

	  > 	
 #"6{CCC	   rS   )r<   r   pa.Arrayr   c                  t          j        |          }t          |          dk    rtt          |j        t
          j                  rU|j        j        t          j                    t          j	                    fv r#t          j        | g t                    j        }nOt          |d          st          j        | |          }n(|j        dk    rt          |j        t
          j                  r(t          j        | |                                          }n|                                }t          j        | t+          |                    }|D ]*}|                    t          j        | |                     +nZ|j        dk    r/t          j        | t          j        d|j                            }n t          j        | |j        d                   }|r|                    d           ||                    ||d	
          n|S )z)Construct a PySeries from an Arrow array.r   rG   
num_chunksr_   )rx   Tr   NFrX   )r   coerce_arrowrb   ro   rx   paDictionaryType
value_typeutf8
large_utf8rt   r9   r   rm   hasattrr5   
from_arrowr   
StructTypecombine_chunks
iterchunksnextr   nullschunksr   r   )	r>   r@   rB   r<   r   arraypysitas	            rQ   r   r     s    V$$E 	E

auz2#455 	J!GIIMOO

 
 ib4447UL)) '!$..a %*bm44 =)$0D0D0F0FGG%%'')$R99 = =AJJx24;;<<<<=""%dBHQUZ,H,H,HIICC%dELO<<C 	'KKK&&&  	ve<<<rS   np.ndarray[Any, Any]c                  	 t          j        |          }|j        dk    rKt          |          \  }}t	          ||          } | ||t           j        t           j        fv rn          S |j        }|                    d          	ddl	m
}  | 	fd          }t          |                              |          j        S )z(Construct a PySeries from a numpy array.r_   r   )_with_no_check_lengthc                 *    t                     S )Nr;   rf   )r>   r=   r<   	values_1ds   rQ   <lambda>z#numpy_to_pyseries.<locals>.<lambda>  s#    %'	   rS   )r   ascontiguousarrayndimr,   r+   float32float64r   reshapepolars.series.utilsr   r   rm   )
r>   r@   r<   r=   rB   r   original_shaper   py_sr   s
   ` ``     @rQ   rg   rg     s     !&))F{a.v66/>>{&2:rz2J)J)J++PV
 
 	
  NN2&&	======$$      
 
 d||##N3366rS   r   
str | Noner9   c                   |                                 }|"||j        k    r|                    ||          }| |                    |           }|j        S )z.Construct a new PySeries from a Polars Series.NrW   )clonerB   r   aliasrm   )r>   r@   rB   r<   r   s        rQ   series_to_pyseriesr     sT     	AUag--FF5F((GGDMM4KrS   r8   c               2   |j         dk    r| pd} |                    |           }nH|j         dk    r,|                                }| |                    |           }nd}t	          |          |"||j        k    r|                    ||          }|j        S )z1Construct a new PySeries from a Polars DataFrame.r_   rM   Nz;cannot initialize Series from DataFrame without any columnsrW   )widthru   	to_seriesr   r}   rB   r   rm   )r>   r@   rB   r<   r   r   s         rQ   dataframe_to_pyseriesr     s     |azrT""			AKnnUag--FF5F((4KrS   ra   )r>   r?   r@   rA   rB   rC   r<   rD   r=   rD   rE   r5   )r   r   r>   r?   r@   rA   rB   rC   r<   rD   rE   r5   )r>   r?   r@   r   rB   rC   r   rw   r<   rD   rE   r5   )r>   r?   r@   r   rB   rC   r<   rD   r=   rD   rE   r5   )r>   r?   r@   r   rB   rC   r<   rD   r   rD   rE   r5   )
r>   r?   r@   r   r<   rD   r=   rD   rE   r5   )
r>   r   r@   r9   rB   rC   r<   rD   rE   r5   )
r>   r   r@   r8   rB   rC   r<   rD   rE   r5   )\
__future__r   r{   collections.abcr   r   r   r   r   r	   r
   enumr   rz   	itertoolsr   typingr   r   r   polars._reexport	_reexportrt   polars._utils.construction_utilsconstructionr   $polars._utils.construction.dataframer    polars._utils.construction.utilsr   r   r   r   r   polars._utils.variousr   polars._utils.wrapr   polars.datatypesr   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   polars.datatypes.constructorr+   r,   r-   r.   polars.dependenciesr/   r0   r1   r2   r   r3   pdr4   r   r|   r   polars.polarsr5   r6   r7   polarsr8   r9   polars._typingr:   rj   r   r   r   r   rg   r   r   rU   rS   rQ   <module>r     s!   " " " " " "     8 8 8 8 8 8 8 8 8 8 4 4 4 4 4 4 4 4 4 4 4 4                            ( ( ( ( ( ( ( ( ( J J J J J J                   & % % % % %                                         *                    
 , + + + + + , , , , , , - - - - - -Z%% ' '&&&&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '  122222222((((((((------000000 $(p

 p
 p
 p
 p
 p
 p
f   B $('
  ' ' ' ' ' 'Z $(
      B $(0
 0 0 0 0 0 0n 7 7 7 7 7 7J $(     ( $(       s   CC"C