Ë
    :vžj8  ã            	       óÐ  — d Z ddlZddlZddlmZ ddlmZ dedede	eef   fd	„Z
 ej                  d
ej                  «      Z ej                  dej                  «      Z ej                  dej                  ej                  z  «      Zdededefd„Z G d„ d«      Zdedee   fd„Z G d„ de«      Z G d„ de«      Zed   fdeeef   dedeeef   fd„Z e«        e«       dœZy)z'Adapters for Jupyter msg spec versions.é    N)ÚAnyé   )Úprotocol_version_infoÚcodeÚ
cursor_posÚreturnc                 óp   — | sy| j                  d«      D ]  }t        |«      }||kD  r||z  }Œ ||fS  |fS )z¡Turn a multiline code block and cursor position into a single line
    and new cursor position.

    For adapting ``complete_`` and ``object_info_request``.
    )Ú r   T)Ú
splitlinesÚlen)r   r   ÚlineÚns       úg/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/jupyter_client/adapter.pyÚcode_to_liner      sQ   € ñ ØØ—‘ Ö%ˆÜ�‹IˆØ˜Š>Ø˜!‰O‰JàØ�ÐÐð &ð �ÐÐó    z\([^\(\)]+\)z	\([^\(]*$z[a-z_][0-9a-z._]*c                 óü   — t        | |«      \  }}|}t        j                  d|«      }||k7  r|}t        j                  d|«      }||k7  rŒt        j                  d|«      }t        j                  |«      }|r|d   S y)ztReimplement token-finding logic from IPython 2.x javascript

    for adapting object_info_request from v5 to v4
    r
   éÿÿÿÿ)r   Ú_match_bracketÚsubÚ_end_bracketÚ_identifierÚfindall)r   r   r   Ú_ÚoldlineÚmatchess         r   Úextract_oname_v4r   "   s†   € ô ˜4 Ó,�G€Dˆ!à€GÜ×Ñ˜b $Ó'€DØ
�TŠ/ØˆÜ×!Ñ! " dÓ+ˆð �T‹/ô
 ×Ñ˜B Ó%€DÜ×!Ñ! $Ó'€GÙØ�r‰{Ðàr   c                   óÞ   — e Zd ZU dZi Zeeef   ed<   deeef   deeef   fd„Z	deeef   deeef   fd„Z
deeef   deeef   fd„Zdeeef   deeef   fd„Zdeeef   deeef   fd	„Zy
)ÚAdapterzaBase class for adapting messages

    Override message_type(msg) methods to create adapters.
    Úmsg_type_mapÚmsgr   c                 ó   — |S )úUpdate the header.© ©Úselfr    s     r   Úupdate_headerzAdapter.update_headerA   ó   € àˆ
r   c                 ó   — |S )zUpdate the metadata.r#   r$   s     r   Úupdate_metadatazAdapter.update_metadataE   r'   r   c                 ód   — |d   }|d   }|| j                   v r| j                   |   x|d<   |d<   |S )zUpdate the message type.ÚheaderÚmsg_type)r   )r%   r    r+   r,   s       r   Úupdate_msg_typezAdapter.update_msg_typeI   sF   € à�X‘ˆØ˜*Ñ%ˆØ�t×(Ñ(Ñ(Ø37×3DÑ3DÀXÑ3NÐNˆC�
‰O˜f ZÑ0Øˆ
r   c                 ó   — |S )zeThis will be called *instead of* the regular handler

        on any reply with status != ok
        r#   r$   s     r   Úhandle_reply_status_errorz!Adapter.handle_reply_status_errorQ   s	   € ð
 ˆ
