ó
    ƒñ:i+U  ã            	       ó  • S r SSKJrJrJrJrJr  SSKJr  SSK	r	 " S S5      r
S2S\S\S	\4S
 jjrS\S	\4S jrS\S	\4S jrS\S\S	\4S jrS\S	\4S jr " S S\
5      r " S S\5      r " S S\5      r " S S5      rS\S\S	\4S jrS\S	\\\4   4S jr " S S5      r " S  S!\5      r " S" S#\5      r " S$ S%\5      r " S& S'\5      r " S( S)\5      r " S* S+5      rS,\S	\\\4   4S- jr S,\S.\S/\\\!\"4   S	\#4S0 jr$S1 r%g)3z/Lower level layer for slicer.
Mom's spaghetti.
é    )ÚAnyÚAnyStrÚUnionÚListÚTuple)ÚabstractmethodNc                   óZ   • \ rS rSrSrSS\S\S\\4   4S jjr	S\4S jr
S	\S\4S
 jrSrg)ÚAtomicSliceré   aG  Wrapping object that will unify slicing across data structures.

What we support:
    Basic indexing (return references):
    - (start:stop:step) slicing
    - support ellipses
    Advanced indexing (return references):
    - integer array indexing

Numpy Reference:
    Basic indexing (return views):
    - (start:stop:step) slicing
    - support ellipses and newaxis (alias for None)
    Advanced indexing (return copy):
    - integer array indexing, i.e. X[[1,2], [3,4]]
    - boolean array indexing
    - mixed array indexing (has integer array, ellipses, newaxis in same slice)
ÚoÚmax_dimNc                 ór   • Xl         X l        U R                  S:X  a  [        R                  U5      U l        gg)a\  Provides a consistent slicing API to the object provided.

Args:
    o: Object to enable consistent slicing.
        Currently supports numpy dense arrays, recursive lists ending with list or numpy.
    max_dim: Max number of dimensions the wrapped object has.
        If set to "auto", max dimensions will be inferred. This comes at compute cost.
ÚautoN)r   r   ÚUnifiedDataHandler)Úselfr   r   s      ÚY/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/slicer/slicer_internal.pyÚ__init__ÚAtomicSlicer.__init__   s1   € ð ŒØŒØ�<‰<˜6Ó!Ü-×5Ñ5°aÓ8ˆD�Lð "ó    Úreturnc                 ój   • U R                   R                   SU R                  R                  5        S3$ )zNOverride default repr for human readability.

Returns:
    String to display.
