ó
    Ñ]j�  ã                  ój   • S r SSKJr  SSKJr  SSKJr  SSKrSSK	J
r
Jr  SSKJr  SSS jjrS	 rS
 rg)z/Common utility functions for rolling operationsé    )Úannotations)Údefaultdict)ÚcastN)ÚABCDataFrameÚ	ABCSeries)Ú
MultiIndexc                óÌ  ^^^• [        U [        5      (       a+  [        T[        5      (       a  [        U T5      u  pEU" XE5      $ [        U [        5      (       Gap  SSKJm  SU4S jjn0 n[        T[        5      (       Gaö  USL Ga&  U TL aZ  [        [        U R                  5      5       H0  nU" U R                  S S 2U4   TR                  S S 2U4   5      Xx'   M2     U" Xp5      $ U R                  R                  (       d  [        S5      eTR                  R                  (       d  [        S5      eU R                  TSS9u  pE[        XE5      u  pEU R                  R                  TR                  5      n	U	 H   n
X¤;   d  M
  X¥;   d  M  U" XJ   XZ   5      Xz'   M"     T" XtR                  U	S	9$ US
L GaÃ  [        [         5      n[        [        U R                  5      5       Hv  n[        [        TR                  5      5       HQ  nX¸:  a  TU L a  X{   U   Xx   U'   M  U" [        U R                  S S 2U4   TR                  S S 2U4   5      6 Xx   U'   MS     Mx     SSKJn  U R                  R                  TR                  5      n[        U5      (       Ga7  U" [        [        U R                  5      5       VVs/ s H<  nU" [        [        TR                  5      5       Vs/ s H
  o·U   U   PM     snS
S9PM>     snnS
SS9mU R                  Tl        TR                  R$                  S:”  Ga
  ['        [(        TR                  5      Tl        [*        R,                  " U[        T5      [        U5      -  5      nUU4S j[        TR                  R$                  5       5       n/ TR                  R.                  QUR0                  Pn[(        R2                  " / UQUPUS9Tl        [        TR                  R4                  5      nUS-
  /[        US-
  5      QnTR7                  U5      R9                  5       mOÅ[(        R:                  " [        [        TR                  5      5      [        [        U5      5      /5      Tl        TR=                  SS5      R9                  5       m[(        R:                  " UTR                  /5      Tl        O2T" [)        U R                  TR                  // / /S9TR                  SS9mTR                  R?                  U R                  R.                  5      Tl        TR                  R?                  UR.                  TR                  R.                  -   5      Tl        T$ g [        [        U R                  5      5       Vs0 s H#  nX‚" [        U R                  S S 2U4   T5      6 _M%     nnU" Xp5      $ [A        TX5      $ s  snf s  snnf s  snf )Nr   )Ú	DataFramec                óØ   >• T" XR                   S9n[        UR                  5      S:”  a   UR                  UR                     Ul        U$ UR                  R                  5       Ul        U$ )N)Úindexr   )r   ÚlenÚcolumnsÚcopy)ÚdataÚframe_templateÚresultr
   s      €ÚV/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pandas/core/window/common.pyÚdataframe_from_int_dictÚ3flex_binary_moment.<locals>.dataframe_from_int_dict   s^   ø€ Ù˜t×+?Ñ+?Ñ@ˆFÜ�6—>‘>Ó" QÓ&Ø!/×!7Ñ!7¸¿¹Ñ!G�”ð ˆMð "0×!7Ñ!7×!<Ñ!<Ó!>�”ØˆMó    Fz'arg1' columns are not uniquez'arg2' columns are not uniqueÚouter)Újoin)r   r   T)Úconcat)Úignore_indexé   )r   Úaxisc              3  óÂ   >#   • U  HT  n[         R                  " TR                  R                  U5      [	        T5      [	        TR                  5      -  5      v •  MV     g 7f)N)ÚnpÚrepeatr   Úget_level_valuesr   )Ú.0ÚiÚarg2r   s     €€r   Ú	<genexpr>Ú%flex_binary_moment.<locals>.<genexpr>a   sS   øé € ð 'ò
 &A ô	 ŸIšIØ $§¡× =Ñ =¸aÓ @Ü # F£¬s°4·<±<Ó/@Ñ @÷ð ò &Aùs   ƒAA)Únames)ÚlevelsÚcodesÚfloat64)r   r   Údtype)Úreturnr
   )!Ú
isinstancer   Úprep_binaryr   Úpandasr
   Úranger   r   ÚilocÚ	is_uniqueÚ
ValueErrorÚalignÚunionr   r   Údictr   Únlevelsr   r   r   Útiler&   ÚnameÚfrom_arraysr'   Úreorder_levelsÚ
sort_indexÚfrom_productÚ	swaplevelÚ	set_namesÚflex_binary_moment)Úarg1r#   ÚfÚpairwiseÚXÚYr   Úresultsr"   Úres_columnsÚcolÚjr   Úresult_indexÚresult_levelÚarg2_levelsÚresult_namesÚ
num_levelsÚ	new_orderr
   r   s    `                 @@r   r?   r?      s  ú€ Ü�$œ	×"Ñ"¤z°$¼	×'BÑ'BÜ˜4 Ó&‰ˆÙ�‹wˆä	�Dœ,×	'Ò	'Ý$÷	ð ˆÜ�dœL×)Ò)Ø˜5Ó Ø˜4’<ä"¤3 t§|¡|Ó#4Ö5˜Ù%& t§y¡y²°A°¡¸¿	¹	Â!ÀQÀ$¹Ó%H˜›
ñ 6á2°7ÓAÐAàŸ<™<×1×1Ü(Ð)HÓIÐIØŸ<™<×1×1Ü(Ð)HÓIÐIØŸ:™: d°˜:Ð9‘D�AÜ& qÓ,‘D�AØ"&§,¡,×"4Ñ"4°T·\±\Ó"B�KÛ*˜Ø�8¨­Ù+,¨Q©V°Q±VÓ+<˜G›Lñ  +ñ % W·G±GÀ[ÑQÐQØ˜TÓ!Ü%¤dÓ+�Üœs 4§<¡<Ó0Ö1�AÜ"¤3 t§|¡|Ó#4Ö5˜Ø›5 T¨T¢\à,3©J°q©M˜G™J q›Má,-Ü!,¨T¯Y©Y²q¸!°t©_¸d¿i¹iÊÈ1È¹oÓ!Nð-˜G™J q›Mó 6ñ 2õ *à#Ÿz™z×/Ñ/°·
±
Ó;�Ü�|×$Ò$á#ô &+¬3¨t¯|©|Ó+<Ô%=ôò
 &> ñ	 #Ü8=¼cÀ$Ç,Á,Ó>OÔ8PÓ QÒ8P°1¨¡¨A¤Ñ8PÑ QØ-1ôñ &>òð &*Øñ
�Fð &*§\¡\�F”Nð —|‘|×+Ñ+¨aÔ/ô (,¬J¸¿¹Ó'E˜œô (*§w¢wØ(¬#¨f«+¼¸\Ó9JÑ*Jó(˜õ'ô
 &+¨4¯<©<×+?Ñ+?Ô%@ó'˜ð (P¨¯©×);Ñ);Ð'O¸\×=NÑ=NÐ'O˜Ü'1×'=Ò'=Ø8˜kÐ8¨<Ð8Àñ(˜œô &)Ø"ŸL™L×/Ñ/ó&˜
ð &0°!¡^Ð$L´e¸JÈ¹NÓ6KÐ$L˜	Ø!'×!6Ñ!6°yÓ!A×!LÑ!LÓ!N™ä'1×'>Ò'>Ü"¤3 t§|¡|Ó#4Ó5´u¼SÀÓ=NÓ7OÐPó(˜œð "(×!1Ñ!1°!°QÓ!7×!BÑ!BÓ!D˜Ü'1×'>Ò'>Ø)¨4¯<©<Ð8ó(˜�ñ
 'Ü(Ø$(§J¡J°·±Ð#=ÀbÈ"ÀXñð !%§¡Ø'ñ�Fð "(§¡×!9Ñ!9¸$¿,¹,×:LÑ:LÓ!M�”Ø%Ÿ|™|×5Ñ5Ø ×&Ñ&¨¯©×);Ñ);Ñ;ó �”ð �ðm "ôt œs 4§<¡<Ó0Ô1óâ1�Að �1”k $§)¡)ªA¨q¨D¡/°4Ó8Ð9Ò9Ù1ð ð ñ +¨7Ó9Ð9ô " $¨Ó0Ð0ùòW !RùóùòLs   Ê8(W
Ë WË1
W
Ö*W!×W
c                óB  • [         R                  " SS9   [         R                  " U 5      nU S:  nS S S 5        [        U [        5      (       a&  WR
                  R                  5       (       a  SWU'   W$ WR                  5       (       a  SWU'   W$ ! , (       d  f       Ne= f)NÚignore)Úallr   )r   ÚerrstateÚsqrtr,   r   Ú_valuesÚany)Úxr   Úmasks      r   ÚzsqrtrX   ˜   s   € Ü	�Š˜Ó	"Ü—’˜“ˆØ�1‰uˆ÷ 
#ô �!”\×"Ñ"Ø�<‰<×Ñ×ÑØˆF�4‰Lð €Mð 
�‰�‰Øˆˆt‰à€M÷ 
#Õ	"ús   •BÂ
Bc                ó(   • U SU-  -   nUSU -  -   nX#4$ )Nr   © )r@   r#   rC   rD   s       r   r-   r-   ¦   s#   € àˆq�4‰x‰€AØˆq�4‰x‰€Aàˆ4€Kr   )F)rB   Úbool)Ú__doc__Ú
__future__r   Úcollectionsr   Útypingr   Únumpyr   Úpandas.core.dtypes.genericr   r   Úpandas.core.indexes.apir   r?   rX   r-   rZ   r   r   Ú<module>rc      s/   ðÙ 5å "å #Ý ã ÷õ
 /öC1òLór   