r   c                 óú   — | j                  |«      }| j                  |«      }| j                  |«      }|d   }t        | |d   d «      }|€|S |d   j	                  dd «      dv r| j                  |«      S  ||«      S )Nr+   r,   ÚcontentÚstatus>   ÚerrorÚaborted)r&   r)   r-   ÚgetattrÚgetr/   )r%   r    r+   Úhandlers       r   Ú__call__zAdapter.__call__X   s�   € Ø× Ñ  Ó%ˆØ×"Ñ" 3Ó'ˆØ×"Ñ" 3Ó'ˆØ�X‘ˆä˜$  zÑ 2°DÓ9ˆØˆ?ØˆJð ˆy‰>×Ñ˜h¨Ó-Ð1EÑEØ×1Ñ1°#Ó6Ð6Ù�s‹|Ðr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚdictÚstrÚ__annotations__r   r&   r)   r-   r/   r8   r#   r   r   r   r   9   sÊ   … ñð
 $&€L�$�s˜C�x‘.Ó%ð  c¨3 h¡ð °D¸¸c¸±Nó ð 4¨¨S¨¡>ð °d¸3À¸8±nó ð 4¨¨S¨¡>ð °d¸3À¸8±nó ð¨T°#°s°(©^ð ÀÀSÈ#ÀXÁó ð˜D  c ™Nð ¨t°C¸°H©~ô r   r   Úversionc                 óŠ   — g }| j                  d«      D ]  }	 |j                  t        |«      «       Œ |S # t        $ r Y Œ-w xY w)zRconvert a version string to a list of ints

    non-int segments are excluded
    Ú.)ÚsplitÚappendÚintÚ
ValueError)r@   ÚvÚparts      r   Ú_version_str_to_listrI   h   sL   € ð
 	€AØ—‘˜cÖ"ˆð	Ø�H‰H”S˜“YÕð #ð
 €Høô ò 	Ùð	ús   ˜6¶	AÁAc                   ó°  — e Zd ZdZdZddddddœZd	eeef   d
eeef   fd„Z	d	eeef   d
eeef   fd„Z
d	eeef   d
eeef   fd„Zd	eeef   d
eeef   fd„Zd	eeef   d
eeef   fd„Zd	eeef   d
eeef   fd„Zd	eeef   d
eeef   fd„Zd	eeef   d
eeef   fd„Zd	eeef   d
eeef   fd„Zd	eeef   d
eeef   fd„Zd	eeef   d
eeef   fd„Zy)ÚV5toV4zAdapt msg protocol v5 to v4ú4.1ÚpyoutÚpyinÚpyerrÚobject_info_requestÚobject_info_reply)Úexecute_resultÚexecute_inputr3   Úinspect_requestÚinspect_replyr    r   c                 óZ   — |d   j                  dd«       |d   j                  dd«       |S )r"   r+   r@   NÚparent_header©Úpopr$   s     r   r&   zV5toV4.update_headerƒ   s0   € àˆH‰×Ñ˜) TÔ*ØˆOÑ× Ñ  ¨DÔ1Øˆ
r   c                 ó\  — i }|d   }dD ]  }||v sŒt        ||   «      ||<   Œ |j                  dd«      dk(  rd|v rt        |d   «      |d<   |j                  di «      }|j                  d	d«      }|j                  d
|«       d|v r|j                  dt        |d   «      «       ||d<   |S )úHandle a kernel info reply.r1   )Úlanguage_versionÚprotocol_versionÚimplementationr
   ÚipythonÚimplementation_versionÚipython_versionÚlanguage_infoÚnameÚlanguager@   r\   )rI   r6   Ú
setdefault)r%   r    Úv4cr1   Úkeyrb   rd   s          r   Úkernel_info_replyzV5toV4.kernel_info_reply‹   sÉ   € àˆØ�i‘.ˆÛ;ˆCØ�gŠ~Ü/°¸±Ó=��C’ð <ð �;‰;Ð'¨Ó,°	Ò9Ð>VÐZaÑ>aÜ%9¸'ÐBZÑ:[Ó%\ˆCÐ!Ñ"ØŸ™ O°RÓ8ˆØ ×$Ñ$ V¨RÓ0ˆØ�‰�z 8Ô,Ø˜Ñ%Ø�N‰NÐ-Ô/CÀMÐR[ÑD\Ó/]Ô^ØˆˆI‰Øˆ
r   c                 ó4   — |d   }|j                  dg «       |S )úHandle an execute request.r1   Úuser_variables©re   ©r%   r    r1   s      r   Úexecute_requestzV5toV4.execute_requestœ   s!   € à�i‘.ˆØ×ÑÐ+¨RÔ0Øˆ
r   c                 ó4   — |d   }|j                  di «       |S )úHandle an execute reply.r1   rk   rl   rm   s      r   Úexecute_replyzV5toV4.execute_reply¢   s!   € à�i‘.ˆØ×ÑÐ+¨RÔ0àˆ
r   c                 óx   — |d   }|d   }|d   }t        ||«      \  }}i x}|d<   d|d<   ||d<   d|d<   ||d<   |S )	úHandle a complete request.r1   r   r   r
   Útextr   NÚblock)r   )r%   r    r1   r   r   r   Únew_contents          r   Úcomplete_requestzV5toV4.complete_request©   sj   € à�i‘.ˆØ�v‰ˆØ˜\Ñ*ˆ