Ú(Ú))Ú	__class__Ú__name__r   Ú__repr__)r   s    r   r   ÚAtomicSlicer.__repr__-   s.   € ð —.‘.×)Ñ)Ð*¨!¨D¯F©F¯O©OÓ,=Ð+>¸aÐ@Ð@r   Úitemc                 ó€   • [        XR                  5      n[        R                  U R                  X R                  5      $ )zÇConsistent slicing into wrapped object.

Args:
    item: Slicing key of type integer or slice.

Returns:
    Sliced object.

Raises:
    ValueError: If slicing is not compatible with wrapped object.
)Úunify_slicer   r   Úslicer   )r   r   Ú	index_tups      r   Ú__getitem__ÚAtomicSlicer.__getitem__5   s/   € ô   §l¡lÓ3ˆ	ô "×'Ñ'¨¯©°	¿<¹<ÓHÐHr   )r   r   ©r   )r   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   Úintr   r   r   r#   Ú__static_attributes__© r   r   r
   r
      sJ   † ññ&9˜#ð 9¨¨d°C¸Ð.?Ñ(@õ 9ðA˜&ô AðI ð I¨÷ Ir   r
   r   r   r   c                 ól   • [        U 5      n [        U 5      n[        X15      nU(       a  [        X25      nU$ )zùResolves aliases and ellipses in a slice item.

Args:
    item: Slicing key that is passed to __getitem__.
    max_dim: Max dimension of object to be sliced.
    alias_lookup: AliasLookup structure.

Returns:
    A tuple representation of the item.
)Ú_normalize_slice_keyÚ_normalize_subkey_typesÚ_handle_newaxis_ellipsesÚ_handle_aliases)r   r   Úalias_lookupr"   s       r   r    r    H   s5   € ô   Ó%€DÜ'¨Ó-€IÜ(¨Ó<€IÞÜ# IÓ<ˆ	ØÐr   r"   c                 óB  • / n1 SknU  H‰  n[        USU5      (       a  [        U5      nOW[        USS5      (       aC  [        UR                  5      S:X  a  UR	                  5       nO[        SUR                   S35      eUnUR                  U5        M‹     [        U5      $ )z£Casts subkeys into basic types such as int.

Args:
    key: Slicing key that is passed within __getitem__.

Returns:
    Tuple with subkeys casted to basic types.
>   Úint8Úint16Úint32Úint64Úuint8Úuint16Úuint32Úuint64ÚnumpyÚndarrayé   zCannot use array of shape z as subkey.)Ú_safe_isinstancer*   ÚlenÚshapeÚtolistÚ
ValueErrorÚappendÚtuple)r"   Únew_index_tupÚnp_int_typesÚsubkeyÚ
new_subkeys        r   r/   r/   [   s˜   € ð €Mò	€Ló ˆÜ˜F G¨\×:Ñ:Ü˜V›‰JÜ˜f g¨y×9Ñ9Ü�6—<‘<Ó  AÓ%Ø#Ÿ]™]›_‘
ä Ð#=¸f¿l¹l¸^È;Ð!WÓXÐXàˆJà×Ñ˜ZÖ(ñ ô �ÓÐr   Úkeyc                 ó6   • [        U [        5      (       d  U 4$ U $ )z¢Normalizes slice key into always being a top-level tuple.

Args:
    key: Slicing key that is passed within __getitem__.

Returns:
    Expanded slice as a tuple.
)Ú
isinstancerE   )rJ   s    r   r.   r.      s   € ô �cœ5×!Ñ!Øˆvˆàˆ
r   c                 óp  ^• S[         4m[        U4S jU  5       5      n/ nSnSnU  H®  n[        U[        R                  5      (       a  US-  nUc  M,  U[         :X  ag  U(       a  [        S5      eSn[        U5      n[        U5      X'-
  -   U:  a2  UR                  [        S5      5        [        U5      X'-
  -   U:  a  M0  M›  M�  UR                  U5        M°     [        U5      U:”  a  [        S5      e[        U5      U:  a+  UR                  [        S5      5        [        U5      U:  a  M+  [        U5      $ )	aW  Expands newaxis and ellipses within a slice for simplification.
This code is mostly adapted from: https://github.com/clbarnes/h5py_like/blob/master/h5py_like/shape_utils.py#L111

Args:
    index_tup: Slicing key as a tuple.
    max_dim: Maximum number of dimensions in the respective sliceable object.

Returns:
    Expanded slice as a tuple.
Nc              3   ó,   >#   • U  H	  oT;  v •  M     g 7f©Nr,   )Ú.0ÚidxÚnon_indexess     €r   Ú	<genexpr>Ú+_handle_newaxis_ellipses.<locals>.<genexpr>š   s   øé € ÐGºY°c kÖ1ºYùs   ƒFr   r>   z0an index can only have a single ellipsis ('...')Tztoo many indices for array)
ÚEllipsisÚsumrL   ÚnumbersÚNumberÚ
IndexErrorr@   rD   r!   rE   )	r"   r   Úconcrete_indicesÚ
index_listÚhas_ellipsisÚ	int_countr   Úinitial_lenrR   s	           @r   r0   r0   Ž   s&  ø€ ð œÐ"€KÜÔG¹YÓGÓGÐØ€Jà€LØ€IÛˆÜ�dœGŸN™N×+Ñ+Ø˜‰NˆIð ‰<Ùà”XÓÞÜ Ð!SÓTÐTØˆLÜ˜j›/ˆKÜ�j“/Ð%5Ñ%CÑDÀwÓNØ×!Ñ!¤%¨£+Ô.ô �j“/Ð%5Ñ%CÑDÀw×NÑNð ×Ñ˜dÖ#ñ! ô$ ˆ:ƒ˜Ó ÜÐ5Ó6Ð6Ü
ˆj‹/˜GÓ
#Ø×Ñœ% ›+Ô&ô ˆj‹/˜GÕ
#ô �ÓÐr   c                 óô   ^• / nU4S jn[        U 5       HV  u  pE[        U[        5      (       a#  / nU H  nUR                  U" Xt5      5        M     OU" XT5      nUR                  U5        MX     [	        U5      $ )Nc                 óZ   >• [        U [        5      (       a  U $ TR                  XU 5      n U $ rO   )rL   r!   Úget)r   Údimr2   s     €r   ÚresolveÚ _handle_aliases.<locals>.resolve½   s,   ø€ Ü�dœE×"Ñ"ØˆKà×Ñ ¨4Ó0ˆØˆr   )Ú	enumeraterL   ÚlistrD   rE   )r"   r2   rF   rc   rb   r   Únew_itemÚsub_items    `      r   r1   r1   º   st   ø€ Ø€Mõô ˜yÖ)‰	ˆÜ�dœD×!Ñ!ØˆHÛ �Ø—‘¡¨Ó 6Ö7ò !ñ ˜tÓ)ˆHØ×Ñ˜XÖ&ñ *ô �ÓÐr   c            
       óL   ^ • \ rS rSrSrSS\S\\\\	S\
4   4U 4S jjjrSrU =r$ )	ÚTrackedéÑ   z,Tracked defines an object that slicer wraps.r   rb   Nc                 óˆ  >• [         TU ]  U5        SU l        US:X  a$  [        [	        U R
                  5      5      U l        gUc  / U l        g[        U[        5      (       a	  U/U l        g[        U[        5      (       a  X l        g[        U[        5      (       a  [        U5      U l        g[        S[        U5       35      e)z«Defines an object that will be wrapped by slicer.

Args:
    o: Object that will be tracked for slicer.
    dim: Target dimension(s) slicer will index on for this object.
Nr   zCannot handle dim of type: )Úsuperr   Ú_namerf   Úranger   rb   rL   r*   rE   rC   Útype©r   r   rb   r   s      €r   r   ÚTracked.__init__Ô   sœ   ø€ ô 	‰Ñ˜Ôð ˆŒ
ð �&‹=ÜœE $§,¡,Ó/Ó0ˆD�HØ‰[ØˆD�HÜ˜œS×!Ñ!Ø�uˆD�HÜ˜œT×"Ñ"Ø�HÜ˜œU×#Ñ#Ü˜C“yˆD�HäÐ:¼4À»9¸+ÐFÓGÐGr   )rn   rb   r%   )r   r&   r'   r(   r)   r   r   r*   r   rE   Ústrr   r+   Ú__classcell__©r   s   @r   rj   rj   Ñ   s2   ø† Ù7ñH˜#ð H E¨#¨t°U¸DÀ#Ð*EÑ$F÷ Hö Hr   rj   c                   ó0   ^ • \ rS rSrSrSU 4S jjrSrU =r$ )ÚObjéï   zAn object that slicer wraps. c                 ó$   >• [         TU ]  X5        g rO   )rm   r   rq   s      €r   r   ÚObj.__init__ñ   s   ø€ Ü‰Ñ˜Õ r   r,   r%   ©r   r&   r'   r(   r)   r   r+   rt   ru   s   @r   rw   rw   ï   s   ø† Ù(÷!õ !r   rw   c                   ó,   ^ • \ rS rSrSrU 4S jrSrU =r$ )ÚAliaséõ   zADefines a tracked object as well as additional __getitem__ keys. c                 ó¸   >• [        U[        5      (       d5  [        U[        [        45      (       a  [	        U5      S::  d  [        S5      e[        TU ]  X5        g )Nr>   z%Aliases must track a single dimension)rL   r*   rf   rE   r@   rC   rm   r   rq   s      €r   r   ÚAlias.__init__÷   sD   ø€ ä�sœC× Ñ ¤Z°´d¼E°]×%CÑ%CÌÈCËÐTUËäÐDÓEÐEÜ‰Ñ˜Õ r   r,   r{   ru   s   @r   r}   r}   õ   s   ø† ÙL÷!ó !r   r}   c                   ó0   • \ rS rSrS rS rS rSS jrSrg)	ÚAliasLookupéÿ   c                 óf   • 0 U l         UR                  5        H  u  p#U R                  U5        M     g rO   )Ú_lookupÚitemsÚupdate)r   ÚaliasesÚ_Úaliass       r   r   ÚAliasLookup.__init__   s)   € ØˆŒð  Ÿ™ž‰HˆAØ�K‰K˜Öò (r   c                 óÄ  • UR                   b  [        UR                   5      S:X  a  g UR                   S   nX R                  ;  a  0 U R                  U'   U R                  U   n[        UR                  [
        5      (       a  [        UR                  5      OUR                  R                  5       nU H)  u  pVXc;  a  [        5       X6'   X6   R                  U5        M+     g ©Nr   )
rb   r@   r…   rL   r   rf   re   r†   ÚsetÚadd©r   rŠ   rb   Ú
dim_lookupÚitrÚiÚxs          r   r‡   ÚAliasLookup.update  s¦   € Ø�9‰9Ñ¤ E§I¡I£°!Ó 3Øà�i‰i˜‰lˆØ—l‘lÓ"Ø "ˆD�L‰L˜Ñà—\‘\ #Ñ&ˆ
ä$.¨u¯w©w¼×$=Ñ$=Œi˜Ÿ™Ô À5Ç7Á7Ç=Á=Ã?ˆÛ‰DˆAØÓ"Ü #£�
‘Ø‰M×Ñ˜aÖ ò r   c                 óö   • UR                   S   nU R                  U   n[        UR                  [        5      (       a  [        UR                  5      OUR                  R                  5       nU H  u  pVX6	 M	     g)z'Delete an alias that exists from lookupr   N)rb   r…   rL   r   rf   re   r†   r�   s          r   ÚdeleteÚAliasLookup.delete  sX   € à�i‰i˜‰lˆØ—\‘\ #Ñ&ˆ
ä$.¨u¯w©w¼×$=Ñ$=Œi˜Ÿ™Ô À5Ç7Á7Ç=Á=Ã?ˆÛ‰DˆAØ’ò r   Nc                 óÈ   • XR                   ;  a  U$ U R                   U   R                  US 5      nUc  U$ [        U5      S:X  a  [        [	        U5      5      $ [        U5      $ )Nr>   )r…   ra   r@   ÚnextÚiterrf   )r   rb   ÚtargetÚdefaultÚindexess        r   ra   ÚAliasLookup.get   s[   € Ø—l‘lÓ"ØˆNà—,‘,˜sÑ#×'Ñ'¨°Ó5ˆØ‰?ØˆNäˆw‹<˜1ÓÜœ˜W›Ó&Ð&ä˜“=Ð r   )r…   rO   )	r   r&   r'   r(   r   r‡   r—   ra   r+   r,   r   r   r‚   r‚   ÿ   s   † òò!ò ÷!r   r‚   Úslicer_indexÚ
slicer_dimc           	      ó$  • / n/ n[        U 5       HI  u  pE[        U[        [        [        45      (       a  UR                  S5        M8  UR                  S5        MK     U H-  nX6   S:X  d  M  UR                  U[        USU 5      -
  5        M/     U$ )z[Extracts new dim after applying slicing index and maps it back to the original index list. r   r>   N)re   rL   rE   rf   r!   rD   rV   )r    r¡   Únew_slicer_dimÚreduced_maskr‰   Úcurr_idxÚcurr_dims          r   Úresolve_dimr§   .  s�   € ð €NØ€Lä  Ö.‰ˆÜ�h¤¬¬eÐ 4×5Ñ5Ø×Ñ Ö"à×Ñ Ö"ñ	 /ó ˆØÑ! QÕ&Ø×!Ñ! (¬S°¸i¸xÐ1HÓ-IÑ"IÖJñ ð Ðr   Útrackedc                 óv   • U  Vs/ s H  oR                   PM     nn[        U5      S:X  a  US   nU$ UnU$ s  snf )Nr>   r   )r   r@   )r¨   ÚtÚoss      r   Ú	reduced_or¬   A  sA   € ÙÓ	’w�!�#Œ#‘w€BÐ	Ü�b“'˜Q“,ˆˆA‰€BØ€Ið %'€BØ€Iùò 
 s   …6c                   óv   • \ rS rSr\\S 5       5       r\\SS j5       5       r\\S 5       5       r\S 5       r	Sr
g)	ÚBaseHandleriG  c                 ó   • [        5       erO   ©ÚNotImplementedError)Úclsr   r"   r   s       r   Ú
head_sliceÚBaseHandler.head_sliceH  ó   € ô "Ó#Ð#r   c                 ó   • [        5       erO   r°   ©r²   r   Ú
tail_indexr   Úflattens        r   Ú
tail_sliceÚBaseHandler.tail_sliceM  rµ   r   c                 ó   • [        5       erO   r°   ©r²   r   s     r   r   ÚBaseHandler.max_dimR  rµ   r   c                 ó   • / $ rO   r,   r½   s     r   Údefault_aliasÚBaseHandler.default_aliasW  s   € àˆ	r   r,   N©T)r   r&   r'   r(   Úclassmethodr   r³   rº   r   rÀ   r+   r,   r   r   r®   r®   G  sh   † ØØñ$ó ó ð$ð Øó$ó ó ð$ð Øñ$ó ó ð$ð ñó ór   r®   c                   óX   • \ rS rSr\S 5       r\SS j5       r\S 5       r\S 5       rSr	g)	ÚSeriesHandleri\  c                 ód   • US   n[        U[        5      (       a  SOSnUR                  U   nXVS4$ )Nr   TFr>   ©rL   r*   Úiloc)r²   r   r"   r   Ú
head_indexÚ
is_elementÚsliced_os          r   r³   ÚSeriesHandler.head_slice]  s7   € à˜q‘\ˆ
Ü'¨
´C×8Ñ8‘T¸eˆ
Ø—6‘6˜*Ñ%ˆà QÐ&Ð&r   c                 ó   • [        XS9U   $ ©N©r   ©r
   r·   s        r   rº   ÚSeriesHandler.tail_slicee  ó   € ô ˜AÑ/°
Ñ;Ð;r   c                 ó,   • [        UR                  5      $ rO   ©r@   rA   r½   s     r   r   ÚSeriesHandler.max_dimk  ó   € ä�1—7‘7‹|Ðr   c                 ó^   • [        UR                  R                  5       S5      nSUl        U/$ )Nr   Úindex)r}   rØ   Úto_listrn   )r²   r   Úindex_aliass      r   rÀ   ÚSeriesHandler.default_aliaso  s)   € ä˜AŸG™GŸO™OÓ-¨qÓ1ˆØ#ˆÔØˆ}Ðr   r,   NrÂ   ©
r   r&   r'   r(   rÃ   r³   rº   r   rÀ   r+   r,   r   r   rÅ   rÅ   \  sP   † Øñ'ó ð'ð ó<ó ð<ð
 ñó ðð ñó ór   rÅ   c                   óX   • \ rS rSr\S 5       r\SS j5       r\S 5       r\S 5       rSr	g)	ÚDataFrameHandleriv  c                 ód   • Un[        US   [        5      (       a  SOSnUR                  U   nXVS4$ )NéÿÿÿÿTFé   rÇ   )r²   r   r"   r   Ú	cut_indexrÊ   rË   s          r   r³   ÚDataFrameHandler.head_slicew  s9   € ð ˆ	Ü'¨	°"©´s×;Ñ;‘TÀˆ
Ø—6‘6˜)Ñ$ˆà QÐ&Ð&r   c                 ó   • [        XS9U   $ rÎ   rÐ   r·   s        r   rº   ÚDataFrameHandler.tail_slice€  rÒ   r   c                 ó,   • [        UR                  5      $ rO   rÔ   r½   s     r   r   ÚDataFrameHandler.max_dim†  rÖ   r   c                 ó´   • [        UR                  R                  5       S5      nSUl        [        UR                  R                  5       S5      nSUl        X#/$ )Nr   rØ   r>   Úcolumns)r}   rØ   rÙ   rn   ré   )r²   r   rÚ   Úcolumn_aliass       r   rÀ   ÚDataFrameHandler.default_aliasŠ  sK   € ä˜AŸG™GŸO™OÓ-¨qÓ1ˆØ#ˆÔÜ˜QŸY™Y×.Ñ.Ó0°!Ó4ˆØ&ˆÔØÐ*Ð*r   r,   NrÂ   rÜ   r,   r   r   rÞ   rÞ   v  sP   † Øñ'ó ð'ð ó<ó ð<ð
 ñó ðð ñ+ó ó+r   rÞ   c                   óH   • \ rS rSr\S 5       r\SS j5       r\S 5       rSrg)ÚArrayHandleri“  c           	      ó  • US   USS  pTSnU H8  n[        U[        5      (       d  U[        UR                  5      :X  a    O	US-  nM:     US U n[	        U V	s/ s H  n	[        U	[
        5      (       a  SOSPM     sn	5      n
X   nX«U4$ s  sn	f )Nr   r>   TF)rL   rs   r@   rA   Úanyr*   )r²   r   r"   r   rÉ   r¸   ÚcutÚ	sub_indexrâ   r”   rÊ   rË   s               r   r³   ÚArrayHandler.head_slice”  s›   € ð "+¨1¡¨y¸¸¨}�JØˆã#ˆIÜ˜)¤S×)Ñ)¨S´C¸¿¹³LÓ-@ÙØ�1‰HŠCñ $ð ˜d˜s�Oˆ	ÜÉÓSÊÀA¤*¨Q´×"4Ñ"4™$¸%Ò?ÉÑSÓTˆ
Ø‘<ˆà SÐ(Ð(ùò Ts   Á#B
c                 óL  ^• U(       aø  [        USS5      (       a)  [        UR                  5       R                  5       US9U   $ [        USS5      (       a)  [        UR                  5       R                  5       US9U   $ [        USS5      (       a)  [        UR                  5       R                  5       US9U   $ [        USS	5      (       a)  [        UR                  5       R                  5       US9U   $ [        XS9U   $ U Vs/ s H  n[        XSS9U   PM     snm[        US
S5      (       ap  SS Kn[        T5      S:”  a/  [        TS   S5      (       a  [        U4S jT 5       5      (       + nOSnU(       a  UR                  T[        S9$ UR                  T5      $ [        USS5      (       aS  SS K
n[        T5      S:”  a/  [        TS   UR                  5      (       a  UR                  T5      $ UR                  T5      $ [        USS5      (       a  SSKJn	  U	" TSS9n
U
$ [        USS5      (       a  SSKJn	  U	" TSS9n
U
$ [        USS5      (       a  SSKJn	  U	" TSS9n
U
$ [        USS	5      (       a  SSKJn	  U	" TSS9n
U
$ [#        S[%        U5       S35      es  snf )Núscipy.sparse.cscÚ
csc_matrixrÏ   úscipy.sparse.csrÚ
csr_matrixúscipy.sparse.dokÚ
dok_matrixúscipy.sparse.lilÚ
lil_matrixr<   r=   r   Ú__len__c              3   óX   >#   • U  H  n[        U5      [        TS    5      :H  v •  M!     g7f)r   N)r@   )rP   r”   Úinners     €r   rS   Ú*ArrayHandler.tail_slice.<locals>.<genexpr>»  s"   øé € Ð$LÂeÀ¤S¨£V¬s°5¸±8«}Ö%<Âeùs   ƒ'*F)ÚdtypeÚtorchÚTensor)ÚvstackÚcsc)ÚformatÚcsrÚdokÚlilzCannot handle type Ú.)r?   r
   Útoarrayr¹   r<   r@   ÚhasattrÚallÚarrayÚobjectr  rL   r  ÚstackÚtensorÚscipy.sparser  rC   rp   )r²   r   r¸   r   r¹   Úer<   Úraggedr  r  Úoutrþ   s              @r   rº   ÚArrayHandler.tail_slice¦  sc  ø€ æô   Ð#5°|×DÑDÜ# A§I¡I£K×$7Ñ$7Ó$9À7ÑKÈJÑWÐWÜ! !Ð%7¸×FÑFÜ# A§I¡I£K×$7Ñ$7Ó$9À7ÑKÈJÑWÐWÜ! !Ð%7¸×FÑFÜ# A§I¡I£K×$7Ñ$7Ó$9À7ÑKÈJÑWÐWÜ! !Ð%7¸×FÑFÜ# A§I¡I£K×$7Ñ$7Ó$9À7ÑKÈJÑWÐWä# AÑ7¸
ÑCÐCáKLÓMÊ1Àa”\ !Ñ5°jÔAÉ1ÑMˆEÜ  7¨I×6Ñ6ÛÜ�u“: “>¤g¨e°A©h¸	×&BÑ&BÜ!$Ô$LÁeÓ$LÓ!LÔL‘Fà"�FÞØ Ÿ;™; u´F˜;Ð;Ð;à Ÿ;™; uÓ-Ð-Ü! ! W¨h×7Ñ7Ûä�u“: “>¤j°°q±¸5¿<¹<×&HÑ&HØ Ÿ;™; uÓ-Ð-à Ÿ<™<¨Ó.Ð.Ü! !Ð%7¸×FÑFÝ/Ù˜U¨5Ñ1�Ø�
Ü! !Ð%7¸×FÑFÝ/Ù˜U¨5Ñ1�Ø�
Ü! !Ð%7¸×FÑFÝ/Ù˜U¨5Ñ1�Ø�
Ü! !Ð%7¸×FÑFÝ/Ù˜U¨5Ñ1�Ø�
ä Ð#6´t¸A³w°i¸qÐ!AÓBÐBùòG Ns   ÄJ!c                 óÜ   • [        USS5      (       aA  UR                  S:X  a1  [        U Vs/ s H  n[        R	                  U5      PM     snSS9S-   $ [        UR                  5      $ s  snf )Nr<   r=   r  rà   ©r�   r>   )r?   r   Úmaxr   r   r@   rA   ©r²   r   r”   s      r   r   ÚArrayHandler.max_dimÜ  s^   € ä˜A˜w¨	×2Ñ2°q·w±wÀ(Ó7JÜ¹qÓAºq¸!Ô*×2Ñ2°1Ö5¹qÑAÈ2ÑNÐQRÑRÐRä�q—w‘w“<Ðùò Bs   ¬A)r,   NrÂ   ©	r   r&   r'   r(   rÃ   r³   rº   r   r+   r,   r   r   rí   rí   “  s?   † Øñ)ó ð)ð" ó3Có ð3Cðj ñ ó ó r   rí   c                   óH   • \ rS rSr\S 5       r\SS j5       r\S 5       rSrg)ÚDictHandleriä  c           
      ó^  • US   n[        U[        [        45      (       a  [        U5      S:X  a  SUS4$ [        U[        [        45      (       a!  SU Vs0 s H  nU[	        XS9U   _M     snS4$ [        U[
        5      (       a  U[        S S S 5      :X  a  SUS4$ SX   S4$ SX   S4$ s  snf )Nr   Fr>   rÏ   T)rL   rE   rf   r@   r
   r!   )r²   r   r"   r   rÉ   rñ   s         r   r³   ÚDictHandler.head_sliceå  sÑ   € à˜q‘\ˆ
Ü�j¤5¬$ -×0Ñ0´S¸³^ÀqÓ5HØ˜!˜Q�;Ðä�j¤4¬ -×0Ñ0àñ &0óâ%/˜	ð œ|¨AÑ?À	ÑJÒJÙ%/ñð ðð ô ˜
¤E×*Ñ*ØœU 4¨¨tÓ4Ó4Ø˜a �{Ð"Ø˜!™-¨Ð*Ð*à˜™¨Ð)Ð)ùòs   ÁB*c           
      ó”   • U(       a  [        XS9U   $ UR                  5        VVs0 s H  u  pVU[        XcS9U   _M     snn$ s  snnf rÎ   )r
   r†   )r²   r   r¸   r   r¹   Úkr  s          r   rº   ÚDictHandler.tail_sliceû  sQ   € æÜ Ñ3°JÑ?Ð?ð MNÏGÉGÌIôÚLUÁDÀA�”< Ñ3°JÑ?Ò?ÉIòð ùó s   §Ac                 óŠ   • [        UR                  5        Vs/ s H  n[        R                  U5      PM     snSS9S-   $ s  snf ©Nrà   r  r>   )r  Úvaluesr   r   r  s      r   r   ÚDictHandler.max_dim  s:   € ä¸1¿8¹8¼:ÓFº:°aÔ&×.Ñ.¨qÖ1¹:ÑFÐPRÑSÐVWÑWÐWùÒFs   ˜A r,   NrÂ   r  r,   r   r   r  r  ä  s>   † Øñ*ó ð*ð* óó ðð ñXó óXr   r  c                   óH   • \ rS rSr\S 5       r\SS j5       r\S 5       rSrg)ÚListTupleHandleri	  c                 óê  • US   n[        U[        [        45      (       a  [        U5      S:X  a  SUS4$ [        U[        [        45      (       aW  [        U5      S:X  a  SUS4$ U Vs/ s H  n[	        XS9U   PM     nn[        U[        5      (       a  [        U5      OUnSUS4$ [        U[
        5      (       a  SX   S4$ [        U[        5      (       a  SX   S4$ [        SU SU 35      es  snf )Nr   Fr>   rÏ   TzInvalid key z for )rL   rE   rf   r@   r
   r!   r*   rC   )r²   r   r"   r   rÉ   rñ   Úresultss          r   r³   ÚListTupleHandler.head_slice
  s  € à˜q‘\ˆ
Ü�j¤5¬$ -×0Ñ0´S¸³^ÀqÓ5HØ˜!˜Q�;Ðä�j¤4¬ -×0Ñ0Ü�:‹ !Ó#Ø˜a �{Ð"ñ &0óâ%/˜	ô ! Ñ4°YÔ?Ù%/ð ð ô -7°q¼%×,@Ñ,@œ% œ.Àg�Ø˜g qÐ(Ð(Ü˜
¤E×*Ñ*Ø˜!™-¨Ð*Ð*Ü˜
¤C×(Ñ(Ø˜™¨Ð)Ð)ä˜|¨J¨<°u¸Q¸CÐ@ÓAÐAùòs   Á(C0c                 ó®   • U(       a  [        XS9U   $ U Vs/ s H  n[        XSS9U   PM     nn[        U[        5      (       a  [        U5      $ U$ s  snf rÎ   )r
   rL   rE   )r²   r   r¸   r   r¹   r  r*  s          r   rº   ÚListTupleHandler.tail_slice!  sT   € æÜ Ñ3°JÑ?Ð?áMNÓOÊQÈ”| AÑ7¸
ÔCÉQˆGÐOÜ%/°´5×%9Ñ%9”5˜“>ÐF¸wÐFùò Ps   ˜Ac                 ón   • [        U Vs/ s H  n[        R                  U5      PM     snSS9S-   $ s  snf r$  )r  r   r   r  s      r   r   ÚListTupleHandler.max_dim)  s2   € ä¹1Ó=º1°aÔ&×.Ñ.¨qÖ1¹1Ñ=ÀrÑJÈQÑNÐNùÒ=s   Š2r,   NrÂ   r  r,   r   r   r(  r(  	  sB   † ØñBó ðBð, óGó ðGð ñOó óOr   r(  c                   óf   • \ rS rSrSr \\\\\\\\\\\	S.r
\S 5       r\S 5       r\S 5       rSrg)	r   i.  z6Registry that maps types to their unified slice calls.))Úbuiltinsrf   )r1  rE   )r1  Údict)r  r  )r<   r=   )rô   rõ   )rö   r÷   )rø   rù   )rú   rû   )zpandas.core.frameÚ	DataFrame)zpandas.core.seriesÚSeriesc                 ó  • [        U[        [        45      (       a  [        U5      S:X  a  U$ [	        U5      nU R
                  U   R                  nU R
                  U   R                  nU" XU5      u  pxn	U" X‚U	S  X9-
  U5      n
U
$ r�   )rL   rE   rf   r@   Ú
_type_nameÚtype_mapr³   rº   )r²   r   r"   r   Úo_typer³   rº   rÊ   rË   rð   r  s              r   r!   ÚUnifiedDataHandler.slice@  s„   € ô �i¤%¬ ×/Ñ/´C¸	³NÀaÓ4GØˆHô ˜A“ˆØ—\‘\ &Ñ)×4Ñ4ˆ
Ø—\‘\ &Ñ)×4Ñ4ˆ
á$.¨q¸WÓ$EÑ!ˆ
˜cÙ˜¨S¨T ?°G±MÀ:ÓNˆØˆ
r   c                 ót   • [        U5      nX R                  ;  a  gU R                  U   R                  U5      $ r�   )r6  r7  r   ©r²   r   r8  s      r   r   ÚUnifiedDataHandler.max_dimP  s2   € ä˜A“ˆØŸ™Ó%ØØ�|‰|˜FÑ#×+Ñ+¨AÓ.Ð.r   c                 óv   • [        U5      nX R                  ;  a  0 $ U R                  U   R                  U5      $ rO   )r6  r7  rÀ   r;  s      r   rÀ   Ú UnifiedDataHandler.default_aliasW  s4   € ä˜A“ˆØŸ™Ó%ØˆIØ�|‰|˜FÑ#×1Ñ1°!Ó4Ð4r   r,   N)r   r&   r'   r(   r)   r(  r  rí   rÞ   rÅ   r7  rÃ   r!   r   rÀ   r+   r,   r   r   r   r   .  sl   † ÙAàGà.Ø/Ø)Ø)Ø*Ø,8Ø,8Ø,8Ø,8Ø,<Ø*7ñ€Hð ñó ðð ñ/ó ð/ð ñ5ó ó5r   r   r   c                 ól   • [        U R                  R                  5      U R                  R                  4$ rO   )Ú_handle_module_aliasesr   r&   r   )r   s    r   r6  r6  _  s&   € Ü! !§+¡+×"8Ñ"8Ó9¸1¿;¹;×;OÑ;OÐOÐOr   Úmodule_nameÚ	type_namec                 ó‚   • [        U 5      u  p4[        U[        5      (       a  X1:H  =(       a    XB:H  $ X1:H  =(       a    XB;   $ rO   )r6  rL   rs   )r   rA  rB  Úo_moduler8  s        r   r?   r?   c  s?   € ô " !“}Ñ€HÜ�)œS×!Ñ!ØÑ&×>¨6Ñ+>Ð>àÑ&×>¨6Ñ+>Ð>r   c                 ó2   • SSSSS.nUR                  X 5      $ )Nrô   rö   rø   rú   )zscipy.sparse._csczscipy.sparse._csrzscipy.sparse._dokzscipy.sparse._lil)ra   )rA  Ú
module_maps     r   r@  r@  m  s(   € ð
 0Ø/Ø/Ø/ñ	€Jð �>‰>˜+Ó3Ð3r   rO   )&r)   Útypingr   r   r   r   r   Úabcr   rW   r
   r*   r    r/   r.   r0   r1   rj   rw   r}   r‚   r§   r¬   r®   rÅ   rÞ   rí   r  r(  r   r  rs   r6  rŽ   rE   Úboolr?   r@  r,   r   r   Ú<module>rJ     s¨  ðñ÷
 3Õ 2Ý Û ÷:Iñ :Iñz�cð  Cð ¸uõ ð&!  uð ! °ô ! ðH˜cð  eô ð)¨ð )¸ð )Àô )ðX ˜uð  °uô  ô.Hˆlô Hô<!ˆ'ô !ô!ˆGô !÷,!ñ ,!ð^˜eð °ð ¸$ô ð&�wð  5¨¨s¨Ñ#3ô ÷ñ ô*�Kô ô4+�{ô +ô:N �;ô N ôb"X�+ô "XôJ"O�{ô "O÷J.5ñ .5ðbP�&ð P˜U 3¨ 8™_ô Pð?Øð?Øð?Ø,1°#°s¸E°/Ñ,Bð?à	ô?ó
4r   