
    hDG                    t   S SK Jr  S SKrS SKJrJrJr  S SKJrJrJ	r	J
r
  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s  Jr  S SKJrJrJr  S S	KJr   S S
KJ!r"  S SKJ#r$  S SK%J&r&  S SK'J(r(J)r)J*r*J+r+J,r,  S SK-J.r.  S SK/J0r0  S SK1J2r2J3r3J4r4J5r5J6r6J7r7J8r8JrJ9r9J:r:J;r;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrD  S SKEJFrFJGrGJHrHJIrI  \R                  " \K5         S SKLJMrM  SSS5        \(       a  S SKJNrNJOrO  S SKPJQrQJRrR  S S
KJ!r"  S SKSJTrT   S%SSS.           S&S jjjrU            S'S jrV S%SSS.           S(S jjjrW S%SSS.           S)S jjjrX S%SSS.           S*S  jjjrYSSS.         S+S! jjrZSSS".         S,S# jjr[SSS".         S-S$ jjr\g! , (       d  f       N= f).    )annotationsN)	GeneratorIteratorMapping)datedatetimetime	timedelta)Enum)islice)TYPE_CHECKINGAnyCallable)_PYARROW_AVAILABLE_check_for_numpydataclasses)numpy)pandas)pyarrow)_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String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)PySeries)IterableSequence)	DataFrameSeries)PolarsDataTypeTFstrictnan_to_nullc               V  ^ Sn[        U[        5      (       a  [        XUS9R                  $ [	        U5      S:X  a
  Uc  [
        nOU[        [        4;   a  [        n[        [        [        [        1n[        [        [        [         1n[#        U5      nUGbo  [$        R&                  " U5      (       d:  [)        U5      (       d*  [+        UR,                  5      (       d  [/        U5      (       a9  U[0        :w  a/  [2        R4                  " U5      R7                  U 5      R                  $ [        U[8        5      (       d=  [        U[:        5      (       a(  U[0        :w  a  [=        UUUSSSS9R7                  U / 5      $ [        U[        5      (       a   Uc  U V	s/ s H  n	[        SU	5      PM     nn	OZX&;   a!  [        U[>        5      (       a  [A        U5      nO4X';   d  [C        U5      U;   a   [        U[>        5      (       d  [E        U5      n[G        [C        U5      [H        5      (       as  Uc:  Uc7  [J        RL                  " [N        5         [Q        [C        U5      5      nSSS5        [        U[R        [>        45      (       d  U V	s/ s H  oRT                  PM     nn	UGb  [W        U5      (       Ga  URY                  5       (       Gd  U[Z        :w  Ga  UGc  []        U5      n
[_        XXUS9nU[        [        [        [         [`        [b        [P        4;   d  [        U[b        [d        45      (       a$  URg                  5       U:w  a  URi                  X#SS9nU[d        :X  Ga  URg                  5       [j        :X  a  URm                  SS	9nU$ URg                  5       Ro                  5       (       a$  URi                  [j        USS9Rm                  SS	9nU$ URg                  5       Rq                  5       (       d  URg                  5       [
        :X  a  URi                  [e        SS
9USS9nU$ [        URg                  5       [d        5      (       d  SURg                  5        S3n[O        U5      eU$ U[r        :X  a  [        U[r        5      (       a  URu                  5       OSn0 n/ n/ n[w        U5       H>  u  nn	U	c$  URy                  U5        URy                  U5        M-  URy                  U	5        M@     [z        R|                  " UUSS9R7                  U U5      $ Uc&  Uc  []        [
        5      n
U
" XU5      $ [C        U5      n[G        U[        U5      5      (       GaR  Uc  [A        U5      nOX&;   a  [A        U5      nUc  SO[        [C        U5      5      nUb0  URo                  5       (       a  SUR                  < 3n[O        U5      e[        R                  " XU5      n[        USS5      n[        USS5      nUb
  U[        :X  a  [        U5      nO$[        U5      R                  R                  U5      nU[        :H  U[        :H  -  (       a#  URi                  [        U=(       d    S5      5      nU[        :X  a(  Ub%  UR                  R                  U5      R                  $ UR                  $ [        U5      (       a  [        U[        R                  5      (       a  [	        UR                  5      S:X  aw  [	        U5      m[        U4S jU 5       5      (       a   [        U [        R                  " U5      UUS9$ [        R                  " U U V	s/ s H  n	[        SXUS9PM     sn	U5      $ U[        [~        4;   a  Uc  [        R                  " XUS9$ U[0        :X  a  [        R                  " XU5      $ [        USS5      =nb;  U Vs/ s H  nUc  SO[        SUUUUS9PM     nn[        R                  " U UU5      nO[        R                  " XX#S9nX+Rg                  5       :w  a  URi                  USSS9nU$ U[2        R                  :X  a6  [        R                  " X V	s/ s H  ob  U	R                  OSPM     sn	U5      $ U[        :X  a  [        R                  " XU5      $ [        U5      n
U
[        R                  :X  a   [        R                  " XU5      n[        USS9(       al  [        [        R                  " S5      [        R                  5      (       a9  [        [        Rf                  " U5      R                  5      nURi                  X#SS9$ U$ [_        XXUS9$ s  sn	f ! , (       d  f       GN= fs  sn	f s  sn	f s  snf s  sn	f ! [         a    [        R                  " XUS9s $ f = f)z%Construct a PySeries from a sequence.Ndtyper   )datar<   schema_overridesinfer_schema_lengthschema r<   Fr<   wrap_numerical)inference_length)scalezcan't convert z to Decimalrow)rA   rD   orientz*'float' object cannot be interpreted as a 	time_unit	time_zoneus   c              3  @   >#    U  H  n[        U5      T:H  v   M     g 7fN)len).0vn_elemss     [/home/james-whalen/.local/lib/python3.13/site-packages/polars/_utils/construction/series.py	<genexpr>'sequence_to_pyseries.<locals>.<genexpr>  s     1&Qs1v &s   r;   inner)
check_typeT)[
isinstanceranger   _srS   r&   r%   r   listr   r   r
   r	   r!   r"   r$   r*   r   r   is_dataclassr   r   	__class__r   r'   plr8   	to_structdictr   r   intr/   typer,   
issubclassPyEnum
contextlibsuppress	TypeErrorr   strvaluer-   	is_nestedr+   r3    _construct_series_with_fallbacksr   r    r#   r@   castr(   str_to_decimal_inferis_float
is_integerr)   	to_schema	enumerateappendplcsequence_to_pydftupler0   __name__r5   new_from_any_valuesgetattrr   dtcast_time_unitconvert_time_zoner   npndarrayshapeallnumpy_to_pyseriesvstacknew_series_list
new_objectsequence_to_pyseriesnew_from_any_values_and_dtyper9   r4   bool_genericr.   charRuntimeError)namevaluesr@   r<   r=   python_dtypepy_temporal_typespl_temporal_typesrm   rU   constructorpyseriesmsgstruct_schemaemptyrA   invalidivalues_dtype	py_seriesrM   rN   sinner_dtypepyseries_listsrsrV   s                             @rW   r   r   L   s    !%L&%  t59<<< 6{aEM  
4-	 xD9x48v&E$$U++ ''U__-- ''vo<<'11$7:::5$''Jug,F,Fvo,!%$( ib!" u%%%-6<=fob!,fF=F )j.D.D(/*d5k=N.N ,,/6 $u+v&&=\1$$Y/T%[) 0%#s,,'-.v!ggvF.
 	E""!!W!073vV
 
 
 W566~~5(#==e=T G~~6)#88!8L  !**,,#==6% ) &&&:   !,,..(..2Bd2J#==!$VE )  	   0'::&x~~'7&8Dn$	& .8v-F-F)Df%DAqyq!E"A & ## 
 )D'
"		# =4T:KtV44 E{ ,&7 899=$\2E'$U+E$}t2FtE{2S#(=(=(?(?>|?T?T>WXC   00vF	E;5	E;5	 4y!Ay!$$33I>AD Uh%67x	 1T23AH!644)))4777tt 	ubjj))!e*1&111$		&!'	  ++ $# &b!T#   
$	&=//VLLf_&&tV<<&ugt<<I "(! "( } -#%$/ "(  ! $33D-P#AA% ((#==uU=SO		"''FCFq=144d2FCV
 	
 
	!''f==,\:(---Q224H#LUC
HHTNBJJI I 5RXXl5K5P5PQE88E8OOJ
 0vV
 	
] >" 0/ /@!. D$   Q33DPPQsC   ee  e2e7
?e<f
<Bf f  
e/f('f(c          	     H    U " XU5      $ ! [         [        4 a  n[        U[        5      (       a5  Uc2  U [        R                  :X  a  [        [        R                  XX4S9s SnA$ Uc  [        R                  " XUS9s SnA$ [        R                  " XX4S9s SnA$ SnAff = f)zHConstruct Series, with fallbacks for basic type mismatch (eg: bool/int).NrF   )	rk   OverflowErrorr\   r5   new_opt_i64ro   new_opt_u64r{   r   )r   r   r   r@   r<   es         rW   ro   ro   P  s    400}%  q-((x3333$$dE  ]//VLL99e s3    B!ABB!%B<B!BB!B!i@B )
chunk_sizer<   c               d  ^ ^ [        U[        [        45      (       d  [        U5      nSU U4S jjnSnSn [	        [        X5      5      nU(       d  O2U" X5      n	Uc  U	nUR                  nOUR                  U	5        US-  nMN  Uc	  U" / U5      nUS:  a  UR                  SS9  UR                  $ )z0Construct a PySeries from an iterable/generator.c                2   > [         R                  " TU UTS9$ )N)r   r   r@   r<   )rb   r9   )r   r@   r   r<   s     rW   to_series_chunk-iterable_to_pyseries.<locals>.to_series_chunkz  s     yy	
 	
    r   NTrP   in_place)r   z	list[Any]r@   PolarsDataType | Nonereturnr9   )
r\   r   r   iterr_   r   r@   rv   rechunkr^   )
r   r   r@   r   r<   r   n_chunksseriesslice_valuesschunks
   `   `     rW   iterable_to_pyseriesr   n  s     fy(344f
 
 HF
F667 5>FLLEMM&!MH  ~ U+!|%99r   c               <   U (       d"  UR                   b  [        UR                   5      n [        U5      (       a.  [        R                  " XR                  5       X$US9R                  $ [        (       d  Sn[        U5      e[        U [        R                  " XS9UUS9$ )z;Construct a PySeries from a pandas Series or DatetimeIndex.)r@   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=   r@   r<   )r   rl   r   rb   r9   to_numpyr^   r   ImportErrorarrow_to_pyseriesrw   pandas_series_to_arrow)r   r   r@   r<   r=   r   s         rW   pandas_to_pyseriesr     s     FKK+6;;+F33yy//#5RX

"	 > 	
 #""6C	 r   )r<   r   c               `   [         R                  " U5      n[        U5      S:X  a  [        UR                  [
        R                  5      (       ah  UR                  R                  [
        R                  " 5       [
        R                  " 5       4;   a&  [        R                  " U / [        S9R                  nGOd[        US5      (       d  [        R                   " X5      nGO;UR"                  S:  a  [        UR                  [
        R$                  5      (       a%  [        R                   " XR'                  5       5      nOUR)                  5       n[        R                   " U [+        U5      5      nU H(  nUR-                  [        R                   " X5      5        M*     OhUR"                  S:X  a5  [        R                   " U [
        R.                  " SUR                  S95      nO#[        R                   " XR0                  S   5      nU(       a  UR3                  SS9  Ub  UR5                  X#SS	9$ U$ )
z)Construct a PySeries from an Arrow array.r   r?   
num_chunksrP   )rf   Tr   FrG   )rw   coerce_arrowrS   r\   rf   paDictionaryType
value_typeutf8
large_utf8rb   r9   r    r^   hasattrr5   
from_arrowr   
StructTypecombine_chunks
iterchunksnextrv   nullschunksr   rp   )	r   r   r@   r<   r   arraypysitas	            rW   r   r     s    V$E 	E
auzz2#4#455JJ!!GGIMMO

 iib477UL))!!$.a %**bmm44))$0D0D0FG%%'))$R9AJJx224;< "%%dBHHQUZZ,HIC%%dLLO<CKKK&  	e< r   c                 ^ ^^^	 [         R                  " U5      nUR                  S:X  aK  [        U5      u  p[	        X5      nU" T X[         R
                  [         R                  4;   a  T5      $ T5      $ UR                  nUR                  S5      m	SSK	J
n  U" U UUU	4S j5      n[        U5      R                  U5      R                  $ )z(Construct a PySeries from a numpy array.rP   r   )_with_no_check_lengthc                    > [        T TTTS9$ )Nr;   )r   )r   r=   r<   	values_1ds   rW   <lambda>#numpy_to_pyseries.<locals>.<lambda>   s    %'	r   )r   ascontiguousarrayndimr2   r1   float32float64r   reshapepolars.series.utilsr   r   r^   )
r   r   r<   r=   r@   r   original_shaper   py_sr   s
   ` ``     @rW   r   r     s     !!&)F{{a.v6/>&2::rzz2J)J+
 	
PV
 	
  NN2&	=$
 d|##N3666r   r   c                   UR                  5       nUb  X$R                  :w  a  UR                  X#S9nU b  UR                  U 5      nUR                  $ )z.Construct a new PySeries from a Polars Series.rF   )cloner@   rp   aliasr^   )r   r   r@   r<   r   s        rW   series_to_pyseriesr   
  sJ     	AUgg-FF5F(GGDM44Kr   c               :   UR                   S:  a  U =(       d    Sn UR                  U 5      nOBUR                   S:X  a%  UR                  5       nU b  UR                  U 5      nOSn[	        U5      eUb  X$R
                  :w  a  UR                  X#S9nUR                  $ )z1Construct a new PySeries from a Polars DataFrame.rP   rE   z;cannot initialize Series from DataFrame without any columnsrF   )widthrc   	to_seriesr   rk   r@   rp   r^   )r   r   r@   r<   r   r   s         rW   dataframe_to_pyseriesr     s     ||azrT"		AKnUgg-FF5F(44Kr   rR   )r   rl   r   Sequence[Any]r@   r   r<   boolr=   r   r   r5   )r   z.Callable[[str, Sequence[Any], bool], PySeries]r   rl   r   r   r@   r   r<   r   r   r5   )r   rl   r   zIterable[Any]r@   r   r   re   r<   r   r   r5   )r   rl   r   z1pd.Series[Any] | pd.Index[Any] | pd.DatetimeIndexr@   r   r<   r   r=   r   r   r5   )r   rl   r   zpa.Arrayr@   r   r<   r   r   r   r   r5   )
r   rl   r   znp.ndarray[Any, Any]r<   r   r=   r   r   r5   )
r   
str | Noner   r9   r@   r   r<   r   r   r5   )
r   r   r   r8   r@   r   r<   r   r   r5   )]
__future__r   ri   collections.abcr   r   r   r   r   r	   r
   enumr   rh   	itertoolsr   typingr   r   r   polars._reexport	_reexportrb   polars._utils.construction_utilsconstructionrw   polars._dependenciesr   r   r   r   r   r   pdr   r   $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/   r0   polars.datatypes.constructorr1   r2   r3   r4   rj   r   polars._plrr5   r6   r7   polarsr8   r9   polars._typingr:   r   ro   r   r   r   r   r   r    r   rW   <module>r     s   "  8 8 4 4     ( ( 
 - - . J  &     ,  %$ & 2(1- $(A

 A

A
A
 !A

 A
 A
 A
H?
  !	  B $('
  '
'' !'
 ' ' 'Z $(
 
= !
   B $(0
 0
00 !0
 0 0 0n 7
7 7 	7
 7 7J $(
 !	
  ( $(
 !	
  s &%s   F))
F7