Ü'¨¨jÓ9Ñˆˆjà')Ð)ˆ�c˜)‘nØ ˆ�FÑØ"ˆ�FÑØ#ˆ�GÑØ$.ˆ�LÑ!Øˆ
r   c                 óž   — |d   }|j                  d«      }|j                  d«      }||z
  }|d   d   d| |d<   |j                  dd«       |S )	úHandle a complete reply.r1   Úcursor_startÚ
cursor_endr   r   NÚmatched_textÚmetadatarX   )r%   r    r1   rz   r{   Ú	match_lens         r   Úcomplete_replyzV5toV4.complete_reply·   s_   € à�i‘.ˆØ—{‘{ >Ó2ˆØ—[‘[ Ó.ˆ
Ø Ñ-ˆ	Ø")¨)Ñ"4°QÑ"7¸
¸Ð"Cˆ�ÑØ�‰�J Ô%Øˆ
r   c                 ó~   — |d   }|d   }|d   }t        ||«      \  }}i x}|d<   t        ||«      |d<   |d   |d<   |S )zHandle an object info request.r1   r   r   ÚonameÚdetail_level)r   r   )r%   r    r1   r   r   Ú_liner   rv   s           r   rP   zV5toV4.object_info_requestÁ   sa   € à�i‘.ˆØ�v‰ˆØ˜\Ñ*ˆ
Ü  jÓ1‰ˆˆqà')Ð)ˆ�c˜)‘nÜ/°°jÓAˆ�GÑØ&-¨nÑ&=ˆ�NÑ#Øˆ
r   c                 ó   — dddœ|d<   |S )ú1inspect_reply can't be easily backward compatibleFÚunknown)Úfoundr�   r1   r#   r$   s     r   rQ   zV5toV4.object_info_replyÍ   s   € à#(°9Ñ=ˆˆI‰Øˆ
r   c                 ó8   — |d   }|j                  d«      |d<   |S )úHandle a stream message.r1   rt   ÚdatarX   rm   s      r   ÚstreamzV5toV4.streamÔ   ó"   € à�i‘.ˆØ!Ÿ+™+ fÓ-ˆ�‰Øˆ
r   c                 ó¢   — |d   }|j                  dd«       |d   }d|v r	 t        j                  |d   «      |d<   |S |S # t        $ r Y |S w xY w)zHandle a display data message.r1   ÚsourceÚdisplayrŠ   úapplication/json)re   ÚjsonÚdumpsÚ	Exception©r%   r    r1   rŠ   s       r   Údisplay_datazV5toV4.display_dataÚ   so   € à�i‘.ˆØ×Ñ˜8 YÔ/Ø�v‰ˆØ Ñ%ðÜ+/¯:©:°dÐ;MÑ6NÓ+O�Ð'Ñ(ð ˆ
ˆsˆ
øô ò àØˆ
ðúó   ¢A Á	AÁAc                 ó0   — |d   j                  dd«       |S )úHandle an input request.r1   ÚpasswordNrX   r$   s     r   Úinput_requestzV5toV4.input_requesté   s   € àˆI‰×Ñ˜: tÔ,Øˆ
r   N)r9   r:   r;   r<   r@   r   r=   r>   r   r&   rh   rn   rq   rw   r   rP   rQ   r‹   r•   rš   r#   r   r   rK   rK   v   s£  „ Ù%à€Gð "ØØØ0Ø,ñ€Lð  c¨3 h¡ð °D¸¸c¸±Nó ð T¨#¨s¨(¡^ð ¸¸SÀ#¸X¹ó ð" 4¨¨S¨¡>ð °d¸3À¸8±nó ð  c¨3 h¡ð °D¸¸c¸±Nó ð D¨¨c¨¡Nð °t¸CÀ¸H±~ó ð $ s¨C x¡.ð °T¸#¸s¸(±^ó ð
 t¨C°¨H¡~ð 
¸$¸sÀC¸x¹.ó 
ð T¨#¨s¨(¡^ð ¸¸SÀ#¸X¹ó ð˜$˜s C˜x™.ð ¨T°#°s°(©^ó ð  S¨# X¡ð °4¸¸S¸±>ó ð  c¨3 h¡ð °D¸¸c¸±Nô r   rK   c                   ó  — e Zd ZdZdZej                  j                  «       D � ��ci c]  \  }}||“Œ
 c}}} Zdee	e
f   dee	e
f   fd„Zdee	e
f   dee	e
f   fd„Zdee	e
f   dee	e
f   fd„Zdee	e
f   dee	e
f   fd„Zdee	e
f   dee	e
f   fd	„Zdee	e
f   dee	e
f   fd
„Zdee	e
f   dee	e
f   fd„Zdee	e
f   dee	e
f   fd„Zdee	e
f   dee	e
f   fd„Zdee	e
f   dee	e
f   fd„Zdee	e
f   dee	e
f   fd„Zyc c}}} w )ÚV4toV5zConvert msg spec V4 to V5z5.0r    r   c                 óX   — | j                   |d   d<   |d   r| j                   |d   d<   |S )r"   r+   r@   rW   )r@   r$   s     r   r&   zV4toV5.update_header÷   s4   € à#'§<¡<ˆˆH‰�iÑ ØˆÒØ.2¯l©lˆC�Ñ  Ñ+Øˆ
r   c                 óô  — |d   }dD ],  }||v sŒdj                  t        t        ||   «      «      ||<   Œ. |j                  dd«       |d   j	                  d«      rd|v rd	|d
<   |j                  d«      |d<   |j                  d«      }|j                  di «      }|j                  d|«       d|v r@dj                  t        t        |j                  d«      «      «      }|j                  d|«       d|d<   |S )r[   r1   )r]   ra   rB   r]   rL   rd   Úpythonra   r_   r^   r`   rb   rc   r\   r@   r
   Úbanner)ÚjoinÚmapr>   re   Ú
startswithrY   )r%   r    r1   rg   rd   rb   r\   s          r   rh   zV4toV5.kernel_info_reply   sÿ   € à�i‘.ˆÛ:ˆCØ�gŠ~Ø"Ÿx™x¬¬C°¸±Ó(>Ó?�˜’ð ;ð 	×ÑÐ-¨uÔ5à�:Ñ×)Ñ)¨(Ô3Ð8IÈWÑ8TØ(1ˆGÐ$Ñ%Ø07·±Ð<MÓ0NˆGÐ,Ñ-à—;‘;˜zÓ*ˆØ×*Ñ*¨?¸BÓ?ˆØ× Ñ  ¨Ô2Ø Ñ(Ø"Ÿx™x¬¬C°·±Ð=OÓ1PÓ(QÓRÐØ×$Ñ$ YÐ0@ÔAàˆ�ÑØˆ
r   c                 óp   — |d   }|j                  dg «      }|j                  di «      }|D ]  }|||<   Œ	 |S )rj   r1   rk   Úuser_expressions)rY   re   )r%   r    r1   rk   r¥   rG   s         r   rn   zV4toV5.execute_request  sJ   € à�i‘.ˆØ Ÿ™Ð%5°rÓ:ˆØ"×-Ñ-Ð.@À"ÓEÐÛˆAØ"#Ð˜QÒð  àˆ
r   c                 ó"  — |d   }|j                  di «      }|j                  di «      }|r|j                  |«       |j                  dg «      D ]=  }|j                  dd«      dk(  sŒd|v sŒd	|vri |d	<   |j                  d«      |d	   d
<   Œ? |S )rp   r1   r¥   rk   ÚpayloadrŽ   NÚpagert   rŠ   ú
text/plain)re   rY   Úupdater6   )r%   r    r1   r¥   rk   r§   s         r   rq   zV4toV5.execute_reply   s¡   € à�i‘.ˆØ"×-Ñ-Ð.@À"ÓEÐØ Ÿ™Ð%5°rÓ:ˆÙØ×#Ñ# NÔ3ð —{‘{ 9¨bÖ1ˆGØ�{‰{˜8 TÓ*¨fÓ4¸&ÀGÒ:KØ Ñ(Ø&(�G˜F‘OØ07·±¸FÓ0C�˜‘ Ò-ð	 2ð ˆ
r   c                 ó>   — |d   }i x}|d<   |d   |d<   |d   |d<   |S )rs   r1   r   r   r   r#   )r%   r    Úold_contentrv   s       r   rw   zV4toV5.complete_request1  s<   € à˜)‘nˆà')Ð)ˆ�c˜)‘nØ)¨&Ñ1ˆ�FÑØ$/°Ñ$=ˆ�LÑ!Øˆ
r   c                 ó€   — |d   }ddix}|d<   |d   |d<   |d   rt        |d   «       |d<   nd|d<   d|d<   i |d	<   |S )
ry   r1   r2   Úokr   r|   rz   Nr{   r}   ©r   )r%   r    r1   rv   s       r   r   zV4toV5.complete_reply:  ss   € ð �i‘.ˆØ(0°$Ð'7Ð7ˆ�c˜)‘nØ!(¨Ñ!3ˆ�IÑØ�>Ò"Ü+.¨w°~Ñ/FÓ+GÐ*GˆK˜Ò'ð +/ˆK˜Ñ'Ø$(ˆ�LÑ!Ø"$ˆ�JÑØˆ
r   c                 ó^   — |d   }|d   }i x}|d<   ||d<   t        |«      |d<   |d   |d<   |S )zHandle an inspect request.r1   r�   r   r   r‚   r¯   )r%   r    r1   rc   rv   s        r   rT   zV4toV5.inspect_requestL  sO   € à�i‘.ˆØ�wÑˆà')Ð)ˆ�c˜)‘nØ"ˆ�FÑÜ$'¨£Iˆ�LÑ!Ø&-¨nÑ&=ˆ�NÑ#Øˆ
r   c                 ó`  — |d   }ddix}|d<   |d   x}|d<   i x|d<   }i |d<   |r‡g }dD ]*  }|j                  |d«      sŒ|j                  ||   «        n d	D ]*  }|j                  |d«      sŒ|j                  ||   «        n |s|j                  d
«       dj                  |«      |d<   |S )r…   r1   r2   r®   r‡   rŠ   r}   )Úcall_defÚinit_definitionÚ
definitionF)Úcall_docstringÚinit_docstringÚ	docstringz<empty docstring>Ú
r©   )r6   rD   r¡   )r%   r    r1   rv   r‡   rŠ   Úlinesrg   s           r   rU   zV4toV5.inspect_replyW  sØ   € à�i‘.ˆØ(0°$Ð'7Ð7ˆ�c˜)‘nØ'.¨wÑ'7Ð7ˆ�˜GÑ$Ø%'Ð'ˆ�FÑ˜dØ"$ˆ�JÑÙØˆEÛD�Ø—;‘;˜s EÕ*Ø—L‘L ¨¡Ô.Ùð Eó I�Ø—;‘;˜s EÕ*Ø—L‘L ¨¡Ô.Ùð Iñ Ø—‘Ð0Ô1Ø!%§¡¨5Ó!1ˆD�ÑØˆ
r   c                 ó8   — |d   }|j                  d«      |d<   |S )r‰   r1   rŠ   rt   rX   rm   s      r   r‹   zV4toV5.streamo  rŒ   r   c                 ó¢   — |d   }|j                  dd«       |d   }d|v r	 t        j                  |d   «      |d<   |S |S # t        $ r Y |S w xY w)zHandle display data.r1   rŽ   NrŠ   r�   )rY   r‘   Úloadsr“   r”   s       r   r•   zV4toV5.display_datau  sm   € à�i‘.ˆØ�‰�H˜dÔ#Ø�v‰ˆØ Ñ%ðÜ+/¯:©:°dÐ;MÑ6NÓ+O�Ð'Ñ(ð ˆ
ˆsˆ
øô ò àØˆ
ðúr–   c                 ó0   — |d   j                  dd«       |S )r˜   r1   r™   Frl   r$   s     r   rš   zV4toV5.input_request„  s   € àˆI‰×!Ñ! *¨eÔ4Øˆ
r   N)r9   r:   r;   r<   r@   rK   r   Úitemsr=   r>   r   r&   rh   rn   rq   rw   r   rT   rU   r‹   r•   rš   )Ú.0ÚkrG   s   000r   rœ   rœ   ï   sÁ  „ Ù#à€Gð &,×%8Ñ%8×%>Ñ%>Ô%@ÕAÑ%@™T˜Q �A�q‘DÐ%@ÓA€Lð  c¨3 h¡ð °D¸¸c¸±Nó ð T¨#¨s¨(¡^ð ¸¸SÀ#¸X¹ó ð. 4¨¨S¨¡>ð °d¸3À¸8±nó ð  c¨3 h¡ð °D¸¸c¸±Nó ð" D¨¨c¨¡Nð °t¸CÀ¸H±~ó ð $ s¨C x¡.ð °T¸#¸s¸(±^ó ð$	 4¨¨S¨¡>ð 	°d¸3À¸8±nó 	ð  c¨3 h¡ð °D¸¸c¸±Nó ð0˜$˜s C˜x™.ð ¨T°#°s°(©^ó ð  S¨# X¡ð °4¸¸S¸±>ó ð  c¨3 h¡ð °D¸¸c¸±Nô ùô_ Bs   §D rœ   r    Ú
to_versionc                 óÈ   — ddl m} | d   }d|vr
 |«       |d<   d|v r!t        |d   j                  d«      d   «      }nd}t        j                  ||f«      }|€| S  || «      S )	aS  Adapt a single message to a target version

    Parameters
    ----------

    msg : dict
        A Jupyter message.
    to_version : int, optional
        The target major version.
        If unspecified, adapt to the current version.

    Returns
    -------

    msg : dict
        A Jupyter message appropriate in the new version.
    r   )Úutcnowr+   Údater@   rB   r   é   )ÚsessionrÃ   rE   rC   Úadaptersr6   )r    rÁ   rÃ   r+   Úfrom_versionÚadapters         r   ÚadaptrÊ   Š  sx   € õ$  à�‰]€FØ�VÑÙ›ˆˆv‰Ø�FÑÜ˜6 )Ñ,×2Ñ2°3Ó7¸Ñ:Ó;‰ð ˆÜ�l‰l˜L¨*Ð5Ó6€GØ€Øˆ
Ù�3‹<Ðr   ))é   rÅ   )rÅ   rË   )r<   r‘   ÚreÚtypingr   Ú_versionr   r>   rE   Útupler   ÚcompileÚUNICODEr   r   ÚIr   r   r   ÚlistrI   rK   rœ   r=   rÊ   rÇ   r#   r   r   Ú<module>rÔ      s,  ðÙ -ó Û 	Ý å +ð�sð ¨ð °°c¸3°h±ó ð" �—‘˜O¨R¯Z©ZÓ8€Øˆr�z‰z˜,¨¯
©
Ó3€Øˆb�j‰jÐ-¨r¯t©t°b·j±jÑ/@ÓA€ð˜3ð ¨Cð °Có ÷.,ñ ,ð^ #ð ¨$¨s©)ó ôvˆWô vôrXˆWô Xðv 2GÀqÑ1Iñ ˆt�C˜�H‰~ð ¨3ð ÈdÐSVÐX[ÐS[Énó ñH ‹HÙ‹Hñ�r   