ó
    Ñ]j÷w ã                   ó  • % S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSKrSSKJr  SSKrSSKrSSKrSSKrSSK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  SS	KJr  SS
K J!r"J#r$  SSK J%r%J&r&J'r'  SSKJ(r(  SSKJ)r)  SSK*r*SSK+J,r,  SSKJ-r-  SSK.J#r#J/r/J0r0J1r1J2r2J3r3J4r4J!r!J5r5J6r6J7r7J8r8J9r9  SSK:J;r;  SSK<J=r=  SSK>r?SSK@JArAJBrBJCrCJDrDJErE  SSKFJGrGJHrH  SSKIJJrJ  SSKKJLrL  SSKMJNrN  SSKOJPrP  SSKQJRrR  SSKSJTrT  SSKUJVrV  SSKWJXrXJYrY  SSKZJ[r[J\r\  SSK]J^r^  SSK_J`r`  SS KaJbrbJcrc  SS!KdJereJfrf  SS"KgJhrh  SS#KiJjrj  SS$KkJlrl  SS%KmJnrn  SS&KoJprp  SS'KqJrrr  SS(KsJtrt  SS)KuJvrv  SS*KwJxrx  SS+KyJzrz  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„  SS0K…J†r†J‡r‡Jˆrˆ  SS1K‰JŠrŠJ‹r‹JŒrŒ  SS2K�JŽrŽ  SS3K�J�r�  SS4K‘J’r’J“r“J”r”J•r•  SS5K–J—r—  \&\   \˜S6'    SSK™Jšr›  S7 rš " S8 S9\�5      ržSS:KJŸrŸ  \GR@                  \GRB                  \GRD                  4r£\GR@                  \GRB                  4r¤S;S<K¥J¦r¦J§r§J¨r¨J©r©Jªrª  \
GRV                  " S=5      r¬S>\­4S? jr®\€S@ 5       r¯\€SA 5       r° " SB SC\±5      r² " SD SE\65      r³ " SF SG\GRh                  5      rµSH\¶\­\#4   SI\·\µ   4SJ jr¸ " SK SL5      r¹ " SM SN5      rº\GRv                  " \5      SO 5       r¼ " SP SQ\;5      r½ " SR SS\GR|                  ST9r¿\¿GR�                  \½5        g! \œ a    Srš GN0f = f)UzMain IPython class.é    N)ÚCalledProcessError)Ústmt)Úcontextmanager)Úopen)Úerror)ÚPath)ÚCallable)ÚListÚAny)ÚLiteralÚOptionalÚTuple)ÚSequence)Úwarn)ÚPickleShareDB)ÚTemporaryDirectory)r   ÚBoolÚCaselessStrEnumÚDictÚEnumÚInstanceÚIntegerr
   ÚTypeÚUnicodeÚdefaultÚobserveÚvalidate)ÚSingletonConfigurable©Úimport_item)ÚmagicÚoinspectÚpageÚ	prefilterÚultratb)ÚAliasÚAliasManager©ÚExitAutocall)ÚBuiltinTrap)ÚCachingCompiler)ÚInterruptiblePdb)ÚDisplayTrap)ÚDisplayHook)ÚDisplayPublisher)ÚInputRejectedÚ
UsageError)ÚEventManagerÚavailable_events)ÚExtensionManager)ÚDisplayFormatter)ÚHistoryManagerÚHistoryOutput)Ú	ESC_MAGICÚ
ESC_MAGIC2)ÚLogger)ÚMacro)ÚPayloadManager)ÚPrefilterManager)Ú
ProfileDir)Úpick_tip)Údefault_banner)Údisplay)Úget_ipython_dir)Úskip_doctest)Ú
PyColorizeÚioÚopenpyÚ	py3compat)Úundoc)Ú
ask_yes_no)ÚStruct)Úensure_dir_existsÚget_home_dirÚget_py_filename)Úget_output_error_codeÚ	getoutputÚsystem)ÚStrDispatch)Úprepended_to_syspath)ÚDollarFormatterÚLSStringÚSListÚformat_screen)ÚOInfoÚ	sphinxifyc                 ó@   ^• [         R                  " U 5      mU4S jnU$ )Nc                 ó‚   >• [        5        n[        R                  " TU5      U S.sS S S 5        $ ! , (       d  f       g = f)N)z	text/htmlú
text/plain)r   ÚsphxrX   )Ú	docstringÚdirnameÚwrapped_docstrings     €ÚZ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/IPython/core/interactiveshell.pyÚsphinxify_docstringÚ&sphinxify.<locals>.sphinxify_docstringn   s.   ø€ Ü#Ô%¨ä!%§¢Ð0AÀ7Ó!KØ"+ñ÷ &×%×%ús   Œ0°
>)r\   Úwrap_main_docstring)Úoinfora   r_   s     @r`   rX   rX   k   s!   ø€ Ü ×4Ò4°UÓ;Ðõ	ð #Ð"ó    c                   ó   • \ rS rSrSrSrg)ÚProvisionalWarningéz   z%
Warning class for unstable features
© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__ri   re   r`   rg   rg   z   s   † ñò 	re   rg   )ÚModuleé   )Ú_asyncio_runnerÚ_curio_runnerÚ_pseudo_sync_runnerÚ_should_be_asyncÚ_trio_runnerz^\s+raise|^\s+return|^\s+passÚsc                 ó<   •  [        U 5        g! [         a     gf = f)zI
Variant of "str.isnumeric()" that allow negative values and other ints.
TF)ÚintÚ
ValueError)rx   s    r`   Úis_integer_stringr|   Ÿ   s#   € ðÜˆAŒØøÜó Ùðús   ‚ Ž
šc                 ó€   • Sn U R                   n Xl         U$ ! [         a     Nf = f! [        [        4 a     U$ f = f)z-Copied from code.py, to remove the dependencyr   )Ú	softspaceÚAttributeErrorÚ	TypeError)ÚfileÚnewvalueÚoldvalues      r`   r~   r~   «   sY   € ð €HðØ—>‘>ˆðØ!Œð €Oøô ó Ùðûô œIÐ&ó àØ€Oðús   „ ‘) ™
&¥&©=¼=c                  ó   • g ©Nri   )ÚaÚkws     r`   Úno_oprˆ   »   s   € àre   c                   ó   • \ rS rSrSrg)ÚSpaceInInputéÀ   ri   N)rk   rl   rm   rn   rp   ri   re   r`   rŠ   rŠ   À   s   † štre   rŠ   c                   ó,   ^ • \ rS rSrSrU 4S jrSrU =r$ )ÚSeparateUnicodeéÃ   z‰A Unicode subclass to validate separate_in, separate_out, etc.

This is a Unicode based trait that converts '0'->'' and ``'\\n'->'\n'``.
c                 ó^   >• US:X  a  SnUR                  SS5      n[        [        U ]  X5      $ )NÚ0Ú z\nÚ
)ÚreplaceÚsuperr�   r   )ÚselfÚobjÚvalueÚ	__class__s      €r`   r   ÚSeparateUnicode.validateÉ   s0   ø€ Ø�C‹< ˜Ø—‘˜e DÓ)ˆÜ”_ dÑ4°SÓ@Ð@re   ri   )rk   rl   rm   rn   ro   r   rp   Ú__classcell__©r˜   s   @r`   r�   r�   Ã   s   ø† ñ÷
Aó Are   r�   c                   ó,   ^ • \ rS rSrSU 4S jjrSrU =r$ )Ú_IPythonMainModuleBaseéÏ   c                 ó"   >• [         TU ]  SSS9  g )NÚ__main__zDAutomatically created module for the IPython interactive environment©Údoc)r”   Ú__init__)r•   r˜   s    €r`   r£   Ú_IPythonMainModuleBase.__init__Ð   s   ø€ Ü‰ÑØØVð 	ò 	
re   ri   ©ÚreturnN)rk   rl   rm   rn   r£   rp   rš   r›   s   @r`   r�   r�   Ï   s   ø† ÷
õ 
re   r�   Úuser_nsr¦   c                 ó>   ^ • [          " U 4S jS[        5      5       nU$ )Nc                   óŽ   >• \ rS rSrSr\S\\\4   4U 4S jj5       r	S\S\SS4U 4S jjr
S\S\4U 4S	 jjrS\SS4U 4S
 jjrSrg)Ú0make_main_module_type.<locals>.IPythonMainModuleéØ   aŸ  
ModuleType that supports passing in a custom user namespace dictionary,
to be used for the module's __dict__. This is enabled by shadowing the
underlying __dict__ attribute of the module, and overriding getters and
setters to point to the custom user namespace dictionary.
The reason to do this is to allow the __main__ module to be an instance
of ModuleType, while still allowing the user namespace to be custom.
r¦   c                 ó   >• T$ r…   ri   )r•   r§   s    €r`   Ú__dict__Ú9make_main_module_type.<locals>.IPythonMainModule.__dict__ã   s   ø€ àˆNre   Úitemr—   Nc                 ó   >• US:X  a  g UTU'   g )Nr­   ri   )r•   r¯   r—   r§   s      €r`   Ú__setattr__Ú<make_main_module_type.<locals>.IPythonMainModule.__setattr__ç   s   ø€ Ø�zÓ!àØ!ˆG�DŠMre   c                 ób   >•  TU   $ ! [          a    [        SU R                   SU 35      ef = f©Nzmodule z has no attribute ©ÚKeyErrorr   rk   ©r•   r¯   r§   s     €r`   Ú__getattr__Ú<make_main_module_type.<locals>.IPythonMainModule.__getattr__í   sB   ø€ ðXØ˜t‘}Ð$øÜó XÜ$ w¨t¯}©}¨oÐ=OÐPTÈvÐ%VÓWÐWðXús   ƒ ˆ&.c                 ó`   >•  TU	 g ! [          a    [        SU R                   SU 35      ef = fr´   rµ   r·   s     €r`   Ú__delattr__Ú<make_main_module_type.<locals>.IPythonMainModule.__delattr__ó   s?   ø€ ðXØ˜D‘MøÜó XÜ$ w¨t¯}©}¨oÐ=OÐPTÈvÐ%VÓWÐWðXús   ƒ ‡&-ri   )rk   rl   rm   rn   ro   ÚpropertyÚdictÚstrr   r­   r±   r¸   r»   rp   )r§   s   €r`   ÚIPythonMainModulerª   Ø   sw   ø† ñ	ð 
ð	˜d 3¨ 8™nö 	ó 
ð	ð	" Cð 	"°ð 	"¸÷ 	"ð	X Cð 	X¨C÷ 	Xð	X Cð 	X¨D÷ 	Xò 	Xre   rÀ   )rH   r�   )r§   rÀ   s   ` r`   Úmake_main_module_typerÁ   ×   s)   ø€ Ü
÷XÔ2ó Xó ðXð@ Ðre   c                   óB   • \ rS rSrSrSrSrSrSrSr	Sr
 S	S jrS rSrg)
ÚExecutionInfoéü   zvThe arguments used for a call to :meth:`InteractiveShell.run_cell`

Stores information about what is going to happen.
NFTc                 óL   • Xl         X`l        X l        X0l        X@l        XPl        g r…   )Úraw_cellÚtransformed_cellÚstore_historyÚsilentÚshell_futuresÚcell_id)r•   rÆ   rÈ   rÉ   rÊ   rË   rÇ   s          r`   r£   ÚExecutionInfo.__init__  s%   € ð !ŒØ 0ÔØ*ÔØŒØ*ÔØ�re   c           	      ó¨  • U R                   R                  n[        U R                  5      S:”  a  U R                  S S S-   OU R                  nU R                  (       a+  [        U R                  5      S:”  a  U R                  S S S-   OU R                  nSU[        U 5      UUU R                  U R                  U R                  U R                  4-  $ )Né2   z..zm<%s object at %x, raw_cell="%s" transformed_cell="%s" store_history=%s silent=%s shell_futures=%s cell_id=%s>)
r˜   rm   ÚlenrÆ   rÇ   ÚidrÈ   rÉ   rÊ   rË   )r•   ÚnamerÆ   rÇ   s       r`   Ú__repr__ÚExecutionInfo.__repr__  sÆ   € Ø�~‰~×*Ñ*ˆä+.¨t¯}©}Ó+=ÀÓ+BˆT�]‰]˜3˜BÐ $Ò&ÈÏÉð 	ð
 ×$×$¬¨T×-BÑ-BÓ)CÀbÓ)Hð ×"Ñ" 3 BÐ'¨$Ò.à×&Ñ&ð 	ð |àÜ�4“ØØ Ø×"Ñ"Ø—‘Ø×"Ñ"Ø—‘ð	ñ
ð	
re   )rË   rÆ   rÊ   rÉ   rÈ   rÇ   r…   )rk   rl   rm   rn   ro   rÆ   rÇ   rÈ   rÉ   rÊ   rË   r£   rÒ   rp   ri   re   r`   rÃ   rÃ   ü   s7   † ñð €HØÐØ€MØ€FØ€MØ€Gð ôõ 
re   rÃ   c                   ó€   • \ rS rSr% SrSr\\   \S'   Sr	\\
   \S'   Sr\\
   \S'   SrSrS r\S 5       rS	 rS
 rSrg)ÚExecutionResulti1  zeThe result of a call to :meth:`InteractiveShell.run_cell`

Stores information about what took place.
NÚexecution_countÚerror_before_execÚerror_in_execc                 ó   • Xl         g r…   ©Úinfo)r•   rÛ   s     r`   r£   ÚExecutionResult.__init__=  s   € Ø�	re   c                 óH   • U R                   S L =(       a    U R                  S L $ r…   ©r×   rØ   ©r•   s    r`   ÚsuccessÚExecutionResult.success@  s#   € à×&Ñ&¨$Ð.×P°T×5GÑ5GÈ4Ð5OÐPre   c                 óh   • U R                   b  U R                   eU R                  b  U R                  eg)z>Reraises error if `success` is `False`, otherwise does nothingNrÞ   rß   s    r`   Úraise_errorÚExecutionResult.raise_errorD  s7   € à×!Ñ!Ñ-Ø×(Ñ(Ð(Ø×ÑÑ)Ø×$Ñ$Ð$ð *re   c           
      óà   • U R                   R                  nSU[        U 5      U R                  U R                  U R
                  [        U R                  5      [        U R                  5      4-  $ )Nz]<%s object at %x, execution_count=%s error_before_exec=%s error_in_exec=%s info=%s result=%s>)	r˜   rm   rÐ   rÖ   r×   rØ   ÚreprrÛ   Úresult©r•   rÑ   s     r`   rÒ   ÚExecutionResult.__repr__K  sq   € Ø�~‰~×*Ñ*ˆØnØ”r˜$“x ×!5Ñ!5°t×7MÑ7MÈt×OaÑOaÔcgÐhl×hqÑhqÓcrÔtxÐy}÷  zEñ  zEó  uFð  GñGð 	Gre   rÚ   )rk   rl   rm   rn   ro   rÖ   r   rz   Ú__annotations__r×   ÚBaseExceptionrØ   rÛ   rç   r£   r½   rà   rã   rÒ   rp   ri   re   r`   rÕ   rÕ   1  sf   ‡ ñð
 &*€O�X˜c‘]Ó)Ø15Ð�x Ñ.Ó5Ø-1€M�8˜MÑ*Ó1Ø€DØ€Fòð ñQó ðQò%õGre   rÕ   c                 óJ   • U S;   a  [        SU  S35      e[        U /UQ70 UD6$ )N>   r   rr   é   zIPython won't let you open fd=zi by default as it is likely to crash IPython. If you know what you are doing, you can use builtins' open.)r{   Úio_open)r�   ÚargsÚkwargss      r`   Ú_modified_openrñ   Q  s?   € àˆyÓÜØ,¨T¨Fð 3*ð *ó
ð 	
ô �4Ð)˜$Ò) &Ñ)Ð)re   c                   ó
  ^ • \ rS rSr% SrSr\\S'   \\	   \S'   \
R                  \S'   \" / SS9R                  S	S
9r\\R                      \S'   \" SSSS9R                  S	S
9r\" S	SS9R                  S	S
9r\" S	SS9R                  S	S
9r\S	4\S	4\S	4\S4S.r\" SS	SS9R                  S	S
9r\" S5      S 5       r\" S5      S 5       r \" S	SS9R                  S	S
9r!\" S	SS9R                  S	S
9r"\#" \$SS9R                  S	S
9r%\#" SSS9R                  S	S
9r&\'" SS S9R                  S	S
9r(\" S5      R                  S	S
9r)\*" \+S	S!9r,\-" \.5      r/\-" \05      r1\-" \25      r3\-" \
R                  S"S9R                  S	S
9r4\" SS#S9R                  S	S
9r5\6" S$5      S% 5       r7\" SS&S9R                  S	S
9r8\6" S'5      S( 5       r9Sr:\" S5      r;\*" \<5      r=\" S)5      S* 5       r>\'" S+5      r?\#" S,5      r@\#" S5      R                  S	S
9rA\*" S-S.5      rB\CS/ 5       rD\" / S0S9rE\\S1'   \" SS2S9R                  S	S
9rF\#" SS3S9R                  S	S
9rG\#" SS4S9R                  S	S
9rH\" SSS59R                  S	S
9rI\" SS6S9R                  S	S
9rJ\" SS7S9R                  S	S
9rK\" S	S8S9R                  S	S
9rL\" S5      R                  S	S
9rM\" SS9S9R                  S	S
9rN\'" S:S;S9R                  S	S
9rO\'" SS<S9R                  S	S
9rP\" / S=QS>S?S9R                  S	S
9rQ\" S	S@S9R                  S	S
9rR\S" SA5      R                  S	S
9rT\S" S5      R                  S	S
9rU\S" S5      R                  S	S
9rV\" S	5      R                  S	S
9rW\X" SBSCSDS9R                  S	S
9rY\*" SES	S!9rZ\*" SFS	S!9r[\*" SG5      r\\*" SH5      r]\*" SIS	S!9r^\*" SJS	S!9r_\*" SKS	S!9r`\*" SL5      ra\*" SMS	S!9rb\CSN 5       rc\d" 5       reSrf\" S	SOS9rg\*" SPSQS	SR9rh   SõU 4SS jjri\CST 5       rj\jRÖ                  SU\4SV j5       rjSW rl\6" SX5      SY 5       rmSöSZ jrnS[ roS\ rpS] rqS^ rrS_ rsS` rt\#" SaSbS9R                  S	S
9ru\" Sc5      Sd 5       rv\6" Sc5      SöSe j5       rwSf rxSg ryS÷Si jrzS÷Sj jr{Sk r|Sl r}Sm r~Sn rSo r€Sp r�Sq r‚\ƒSr\„4Ss j5       r…St r†Su r‡Sv rˆ\CSw 5       r‰SöSx jrŠSy r‹SøSz jrŒS{ r�S| rŽS} r�S~ r�S r‘S€ r’S� r“\C" \’\“SS‚5      r”SùSƒ jr•S	r–SúS„ jr—\CS… 5       r˜SúS† jr™S‡ ršSˆ r›\CS‰ 5       rœSûSŠ jr�SùS‹ jržSöSŒ jrŸSüS� jr SŽ r¡\ƒS�\	Sh\¢\£\¤\	   4   4S� j5       r¥ SöS�\	S‘\¦\§\¢\	\¨4         Sh\©4S’ jjrª\ƒS“ 5       r«SöSh\©4S” jjr¬SöS�\	4S• jjr­SýS– jr®SýS— jr¯SþS˜ jr°S™ r±\²r³S÷Sš jr´S› rµSœ r¶SöS� jr·Sž r¸SöSŸ jr¹     SÿS \º\»\¼   \¼\¨4   S-  S¡\	S-  S¢\½S-  S£\£S¤\£ShS4S¥ jjr¾S¦\¿\	   4S§ jrÀGS S¨ jrÁS© rÂ\ÃSùSª j5       rÄS« rÅ\ÃSúS¬ j5       rÆSýS÷S­ jjrÇSöS® jrÈS¯ rÉ\ÊGR–                  " \ÌGRš                  GRœ                  5      GSS± j5       rÏS²\	4S³ jrÐGSS²\	S°\	4S´ jjrÑSµ rÒS¶ rÓS· rÔS¸ rÕGSS¹ jrÖSº r×S» rØS¼ rÙ\ØrÚGSS½ jrÛS¾ rÜS¿ rÝSÀ rÞSÁ rßSÂ ràSÃ ráSÄ râSÅ rãSÆ räSÇ råSSSSÈ.SÉ jræGSSÊ jrçSË rè\éSÌ\êSÍ   4SÎ j5       rë    GSSÏ jrìSÐ\	SÑ\£SÒ\£SÓ\£SÔ\	Sh\í4SÕ jrîSSSÖ.SÐ\	Sh\£4S× jjrï   GSSSSSØ.SÐ\	SÙ\¦\	   SÚ\¦\¨   Sh\í4SÛ jjjrð GS SÜ jrñSÝ ròSÞ róS>\ôS4Sß\¤\õ   Sà\	4Sá jjröSöSSâ.Sã jjr÷\÷røSä\	Sh\¢\	\	4   4Så jrùSrú\¦\	   \Sæ'   SöSç jrûSöSè jrüGSSé jrýS\þ" 5       4Sê jrÿGS	Së jGr SúSì jGrSí GrSùSî jGrGS
Sï jGrSð GrSñ GrSò GrSó GrSôGr	U =Gr
$ (  ÚInteractiveShelli]  z*An enhanced, interactive shell for Python.NÚ_user_nsÚ_sys_modules_keysÚ	inspectorzƒ
        A list of ast.NodeTransformer subclass instances, which will be applied
        to user input before code is run.
        )ÚhelpT)ÚconfigÚast_transformers)r   rr   rí   r   aÒ  
        Make IPython automatically call any callable object even if you didn't
        type explicit parentheses. For example, 'str 43' becomes 'str(43)'
        automatically. The value can be '0' to disable the feature, '1' for
        'smart' autocall, where it is not applied if there are no more
        arguments on the line, and '2' for 'full' autocall, where all callable
        objects are automatically called (even if no arguments are present).
        )Údefault_valuer÷   z@
        Autoindent IPython code entered interactively.
        zJ
        Automatically run await statement in the top level repl.
        F)ÚasyncioÚcurioÚtrioÚsyncú-IPython.core.interactiveshell._asyncio_runnerzOSelect the loop runner that will be used to execute top-level asynchronous code)rú   Ú
allow_noner÷   Úloop_runnerc                 ó   • [        S5      $ )Nrÿ   r   rß   s    r`   Ú_default_loop_runnerÚ%InteractiveShell._default_loop_runner‘  s   € äÐJÓKÐKre   c                 ó€  • [        UR                  [        5      (       ao  UR                  U R                  ;   a#  U R                  UR                     u  p#X0l        U$ [        UR                  5      n[        U5      (       d  [        S5      eU$ [        UR                  5      (       d  [        S5      eUR                  $ )Nzloop_runner must be callable)Ú
isinstancer—   r¿   Úloop_runner_mapÚ	autoawaitr    Úcallabler{   )r•   ÚproposalÚrunnerr  s       r`   Ú_import_runnerÚInteractiveShell._import_runner•  s•   € ä�h—n‘n¤c×*Ñ*Ø�~‰~ ×!5Ñ!5Ó5Ø$(×$8Ñ$8¸¿¹Ñ$HÑ!�Ø!*”Ø�Ü  §¡Ó0ˆFÜ˜F×#Ñ#Ü Ð!?Ó@Ð@ØˆMÜ˜Ÿ™×'Ñ'ÜÐ;Ó<Ð<Ø�~‰~Ðre   zK
        Enable magic commands to be called without the leading %.
        z/
        Set to show a tip when IPython starts.z7The part of the banner to be printed before the profiler‘   z6The part of the banner to be printed after the profileiè  a¼  
        Set the size of the output cache.  The default is 1000, you can
        change it permanently in your config file.  Setting it to 0 completely
        disables the caching system, and the minimum value accepted is 3 (if
        you provide a value less than 3, it is reset to 0 and a warning is
        issued).  This limit is defined because otherwise you'll spend more
        time re-flushing a too small cache than working
        )r   z/Class to use to instantiate the shell inspectorzm
        Enables rich html representation of docstrings. (This requires the
        docrepr module).
        ra   c                 ó:   • US   (       a  [        S[        5        g g )NÚnewz[`sphinxify_docstring` is provisional since IPython 5.0 and might change in future versions.©r   rg   ©r•   Úchanges     r`   Ú_sphinxify_docstring_changedÚ-InteractiveShell._sphinxify_docstring_changedÑ  s!   € à�%�=ÜÐnô  rDõ  Eð re   zg
        (Provisional API) enables html representation in mime bundles sent
        to pagers.
        Úenable_html_pagerc                 ó:   • US   (       a  [        S[        5        g g )Nr  zY`enable_html_pager` is provisional since IPython 5.0 and might change in future versions.r  r  s     r`   Ú_enable_html_pager_changedÚ+InteractiveShell._enable_html_pager_changedÜ  s!   € à�%�=ÜÐlô  oAõ  Bð re   Úexiterc                 ó   • [        U 5      $ r…   r(   rß   s    r`   Ú_exiter_defaultÚ InteractiveShell._exiter_defaultå  s   € ä˜DÓ!Ð!re   rr   z<ipython console>z1IPython.core.inputtransformer2.TransformerManagerri   c                 ó.   • U R                   R                  $ r…   )Úinput_transformer_managerÚcleanup_transformsrß   s    r`   Úinput_transformers_cleanupÚ+InteractiveShell.input_transformers_cleanupñ  s   € à×-Ñ-×@Ñ@Ð@re   z]A list of string input transformers, to be applied after IPython's own input transformations.Úinput_transformers_postz�
        Start logging to the default log file in overwrite mode.
        Use `logappend` to specify a log file to **append** logs to.
        z1
        The name of the logfile to use.
        z‡
        Start logging to the given file in append mode.
        Use `logfile` to specify a log file to **overwrite** logs to.
        )rú   zL
        Automatically call the pdb debugger after every exception.
        zhIf True, anything that would be passed to the pager
        will be displayed as regular output instead.z(Show rewritten input, e.g. for autocall.zõ
        Raise an exception on non-zero exit status from shell commands executed
        via the `!` operator. When set to True, shell commands that fail will raise
        CalledProcessError, similar to the behavior of %%script magics.
        i'  zTotal length of command historyzn
        The number of saved history entries to be loaded
        into the history buffer at startup.
        )ÚallÚlastÚ	last_exprÚnoneÚlast_expr_or_assignr%  z®
        'all', 'last', 'last_expr' or 'none', 'last_expr_or_assign' specifying
        which nodes should be run interactively (displaying output from expressions).
        ztWarn if running in a virtual environment with no IPython installed (so IPython from the global environment is used).r’   )ÚContextÚPlainÚVerboseÚMinimalÚDocsr(  z0Switch modes for the IPython exception handlers.zIPython.core.alias.AliasManagerz'IPython.core.prefilter.PrefilterManagerz%IPython.core.builtin_trap.BuiltinTrapz%IPython.core.display_trap.DisplayTrapz(IPython.core.extensions.ExtensionManagerz#IPython.core.payload.PayloadManagerz(IPython.core.history.HistoryAccessorBasez IPython.core.magic.MagicsManagerz#IPython.core.application.ProfileDirc                 ó¨   • U R                   bE  [        R                  R                  U R                   R                  5      nUR                  SS5      $ g )NÚprofile_r‘   )Úprofile_dirÚosÚpathÚbasenameÚlocationr“   rè   s     r`   ÚprofileÚInteractiveShell.profile\  sD   € à×ÑÑ'Ü—7‘7×#Ñ# D×$4Ñ$4×$=Ñ$=Ó>ˆDØ—<‘< 
¨2Ó.Ð.ð (re   z#Did last executed command succeededz-IPython.core.interactiveshell.ExecutionResultz$Result of executing the last command)r÷   r   c                 ót  >• [         [        U ]
  " S0 UD6  U /U l        U R	                  U5        U R                  U5        U R                  5         U R                  5         U R                  5         U R                  X45        U R                  5         U R                  5         [        [        R                  R                  U R                   R"                  S5      5      U l        U R'                  5         U R)                  5         U R+                  5         U R-                  5         U R/                  5         U R1                  5         U R3                  5         U R5                  5         U R7                  5         U R9                  5         [:        U l        U R?                  5         U RA                  5         U RC                  U5        U RE                  5         U RG                  5         U RI                  5         U RK                  5         U RM                  5         U RO                  5         U RQ                  5         U RS                  5         U RU                  5         U RW                  5         U RY                  5         U RZ                  R]                  SU 5        [^        R`                  " U Rb                  5        S U l2        SU l3        g )NÚdbÚshell_initializedFri   )4r”   ró   r£   ÚconfigurablesÚinit_ipython_dirÚinit_profile_dirÚinit_instance_attrsÚinit_environmentÚinit_virtualenvÚinit_create_namespacesÚsave_sys_module_stateÚinit_sys_modulesr   r0  r1  Újoinr/  r3  r7  Úinit_historyÚinit_encodingÚinit_prefilterÚinit_syntax_highlightingÚ
init_hooksÚinit_eventsÚinit_pushd_popd_magicÚinit_user_nsÚinit_loggerÚinit_builtinsÚinputÚraw_input_originalÚinit_completerÚinit_ioÚinit_traceback_handlersÚinit_promptsÚinit_display_formatterÚinit_display_pubÚinit_data_pubÚinit_displayhookÚinit_magicsÚ
init_aliasÚinit_logstartÚinit_pdbÚinit_extension_managerÚinit_payloadÚeventsÚtriggerÚatexitÚregisterÚatexit_operationsÚtrio_runnerÚshowing_traceback)r•   Úipython_dirr/  Úuser_moduler§   Úcustom_exceptionsrð   r˜   s          €r`   r£   ÚInteractiveShell.__init__m  s  ø€ ô
 	Ô Ò.Ñ8°Ò8Ø"˜VˆÔð 	×Ñ˜kÔ*Ø×Ñ˜kÔ*Ø× Ñ Ô"Ø×ÑÔð 	×ÑÔð 	×#Ñ# KÔ9ð 	×"Ñ"Ô$Ø×ÑÔô
  ¤§¡§¡¨T×-=Ñ-=×-FÑ-FÈÓ MÓNˆŒà×ÑÔØ×ÑÔØ×ÑÔà×%Ñ%Ô'Ø�‰ÔØ×ÑÔØ×"Ñ"Ô$Ø×ÑÔØ×ÑÔØ×ÑÔô #(ˆÔØ×ÑÔð 	�‰ŒØ×$Ñ$Ð%6Ô7Ø×ÑÔØ×#Ñ#Ô%Ø×ÑÔØ×ÑÔØ×ÑÔØ×ÑÔØ�‰ÔØ×ÑÔØ�‰ŒØ×#Ñ#Ô%Ø×ÑÔØ�‰×ÑÐ/°Ô6Ü�Š˜×.Ñ.Ô/ð  ˆÔØ!&ˆÕre   c                 ó   • U R                   $ r…   )rô   rß   s    r`   r§   ÚInteractiveShell.user_ns¸  s   € à�}‰}Ðre   Únsc                 ód   • [        US5      (       d   e[        U[        5      (       d   eXl        g )NÚclear)Úhasattrr  r¾   rô   ©r•   rj  s     r`   r§   ri  ¼  s-   € ä�r˜7×#Ñ#Ð#Ð#Ü˜"œd×#Ñ#Ð#Ð#Ø�re   c                 ó   • U $ )z.Return the currently running IPython instance.ri   rß   s    r`   Úget_ipythonÚInteractiveShell.get_ipythonÂ  s   € àˆre   rd  c                 ó    • [        US   5        g )Nr  )rK   r  s     r`   Ú_ipython_dir_changedÚ%InteractiveShell._ipython_dir_changedÉ  s   € ä˜& ™-Õ(re   c                 óD   • Uc  U R                   (       + U l         gXl         g)zKSet the autoindent flag.

If called with no arguments, it acts as a toggle.N)Ú
autoindent)r•   r—   s     r`   Úset_autoindentÚInteractiveShell.set_autoindentÍ  s   € ð ‰=Ø"&§/¡/Ô1ˆD�Oà#�Ore   c                 ó   • Xl         g r…   )rb  )r•   Útrs     r`   Úset_trio_runnerÚ InteractiveShell.set_trio_runnerÖ  s   € ØÕre   c                 ó6   • Ub  Xl         g [        5       U l         g r…   )rd  rB   )r•   rd  s     r`   r:  Ú!InteractiveShell.init_ipython_dirÝ  s   € ØÑ"Ø*ÔØä*Ó,ˆÕre   c                 ód   • Ub  Xl         g [        R                  " U R                  S5      U l         g )Nr   )r/  r>   Úcreate_profile_dir_by_namerd  )r•   r/  s     r`   r;  Ú!InteractiveShell.init_profile_dirä  s/   € ØÑ"Ø*ÔØÜ%×@Ò@Ø×Ñ˜ió
ˆÕre   c                 óÆ   • SU l         U R                  5       U l        [        5       U l        / U l        / U l        [        R                  " 5       U l	        SU l
        0 U l        g )NFr   )ÚmoreÚcompiler_classÚcompilerJ   ÚmetaÚ	tempfilesÚtempdirsr0  ÚgetcwdÚstarting_dirÚindent_current_nspÚ_post_executerß   s    r`   r<  Ú$InteractiveShell.init_instance_attrsì  sZ   € ØˆŒ	ð ×*Ñ*Ó,ˆŒô “HˆŒ	ð ˆŒØˆŒô ŸIšI›KˆÔð #$ˆÔð  ˆÕre   c                 ó   • g)z6Any changes we need to make to the user's environment.Nri   rß   s    r`   r=  Ú!InteractiveShell.init_environment  ó   € àre   c                 ó„   •  [         R                  R                  =(       d    SU l        g ! [         a
    SU l         g f = f)NÚascii)ÚsysÚstdinÚencodingÚstdin_encodingr   rß   s    r`   rD  ÚInteractiveShell.init_encoding  s5   € ð	*Ü"%§)¡)×"4Ñ"4×"?¸ˆDÕøÜó 	*Ø")ˆDÖð	*ús   ‚(+ «?¾?Úneutralz8Set the color scheme (nocolor, neutral, linux, lightbg).Úcolorsc                 ó”   • US   nX"R                  5       :X  d!  [        SUR                  5        S3[        SS9  UR                  5       $ )Nr—   z5`TerminalInteractiveShell.colors` is now lowercase: `z/`, non lowercase, may be invalid in the future.rí   ©Ú
stacklevel)Úlowerr   ÚDeprecationWarning)r•   r
  r  s      r`   Ú_check_colorsÚInteractiveShell._check_colors  sN   € à�wÑˆØ—i‘i“kÓ!ÜØGÈÏ	É	ËÀ}ð U@ð @ä"Øò	ð �y‰y‹{Ðre   c                 ó¨  ^• [         R                  " U R                  S9R                  mU4S jU l        [        U S5      (       d*  U R                  U R                  U R                  U S9U l         U R                  R                  U R                  R                  5       5        [        U S	5      (       a%  U R                  R                  U R                  5        [        U S
5      (       a%  U R                   R                  U R                  5        U R#                  5         g ! [         a&    [        S[        R                  " 5       S   -  SS9   N¬f = f)N©Ú
theme_namec                 ó   >• T" U S5      $ )Nr¿   ri   )ÚsrcÚpyformats    €r`   Ú<lambda>Ú;InteractiveShell.init_syntax_highlighting.<locals>.<lambda>)  s   ø€ ¡h¨s°EÔ&:re   rö   )r£  Ústr_detail_levelÚparentz1Error changing object inspector color schemes.
%srr   rí   r›  ÚInteractiveTBÚSyntaxTB)rD   ÚParserr™  ÚformatÚ
pycolorizerm  Úinspector_classÚobject_info_string_levelrö   Úset_theme_namer�  Ú	Exceptionr   r“  Úexc_infor«  r¬  Úrefresh_style)r•   Úchangesr¦  s     @r`   rF  Ú)InteractiveShell.init_syntax_highlighting%  s	  ø€ ô ×$Ò$°·±Ñ<×CÑCˆÜ:ˆŒÜ�t˜[×)Ñ)Ø!×1Ñ1ØŸ;™;Ø!%×!>Ñ!>Øð 2ð ˆDŒNð	à�N‰N×)Ñ)¨$¯+©+×*;Ñ*;Ó*=Ô>ô �4˜×)Ñ)Ø×Ñ×-Ñ-¨d¯k©kÔ:Ü�4˜×$Ñ$Ø�M‰M×(Ñ(¨¯©Ô5Ø×ÑÕøô ó 	ÜØDÜ—<’<“> !Ñ$ñ&àôð	ús   Á13D! Ä!-EÅEc                 ó   • g r…   ri   rß   s    r`   rµ  ÚInteractiveShell.refresh_style@  r�  re   c                 ó0   • [        5       U l        / U l        g r…   )rL   Úhome_dirÚ	dir_stackrß   s    r`   rI  Ú&InteractiveShell.init_pushd_popd_magicD  s   € ä$›ˆŒàˆ�re   r¦   c                 ó8   • [        U R                  SSS9U l        g )Nzipython_log.pyÚrotate)ÚlogfnameÚlogmode)r:   r»  Úloggerrß   s    r`   rK  ÚInteractiveShell.init_loggerJ  s   € Ü˜TŸ]™]Ð5EØ%-ñ/ˆ�re   c                 ó
  • U R                   (       a   U R                  SU R                    S35        gU R                  (       a  U R                  SU R                  5        gU R                  (       a  U R                  SS5        gg)zIInitialize logging in case it was requested at the command line.
        Úlogstartz appendr‘   N)Ú	logappendÚrun_line_magicÚlogfilerÅ  rß   s    r`   rY  ÚInteractiveShell.init_logstartN  s^   € ð �>�>Ø×Ñ 
¨t¯~©~Ð.>¸gÐ,FÕGØ�\�\Ø×Ñ 
¨D¯L©LÕ9Ø�]�]Ø×Ñ 
¨BÕ/ð re   c                 ót   • S[         R                  S'   [        [         R                  S'   [        U S9U l        g )NTÚ__IPYTHON__rA   )Úshell)Úbuiltin_modr­   rA   r*   Úbuiltin_traprß   s    r`   rL  ÚInteractiveShell.init_builtinsX  s1   € ð
 /3Œ×Ñ˜]Ñ+Ü*1Œ×Ñ˜YÑ'ä'¨dÑ3ˆÕre   c                 ó   • g r…   ri   rß   s    r`   rP  ÚInteractiveShell.init_ioc  s   € ð 	re   c                 óF   • S[         l        S[         l        S[         l        g )NzIn : z...: zOut: )r“  Úps1Úps2Úps3rß   s    r`   rR  ÚInteractiveShell.init_promptsh  s   € ð ŒŒØŒŒØŒ�re   c                 ój   • [        U S9U l        U R                  R                  U R                  5        g ©N)rª  )r5   Údisplay_formatterr9  Úappendrß   s    r`   rS  Ú'InteractiveShell.init_display_formattero  s)   € Ü!1¸Ñ!>ˆÔØ×Ñ×!Ñ! $×"8Ñ"8Õ9re   c                 óv   • U R                  X S9U l        U R                  R                  U R                  5        g )N)rª  rÌ  )Údisplay_pub_classÚdisplay_pubr9  rÚ  rß   s    r`   rT  Ú!InteractiveShell.init_display_pubs  s2   € Ø×1Ñ1¸Ð1ÐJˆÔØ×Ñ×!Ñ! $×"2Ñ"2Õ3re   c                 ó¨   • U R                   (       d  S U l        g U R                  U S9U l        U R                  R                  U R                  5        g rØ  )Údata_pub_classÚdata_pubr9  rÚ  rß   s    r`   rU  ÚInteractiveShell.init_data_pubw  sB   € Ø×"×"Ø ˆDŒMØØ×+Ñ+°4Ð+Ð8ˆŒØ×Ñ×!Ñ! $§-¡-Õ0re   c                 ó¾   • U R                  U U U R                  S9U l        U R                  R	                  U R                  5        [        U R                  S9U l        g )N)rª  rÌ  Ú
cache_size)Úhook)Údisplayhook_classrå  Údisplayhookr9  rÚ  r-   Údisplay_traprß   s    r`   rV  Ú!InteractiveShell.init_displayhook~  sX   € à×1Ñ1ØØØ—‘ð 2ð 
ˆÔð
 	×Ñ×!Ñ! $×"2Ñ"2Ô3ô (¨T×-=Ñ-=Ñ>ˆÕre   Úpc                 ó  • U /nU R                  5       (       am  [        [        R                  " U 5      5      nUR	                  5       (       d  U R
                  U-  nUn UR                  U 5        U R                  5       (       a  Mm  U$ )a?  Gets path links including all symlinks

Examples
--------
In [1]: from IPython.core.interactiveshell import InteractiveShell

In [2]: import sys, pathlib

In [3]: paths = InteractiveShell.get_path_links(pathlib.Path(sys.executable))

In [4]: len(paths) == len(set(paths))
Out[4]: True

In [5]: bool(paths)
Out[5]: True
)Ú
is_symlinkr   r0  ÚreadlinkÚis_absoluterª  rÚ  )rë  ÚpathsÚnew_paths      r`   Úget_path_linksÚInteractiveShell.get_path_linksŠ  si   € ð$ �ˆØ�l‰l�n‰nÜœBŸKšK¨›NÓ+ˆHØ×'Ñ'×)Ñ)ØŸ8™8 hÑ.�ØˆAØ�L‰L˜ŒOð �l‰l�n‹nð ˆre   c                 ó´  ^
• S[         R                  ;  a  g[         R                  S   S:X  a  [        S5        g[        [        R
                  5      n[        [         R                  S   5      R                  5       m
U R                  U5      n[        T
R                  5      S:”  a=  T
R                  S   S:X  a*  T
R                  S   nUS-   [        T
R                  S	S 6 -  m
[        U
4S
 jU 5       5      (       a  g[        R                  S:X  a(  [        [        [         R                  S   SS5      5      nOÍ[        [         R                  S   SSS5      n[        R                  SS n[        R                  " S[         R                  S   5      nU(       aT  [        [        U5      R                   " UR#                  5       6 5      nUR%                  5       (       a  UR#                  5       n[        U5      R                   " U6 nU R&                  (       a  [        S5        SSKn	[        R*                  R-                  SU5        U	R/                  U5        g)aº  Add the current virtualenv to sys.path so the user can import modules from it.
This isn't perfect: it doesn't use the Python interpreter with which the
virtualenv was built, and it ignores the --no-site-packages option. A
warning will appear suggesting the user installs IPython in the
virtualenv, but for many cases, it probably works well enough.

Adapted from code snippets online.

http://blog.ufsoft.org/2009/1/29/ipython-and-virtualenv
ÚVIRTUAL_ENVNr‘   z=Virtual env path set to '', please check if this is intended.rí   rr   Úcygdrivez:/é   c              3   ód   >#   • U  H%  nTUR                   S    R                  5       :H  v •  M'     g7f)rr   N)ÚparentsÚresolve)Ú.0rë  Úp_venvs     €r`   Ú	<genexpr>Ú3InteractiveShell.init_virtualenv.<locals>.<genexpr>Å  s'   øé € Ð?º°Aˆv˜Ÿ™ 1™×-Ñ-Ó/Ö/ºùs   ƒ-0Úwin32ÚLibzsite-packagesÚlibzpython{}.{}z\bpy(?:thon)?([23])\.(\d+)\bzlAttempting to work in a virtualenv. If you encounter problems, please install IPython inside the virtualenv.r   )r0  Úenvironr   r   r“  Ú
executablerú  rò  rÏ   ÚpartsÚanyÚplatformr¿   Úversion_infoÚreÚsearchr®  ÚgroupsÚexistsÚ	warn_venvÚsiter1  ÚinsertÚ
addsitedir)r•   rë  rð  Ú
drive_nameÚvirtual_envÚvirtual_env_pathÚp_verÚre_mÚpredicted_pathr  rü  s             @r`   r>  Ú InteractiveShell.init_virtualenv¥  sÐ  ø€ ð ¤§
¡
Ó*àÜ�Z‰Z˜Ñ&¨"Ó,ÜÐPÔQØä”—‘Ó ˆÜ”b—j‘j Ñ/Ó0×8Ñ8Ó:ˆð ×#Ñ# AÓ&ˆô ˆv�|‰|Ó˜qÓ  V§\¡\°!¡_¸
Ó%BØŸ™ a™ˆJØ  4Ñ'¬4°·±¸a¸bÐ1AÐ+BÑBˆFäÔ?¹Ó?×?Ñ?àä�<‰<˜7Ó"Üœd¤2§:¡:¨mÑ#<¸eÀ_ÓUÓV‰Kä#Ü—
‘
˜=Ñ)¨5°-Àó Ðô ×$Ñ$ R aÐ(ˆEô —9’9Ð<¼b¿j¹jÈÑ>WÓXˆDÞÜ!%¤cÐ*:Ó&;×&BÒ&BÀDÇKÁKÃMÐ&RÓ!S�Ø!×(Ñ(×*Ñ*Ø ŸK™K›M�EäÐ.Ó/×6Ò6¸Ð>ˆKØ�>�>Üð@ôó 	Ü�‰�‰˜˜;Ô'Ø�‰˜Õ$re   c                 ó2  • [         R                  [         R                  [         R                  [         R                  S.U l        U R                  R                  U l        [         R                  R                  U R                  R                  5      U l        g)zeSave the state of hooks in the sys module.

This has to be called after self.user_module is created.
)r”  ÚstdoutÚstderrÚ
excepthookN)r“  r”  r  r  r  Ú_orig_sys_module_statere  rk   Ú_orig_sys_modules_main_nameÚmodulesÚgetÚ_orig_sys_modules_main_modrß   s    r`   r@  Ú&InteractiveShell.save_sys_module_stateæ  sb   € ô
 14·	±	Ü14·±Ü14·±Ü58·^±^ñ'EˆÔ#ð ,0×+;Ñ+;×+DÑ+DˆÔ(Ü*-¯+©+¯/©/¸$×:JÑ:J×:SÑ:SÓ*TˆÕ're   c                 óö   •  U R                   R                  5        H  u  p[        [        X5        M     U R
                  b(  U R
                  [        R                  U R                  '   gg! [         a     NBf = f)z$Restore the state of the sys module.N)r  ÚitemsÚsetattrr“  r   r  r  r  )r•   ÚkÚvs      r`   Úrestore_sys_module_stateÚ)InteractiveShell.restore_sys_module_stateò  sm   € ð	Ø×3Ñ3×9Ñ9Ö;‘�Üœ˜QÖ"ñ <ð
 ×*Ñ*Ñ6Ø<@×<[Ñ<[ŒC�K‰K˜×8Ñ8Ò9ð 7øô ó 	Ùð	ús   ‚3A+ Á+
A8Á7A8c                 ó  • [         R                  R                  SS 5      =nbW  SSKJn  UR	                  [        U5      5      n[        R                  " SUR                  S5       S35      R                  5       $ U R                  nU R                  (       a"  U R                  S:w  a  USU R                  -  -  nU R                  (       a  US	U R                  -   -  nU$ U R                  (       a  US
R                  [        5       S9-  nU$ )NÚSOURCE_DATE_EPOCHr   )Údatetimez8
            Python 3.y.z | Packaged with love | (main, z%A, %d %B %Yz÷) [Compiler]
            Type 'copyright', 'credits' or 'license' for more information
            IPython 9.y.z -- An enhanced Interactive Python. Type '?' for help.
            Tip: unset SOURCE_DATE_EPOCH to restore dynamic banner.
            r   z
IPython profile: %s
r’   zTip: {tip}
)Útip)r0  r  r  r*  Úfromtimestamprz   ÚtextwrapÚdedentÚstrftimeÚlstripÚbanner1r4  Úbanner2Ú
enable_tipr®  r?   )r•   Úwhenr*  ÚdateÚbanners        r`   r6  ÚInteractiveShell.banner  sç   € ä—J‘J—N‘NÐ#6¸Ó=Ð=ˆDÑJÝ)à×)Ñ)¬#¨d«)Ó4ˆDÜ—?’?ð8Ø8<¿¹ÀnÓ8UÐ7Vð Wðó÷ ‰f‹hðð —‘ˆØ�<�<˜DŸL™L¨IÓ5ØÐ/°$·,±,Ñ>Ñ>ˆFØ�<�<Ø�d˜TŸ\™\Ñ)Ñ)ˆFð ˆð �_�_Ø�n×+Ñ+´³
Ð+Ð;Ñ;ˆFØˆre   c                 ó6   • Uc  U R                   n[        USS9  g )Nr‘   )Úend)r6  Úprint)r•   r6  s     r`   Úshow_bannerÚInteractiveShell.show_banner  s   € Ø‰>Ø—[‘[ˆFÜˆf˜"Óre   c                 óP  • [        5       U l        0 U l        [        R                  R                  nUR
                   H  nU R                  U[        X5      S5        M!     U R                  (       a6  U R                  S[        R                  " [        R                  5      S5        g g )Néd   Úshow_in_pageréZ   )rJ   ÚhooksÚstrdispatchersÚIPythonÚcoreÚ__all__Úset_hookÚgetattrÚdisplay_pager#   Úas_hook)r•   rA  Ú	hook_names      r`   rG  ÚInteractiveShell.init_hooks!  sx   € ä“XˆŒ
à ˆÔô —‘×"Ñ"ˆØŸœˆIð �M‰M˜)¤W¨UÓ%>ÀÖDñ 'ð
 ××Ø�M‰M˜/¬4¯<ª<¼×8IÑ8IÓ+JÈBÕOð re   c                 ó2  • [         R                  " X 5      nUbE  U R                  R                  U[	        5       5      nUR                  XFU5        XpR                  U'   gUbY  U R                  R                  U[	        5       5      nUR                  [        R                  " U5      Xc5        XpR                  U'   g[        U R                  US5      nU[        R                  R                  R                  ;  a5  [        SU< S[        R                  R                  R                  < 35        U(       d(  [        R                  R                  R                  5       n UR!                  Xc5        [%        U R                  X5        g! ["         a    Un N%f = f)zñset_hook(name,hook) -> sets an internal IPython hook.

IPython exposes some of its internal API as user-modifiable hooks.  By
adding your function to one of these hooks, you can modify IPython's
behavior to call at runtime your own routines.NzWarning! Hook 'z' is not one of )ÚtypesÚ
MethodTyperB  r  rQ   Úadd_sÚadd_rer  r…  rG  rA  rC  rD  rE  r:  ÚCommandChainDispatcherÚaddr   r#  )	r•   rÑ   ræ  ÚpriorityÚstr_keyÚre_keyÚfÚsdpÚdps	            r`   rF  ÚInteractiveShell.set_hook1  s=  € ô ×Ò˜TÓ'ˆð ÑØ×%Ñ%×)Ñ)¨$´³Ó>ˆCØ�I‰I�g (Ô,Ø(+×Ñ Ñ%ØØÑØ×%Ñ%×)Ñ)¨$´³Ó>ˆCØ�J‰J”r—z’z &Ó)¨1Ô8Ø(+×Ñ Ñ%Øä�T—Z‘Z  tÓ,ˆØ”w—|‘|×)Ñ)×1Ñ1Ó1ÝÛœŸ™×+Ñ+×3Ó3ð6ô 7ö Ü—‘×#Ñ#×:Ñ:Ó<ˆBð	Ø�F‰F�1Ôô
 	�—
‘
˜4Õ$øô	 ó 	àŠBð	ús   ÅF ÆFÆFc                 óz   • [        U [        5      U l        U R                  R                  SU R                  5        g )NÚpre_execute)r2   r3   r]  r`  Ú_clear_warning_registryrß   s    r`   rH  ÚInteractiveShell.init_events^  s+   € Ü" 4Ô)9Ó:ˆŒà�‰×Ñ˜]¨D×,HÑ,HÕIre   c                 ó@   • SU R                   ;   a  U R                   S	 g g )NÚ__warningregistry__)Úuser_global_nsrß   s    r`   r\  Ú(InteractiveShell._clear_warning_registryc  s&   € ð ! D×$7Ñ$7Ó7Ø×#Ñ#Ð$9Ñ:ð 8re   c                 ó&  • [         R                  R                  U5      n U R                  U   nUR                  R                  5         X#l        Xl
        S Ul        U$ ! [         a&    [        R                  " USS9=o0R                  U'    N?f = f)aH  Return a new 'main' module object for user code execution.

``filename`` should be the path of the script which will be run in the
module. Requests with the same filename will get the same module, with
its namespace cleared.

``modname`` should be the module name - normally either '__main__' or
the basename of the file without the extension.

When scripts are executed via %run, we must keep a reference to their
__main__ module around so that Python doesn't
clear it, rendering references to module globals useless.

This method keeps said reference in a private dict, keyed by the
absolute path of the script. This way, for multiple executions of the
same script we only keep one copy of the namespace (the last one),
thus preventing memory leaks from old references while allowing the
objects from the last execution to be accessible.
z(Module created for script run in IPythonr¡   c                  ó   • g©NTri   ri   re   r`   r§  Ú/InteractiveShell.new_main_mod.<locals>.<lambda>�  s   € ¨re   )r0  r1  ÚabspathÚ_main_mod_cacher­   rl  rk   r¶   rM  Ú
ModuleTypeÚ__file__Ú__nonzero__)r•   ÚfilenameÚmodnameÚmain_mods       r`   Únew_main_modÚInteractiveShell.new_main_modn  s•   € ô( —7‘7—?‘? 8Ó,ˆð	(Ø×+Ñ+¨HÑ5ˆHð ×Ñ×#Ñ#Ô%Ø 'Ôà$Ôñ  -ˆÔàˆøô ó 	HÜ8=×8HÒ8HØØFñ9Hð HˆH×+Ñ+¨HÓ5ð	Hús   ¡A  Á -BÂBc                 ó8   • U R                   R                  5         g)aB  Clear the cache of main modules.

Mainly for use by utilities like %reset.

Examples
--------
In [15]: import IPython

In [16]: m = _ip.new_main_mod(IPython.__file__, 'IPython')

In [17]: len(_ip._main_mod_cache) > 0
Out[17]: True

In [18]: _ip.clear_main_mod_cache()

In [19]: len(_ip._main_mod_cache) == 0
Out[19]: True
N)rg  rl  rß   s    r`   Úclear_main_mod_cacheÚ%InteractiveShell.clear_main_mod_cache”  s   € ð& 	×Ñ×"Ñ"Õ$re   c                 ó&   • U R                   U l        g r…   )ÚpdbÚcall_pdbrß   s    r`   rZ  ÚInteractiveShell.init_pdb­  s   € ð Ÿ™ˆ�re   c                 ó   • U R                   $ r…   )Ú	_call_pdbrß   s    r`   Ú_get_call_pdbÚInteractiveShell._get_call_pdb²  s   € Ø�~‰~Ðre   c                 óR   • US;  a  [        S5      eXl        XR                  l        g )N)r   rr   FTz"new call_pdb value must be boolean)r{   rx  r«  ru  )r•   Úvals     r`   Ú_set_call_pdbÚInteractiveShell._set_call_pdbµ  s,   € àÐ&Ó&ÜÐAÓBÐBð Œð '*×ÑÕ#re   z,Control auto-activation of pdb at exceptionsc                 óª   • U(       d  U R                   (       d  g[        [        S5      (       d  [        S5        gU R                  R                  SS9  g)a
  Call the pdb debugger.

Keywords:

  - force(False): by default, this routine checks the instance call_pdb
    flag and does not actually invoke the debugger if the flag is false.
    The 'force' option forces the debugger to activate even if the flag
    is false.
NÚlast_tracebackz1No traceback has been produced, nothing to debug.T©Úforce)ru  rm  r“  r   r«  Údebugger)r•   r‚  s     r`   rƒ  ÚInteractiveShell.debuggerÃ  sA   € ö ˜ŸŸØä”sÐ+×,Ñ,ÜÐEÔFØà×Ñ×#Ñ#¨$Ð#Ò/re   c                 óä   • Uc  Ub  SU l         U R                  X5      u  U l        U l        0 U l        0 U l        U R                  R                  U R                  [        R                  S.U l        g )NF)Úuser_globalÚ
user_localÚbuiltin)	Údefault_user_namespacesÚprepare_user_modulere  r§   Úuser_ns_hiddenrg  r­   rÍ  Úns_table©r•   re  r§   s      r`   r?  Ú'InteractiveShell.init_create_namespacesÜ  sp   € ðJ Ñ [Ñ%<Ø+0ˆDÔ(Ø)-×)AÑ)AÀ+Ó)WÑ&ˆÔ˜$œ,ð !ˆÔð4  "ˆÔð (,×'7Ñ'7×'@Ñ'@Ø&*§l¡lÜ#.×#7Ñ#7ñˆ�re   c                 ó.   • U R                   R                  $ r…   )re  r­   rß   s    r`   r`  ÚInteractiveShell.user_global_ns*  s   € à×Ñ×(Ñ(Ð(re   c                 ó&  • Uc%  Ub"  UR                  SS5        [        U5      " 5       nUc  [        R                  " SSS9nUR                  R                  S[
        5        UR                  R                  S[
        5        Uc  UR                  nX4$ )a:  Prepare the module and namespace in which user code will be run.

When IPython is started normally, both parameters are None: a new module
is created automatically, and its __dict__ used as the namespace.

If only user_module is provided, its __dict__ is used as the namespace.
If only user_ns is provided, a dummy module is created, and user_ns
becomes the global namespace. If both are provided (as they may be
when embedding), user_ns is the local namespace, and user_module
provides the global namespace.

Parameters
----------
user_module : module, optional
    The current user module in which IPython is being run. If None,
    a clean module will be created.
user_ns : dict, optional
    A namespace in which to run interactive commands.

Returns
-------
A tuple of user_module and user_ns, each properly initialised.
rk   r    z@Automatically created module for IPython interactive environmentr¡   Ú__builtin__Ú__builtins__)Ú
setdefaultrÁ   rM  rh  r­   rÍ  r�  s      r`   rŠ  Ú$InteractiveShell.prepare_user_module.  s�   € ð0 Ñ 7Ñ#6Ø×Ñ˜z¨:Ô6Ü/°Ô8Ó:ˆKàÑÜ×*Ò*¨:ØVñXˆKð 	×Ñ×'Ñ'¨´{ÔCØ×Ñ×'Ñ'¨¼ÔDà‰?Ø!×*Ñ*ˆGØÐ#Ð#re   c                 ój   • U R                   R                  nU R                   [        R                  U'   g r…   )re  rk   r“  r  )r•   Ú	main_names     r`   rA  Ú!InteractiveShell.init_sys_modulesX  s)   € ð" ×$Ñ$×-Ñ-ˆ	Ø!%×!1Ñ!1Œ�‰�IÒre   c                 óô  • 0 nU R                   b}  U R                   R                  US'   U R                   R                  US'   U R                   R                  US'   U R                   R                  US'   U R                   R                  US'   U R                  US'   U R
                  US'   U R
                  US	'   [        US
'   U R                  R                  U5        U R                  R                  U5        g)a@  Initialize all user-visible namespaces to their minimum defaults.

Certain history lists are also initialized here, as they effectively
act as user namespaces.

Notes
-----
All data structures here are only filled in, they are NOT reset by this
method.  If they were not empty before, data will simply be added to
them.
NÚ_ihÚ_ohÚ_dhÚInÚOutrp  ÚexitÚquitr   )
Úhistory_managerÚinput_hist_parsedÚoutput_histÚdir_histrp  r  rñ   r‹  Úupdater§   rn  s     r`   rJ  ÚInteractiveShell.init_user_nsl  sá   € ð: ˆð ×ÑÑ+Ø×,Ñ,×>Ñ>ˆBˆu‰IØ×,Ñ,×8Ñ8ˆBˆu‰IØ×,Ñ,×5Ñ5ˆBˆu‰Ið ×+Ñ+×=Ñ=ˆBˆt‰HØ×,Ñ,×8Ñ8ˆBˆu‰Ið !×,Ñ,ˆˆ=Ñà—[‘[ˆˆ6‰
Ø—[‘[ˆˆ6‰
Ü#ˆˆ6‰
ð 	×Ñ×"Ñ" 2Ô&ð 	�‰×Ñ˜BÕre   c                 ó¼   • U R                   U R                  U R                  /U R                  R	                  5        Vs/ s H  oR
                  PM     sn-   $ s  snf )zËGet a list of references to all the namespace dictionaries in which
IPython might store a user-created object.

Note that this does not include the displayhook, which also caches
objects from the output.)r§   r`  r‹  rg  Úvaluesr­   )r•   Úms     r`   Úall_ns_refsÚInteractiveShell.all_ns_refs¨  sR   € ð —‘˜d×1Ñ1°4×3FÑ3FÐGØ$(×$8Ñ$8×$?Ñ$?Ô$AÓBÒ$A˜q—
”
Ñ$AÑBñCð 	CùÚBs   ¿Ac                 óà  • U R                   b  U R                   R                  U5        U(       a  SU l        SU l        SU l        U R
                  R                  (       a  U R
                  R                  5         U R                  U R                  La  U R                  R                  5         U R                  n[        UR                  5       5      nUR                  S5        UR                  S5        UR                  S5        U H  nX5	 M     U R                  R                  5         U R                  5         U(       a  [!        U S5      (       d  [#        S5        OwU(       ap  [#        S	5        [        [$        R&                  R                  5       5      nX`R(                  -
   H,  nUR+                  S
5      (       a  M  [$        R&                  U	 M.     U R,                  R/                  5         U R,                  R1                  5         [2        R4                  S:X  aB  S H<  nXpR6                  R8                  S   ;  d  M!  U R,                  R;                  Xw5        M>     U R=                  5         g)z‘Clear all internal namespaces, and attempt to release references to
user objects.

If new_session is True, a new history session will be opened.
Nrr   Tr’  r“  rk   rõ   z&Cannot restore sys.module, no snapshotzculling sys module...ÚmultiprocessingÚposix)rl  rƒ  ÚlessÚmanÚline)r¡  ÚresetrÖ   Úlast_execution_succeededÚlast_execution_resultrè  Údo_full_cacheÚflushr§   r`  rl  ÚsetÚkeysÚdiscardr‹  rJ  rm  r:  r“  r  rõ   Ú
startswithÚalias_managerÚclear_aliasesÚinit_aliasesr0  rÑ   Úmagics_managerÚmagicsÚsoft_define_aliasrq  )r•   Únew_sessionÚ
aggressiverj  Ú	drop_keysr$  Úcurrent_keysÚcmds           r`   r²  ÚInteractiveShell.reset²  sá  € ð ×ÑÑ+Ø× Ñ ×&Ñ& {Ô3æØ#$ˆDÔ ð )-ˆÔ%Ø%)ˆÔ"ð ×Ñ×)×)Ø×Ñ×"Ñ"Ô$ð
 �<‰<˜t×2Ñ2Ò2Ø�L‰L×ÑÔ Ø× Ñ ˆÜ˜Ÿ™›	“Nˆ	Ø×Ñ˜-Ô(Ø×Ñ˜.Ô)Ø×Ñ˜*Ô%ÛˆAØ’ñ ð 	×Ñ×!Ñ!Ô#ð 	×ÑÔÞœg dÐ,?×@Ñ@ÜÐ:Õ;ÞÜÐ)Ô*ÜœsŸ{™{×/Ñ/Ó1Ó2ˆLØ!×$:Ñ$:Ô:�Ø—<‘<Ð 1×2Ñ2ÙÜ—K‘K ’Nñ ;ð 	×Ñ×(Ñ(Ô*Ø×Ñ×'Ñ'Ô)ô
 �7‰7�gÓÛ7�Ø×1Ñ1×8Ñ8¸Ñ@Õ@Ø×&Ñ&×8Ñ8¸ÖBñ 8ð 	×!Ñ!Õ#re   c                 ó–  • US;   a  [        SU-  5      eU R                  nU(       a  U H  n XA	 M     g U R                  U   nU R
                  c   eUR                  U R
                  R                  5        U H8  nUR                  5        VVs/ s H  u  pxX…L d  M  UPM     n	nnU	 H  n
XJ	 M     M:     U R                  R                  UL a  SU l	        S H5  n
[        U R                  U
5      UL d  M  [        U R                  U
S5        M7     g! [         a     Mö  f = f! [         a  n[	        SU-  5      UeSnAff = fs  snnf )a~  Delete a variable from the various namespaces, so that, as
far as possible, we're not keeping any hidden references to it.

Parameters
----------
varname : str
    The name of the variable to delete.
by_name : bool
    If True, delete variables with the given name in each
    namespace. If False (default), find the variable in the user
    namespace, and delete references to it.
)r’  r“  zRefusing to delete %szname '%s' is not definedN)Ú_Ú__Ú___)r{   rª  r¶   r§   Ú	NameErrorr¡  rÚ  r£  r"  r´  rç   rG  rè  r#  )r•   ÚvarnameÚby_nameÚns_refsrj  r–   ÚeÚnÚoÚ	to_deleterÑ   s              r`   Údel_varÚInteractiveShell.del_varò  sI  € ð Ð5Ó5ÜÐ4°wÑ>Ó?Ð?à×"Ñ"ˆæÛ�ðØšò ðMØ—l‘l 7Ñ+�ð ×'Ñ'Ñ3Ð3Ð3Ø�N‰N˜4×/Ñ/×;Ñ;Ô<Û�Ø+-¯8©8¬:ÔBª:¡4 1¸¸ŸQ©:�	ÑBÛ%�DØšó &ñ ð ×)Ñ)×0Ñ0°CÒ7Ø-1�Ô*ó +�Ü˜4×+Ñ+¨TÓ2°cÔ9Ü˜D×,Ñ,¨d°DÖ9ò +øô)  ó Úðûô
 ó MÜÐ :¸WÑ DÓEÈ1ÐLûðMüó Cs4   ®D¶D$ Â
EÂEÄ
D!Ä D!Ä$
EÄ.D=Ä=Ec                 óâ   • UbN   [         R                  " U5      nU R                   H&  nU H  nUR	                  U5      (       d  M  XE	 M     M(     gg! [         a  n[        S5      UeSnAff = f)a  Clear selective variables from internal namespaces based on a
specified regular expression.

Parameters
----------
regex : string or compiled pattern, optional
    A regular expression pattern that will be used in searching
    variable names in the users namespaces.
Nz*regex must be a string or compiled pattern)r  r…  r€   rª  r	  )r•   Úregexr©  rÏ  rj  Úvars         r`   Úreset_selectiveÚ InteractiveShell.reset_selective   st   € ð ÑðUÜ—J’J˜uÓ%�ð
 ×&Ô&�Û�CØ—x‘x —}“}ØšGó ò 'ð øô ó UÜÐ LÓMÐSTÐTûðUús   …A Á
A.ÁA)Á)A.c                 óŽ  • Sn[        U[        5      (       a  UnO¡[        U[        [        [        45      (       av  [        U[        5      (       a  UR                  5       nO[        U5      n0 n[        R                  " S5      nU H&  n [        XeR                  UR                  5      X6'   M(     O[        S5      eU R                  R!                  U5        U R"                  nU(       a  U H  nUR%                  US5        M     gUR!                  U5        g!   [        SU< SUR                  R                  < 35         M¾  = f)aP  Inject a group of variables into the IPython user namespace.

Parameters
----------
variables : dict, str or list/tuple of str
    The variables to inject into the user's namespace.  If a dict, a
    simple update is done.  If a str, the string is assumed to have
    variable names separated by spaces.  A list/tuple of str can also
    be used to give the variable names.  If just the variable names are
    give (list/tuple/str) then the variable values looked up in the
    callers frame.
interactive : bool
    If True (default), the variables will be listed with the ``who``
    magic.
Nrr   zCould not get variable z from z'variables must be a dict/str/list/tuple)r  r¾   r¿   ÚlistÚtupleÚsplitr“  Ú	_getframeÚevalÚ	f_globalsÚf_localsr:  Úf_codeÚco_namer{   r§   r¥  r‹  Úpop)r•   Ú	variablesÚinteractiveÚvdictÚvlistÚcfrÑ   r‹  s           r`   ÚpushÚInteractiveShell.push6  s
  € ð  ˆô �i¤×&Ñ&Ø‰EÜ˜	¤C¬¬uÐ#5×6Ñ6Ü˜)¤S×)Ñ)Ø!Ÿ™Ó)‘ä˜Y›�ØˆEÜ—’˜qÓ!ˆBÛ�ð5Ü"& t¯\©\¸2¿;¹;Ó"G�E“Kò ô ÐFÓGÐGð 	�‰×Ñ˜EÔ"ð ×,Ñ,ˆÞÛ�Ø×"Ñ" 4¨Ö.ò ð ×!Ñ! %Õ(øð5ÝÛ  §¡×!2Ó!2ð4÷ 5ús   Â
"DÄ)Ec                 óÒ   • UR                  5        HS  u  p#X R                  ;   d  M  U R                  U   UL d  M*  U R                  U	 U R                  R                  US5        MU     g)a{  Remove a dict of variables from the user namespace, if they are the
same as the values in the dictionary.

This is intended for use by extensions: variables that they've added can
be taken back out if they are unloaded, without removing any that the
user has overwritten.

Parameters
----------
variables : dict
    A dictionary mapping object names (as strings) to the objects.
N)r"  r§   r‹  rä  )r•   rå  rÑ   r–   s       r`   Ú
drop_by_idÚInteractiveShell.drop_by_idf  sS   € ð #Ÿ™Ö*‰IˆDØ—|‘|Õ#¨¯©°TÑ(:¸cÔ(AØ—L‘L Ð&Ø×#Ñ#×'Ñ'¨¨dÖ3ò +re   Úonamec                 óº  • U R                  S5      n/ nSnU H¾  nUR                  S5      (       a}  UR                  S5      tpVUR                  5       (       d  Sn  X24$ UR                  U5        U H7  nUS   S:w  a  [	        USS 5      (       d  Sn  OUR                  USS 5        M9     M–  UR                  5       (       d  SnUR                  U5        MÀ     X24$ )a^  
Given an object name, return a list of parts of this object name.

Basically split on docs when using attribute access,
and extract the value when using square bracket.


For example foo.bar[3].baz[x] -> foo, bar, 3, baz, x


Returns
-------
parts_ok: bool
    whether we were properly able to parse parts.
parts: list of str
    extracted parts



Ú.TÚ]Ú[FéÿÿÿÿN)rÝ  ÚendswithÚisidentifierrÚ  r|   )rï  Ú	raw_partsr  Úparts_okrë  r×  ÚindicesÚinds           r`   Ú_find_partsÚInteractiveShell._find_parts{  sÝ   € ð, —K‘K Ó$ˆ	ØˆØˆÛˆAØ�z‰z˜#�‰Ø !§¡¨£��Ø×'Ñ'×)Ñ)Ø$�HØð ˆÐð —‘˜SÔ!Û"�CØ˜2‘w #“~Ô.?ÀÀCÀRÀ×.IÑ.IØ#(˜ÙØ—L‘L  S b Ö*ñ	 #ñ
 à—>‘>×#Ñ#Ø �Ø�L‰L˜ŽOñ! ð$ ˆÐre   Ú
namespacesc           	      ó‚  • UR                  5       nU R                  U5      u  p4UR                  [        5      (       d/  UR                  [        5      (       d  U(       d  [        SSSSSSS9$ Uc-  SU R                  4SU R                  4S[        R                  4/nSnSnSnSnSn	Sn
UnUS   USS pÜU Hx  u  pï Xü   n
[        U5       H[  u  nn U
n	U[        U5      S-
  :X  a  U R                  U
U5      n
M/  [        U5      (       a  U
[        U5         n
MO  [        U
U5      n
M]     S	nUn  O   U(       dÂ  Sn
UR                  [        5      (       a'  UR#                  [        5      nU R%                  U5      n
OfUR                  [        5      (       a'  UR#                  [        5      nU R'                  U5      n
O%U R'                  U5      n
U
c  U R%                  U5      n
U
b  S	nS
nS	n[)        U
[*        5      nU(       d  US;   a  [-        U5      n
S	nSn[        U
UU	UUUS9$ !      GMv  = f! [          a     GM‡  f = f)zÀFind an object in the available namespaces.


Returns
-------
OInfo with fields:
  - ismagic
  - isalias
  - found
  - obj
  - namespac
  - parent

Has special code to detect magic functions.
FN)ÚismagicÚisaliasÚfoundr–   Ú	namespacerª  ÚInteractivezInteractive (global)zPython builtinr   rr   TzIPython internal)z''z""z[]z{}z())r–   r  rª  rÿ  r   r  )Ústriprû  rº  r8   r9   rW   r§   r`  rÍ  r­   Ú	enumeraterÏ   Ú_getattr_propertyr|   rz   rG  r¶   r0  Úfind_cell_magicÚfind_line_magicr  r&   rß  )r•   rï  rý  rø  r  rÿ  r   r  Úospacerª  r–   Úoname_partsÚ
oname_headÚ
oname_restÚnsnamerj  ÚidxÚparts                     r`   Ú_ofindÚInteractiveShell._ofind¨  sv  € ð$ —‘“ˆØ×*Ñ*¨5Ó1‰ˆð × Ñ ¤×+Ñ+Ø×$Ñ$¤Z×0Ñ0ÞäØØØØØØñð ð Ñð *¨4¯<©<Ð8Ø2°D×4GÑ4GÐHØ,¬k×.BÑ.BÐCðˆJð
 ˆØˆØˆØˆØˆØˆð ˆØ!,¨Q¡°¸A¸B°�JÛ#‰IˆFðØ‘n�ô "+¨:Ö!6‘I�C˜ðØ!$˜ð ¤# j£/°AÑ"5Ó5Ø"&×"8Ñ"8¸¸dÓ"CšCä0°×6Ñ6Ø&)¬#¨d«)¡n¢ä&-¨c°4Ó&8¢ñ "7ð( !�EØ#�FÙñ9 $ö> ØˆCØ×Ñ¤
×+Ñ+ØŸ™¤ZÓ0�Ø×*Ñ*¨5Ó1‘Ø×!Ñ!¤)×,Ñ,ØŸ™¤YÓ/�Ø×*Ñ*¨5Ó1‘ð ×*Ñ*¨5Ó1�Ø‘;Ø×.Ñ.¨uÓ5�CØ‰Ø�Ø+�Ø�Ü$ S¬%Ó0�ö ˜Ð'AÓAÜ�zÓ"ˆCØˆEØ"ˆFäØØØØØØñ
ð 	
øðKô ûô) ó Ûðús*   Â<H/Ã&H%Ã:H%ÄH%È%H,È/
H>È=H>c                 óü   • [        U [        5      (       dM   [        U5      (       a  U [        U5         $ [	        [        U 5      U5      n [        U[
        5      (       a  U$  [	        X5      $ ! [         a     Nf = f)z�Property-aware getattr to use in object finding.

If attrname represents a property, return it unevaluated (in case it has
side effects or raises an error.

)r  Útyper|   rz   rG  r½   r   )r–   ÚattrnameÚattrs      r`   r  Ú"InteractiveShell._getattr_property"  s|   € ô ˜#œt×$Ñ$ð ô % X×.Ñ.Øœs 8›}Ñ-Ð-ä"¤4¨£9¨hÓ7‘Dô  ˜d¤H×-Ñ-Ø�Kð .ô �sÓ%Ð%øô' "ó Ùðús   —A. µA. Á.
A;Á:A;c                 ó$   • U R                  X5      $ )z6Find an object and return a struct with info about it.)r  )r•   rï  rý  s      r`   Ú_object_findÚInteractiveShell._object_findL  s   € à�{‰{˜5Ó-Ð-re   c                 óB  • U R                  X#5      nU R                  (       a-  [        c  [        S5      e[        U R	                  U5      5      nOSnUR
                  (       d)  [        UR                  [        R                  5      (       a†  [        U R                  U5      nUR                  (       a  [        OUnUS:X  a  U" UR                  X(5        gUS:X  a#  U" UR                  UUU4SU R                  0UD6  gU" UR                  U5        g[!        SU-  5        g)ziGeneric interface to the inspector system.

This function is meant to be called by pdef, pdoc & friends.
Nú'Module ``docrepr`` required but missingÚpdocÚpinfor  zObject `%s` not found.z	not found)r  ra   rX   ÚImportErrorÚobject_inspectr  rm  rª  r"   Ú	HOOK_NAMErG  rö   rÿ  rV   r–   r  r:  )	r•   Úmethrï  rý  r‡   rÛ   Ú	docformatÚpmethodÚ	formatters	            r`   Ú_inspectÚInteractiveShell._inspectP  sô   € ð
 ×'Ñ'¨Ó:ˆØ×#×#ÜÑ Ü!Ð"KÓLÐLÜ! $×"5Ñ"5°eÓ"<Ó=‰IàˆIØ�:�:œ §¡¬h×.@Ñ.@×AÑAÜ˜dŸn™n¨dÓ3ˆGð *.¯¯�¸9ˆIØ�v‹~Ù˜Ÿ™ %Õ3Ø˜“ÙØ—H‘HØØØñ	ð
 '+×&<Ñ&<ðð óñ ˜Ÿ™ %Õ(äÐ*¨UÑ2Ô3Øre   c                 ó  • U R                      U R                  U5      nUR                  (       a.  U R                  R	                  UR
                  XUS9sSSS5        $ [        R                  " USS9sSSS5        $ ! , (       d  f       g= f)zGet object info about oname)rÛ   Údetail_levelNF)rÑ   r  )rÎ  r  r  rö   rÛ   r–   r"   Úobject_info)r•   rï  r(  rÛ   s       r`   r  ÚInteractiveShell.object_inspectr  sj   € à×ÓØ×$Ñ$ UÓ+ˆDØ�z�zØ—~‘~×*Ñ*¨4¯8©8°UØ)5ð +ð ÷ Ñô  ×+Ò+°¸eÑD÷ ××ús   �AA<ÁA<Á<
B
c                 ó*   • U R                  X5      S   $ )z!Get object info as formatted textr[   )Úobject_inspect_mime)r•   rï  r(  s      r`   Úobject_inspect_textÚ$InteractiveShell.object_inspect_text}  s   € à×'Ñ'¨Ó<¸\ÑJÐJre   c           
      óz  • U R                      U R                  U5      nUR                  (       aq  U R                  (       a-  [        c  [        S5      e[	        U R                  U5      5      nOSnU R                  R                  UR                  UUUUUS9sSSS5        $ [        U5      e! , (       d  f       g= f)z�Get object info as a mimebundle of formatted representations.

A mimebundle is a dictionary, keyed by mime-type.
It must always have the key `'text/plain'`.
Nr  )rÛ   r(  r$  Úomit_sections)rÎ  r  r  ra   rX   r  r  rö   Ú	_get_infor–   r¶   )r•   rï  r(  r0  rÛ   r"  s         r`   r,  Ú$InteractiveShell.object_inspect_mime�  s£   € ð ×ÓØ×$Ñ$ UÓ+ˆDØ�z�zØ×+×+Ü Ñ(Ü)Ð*SÓTÐTÜ )¨$×*=Ñ*=¸eÓ*DÓ E‘Ià $�IØ—~‘~×/Ñ/Ø—H‘HØØØ!-Ø'Ø"/ð 0ð ÷ Ñô$ ˜u“oÐ%÷% Õús   �B
B,Â!B,Â,
B:c                 ój   • [        X S9U l        U R                  R                  U R                  5        g)z:Sets up the command history, and starts regular autosaves.©rÌ  rª  N)r6   r¡  r9  rÚ  rß   s    r`   rC  ÚInteractiveShell.init_historyŸ  s)   € ä-°DÑFˆÔØ×Ñ×!Ñ! $×"6Ñ"6Õ7re   c                 óL  • [         R                  " U R                  S9U l        [         R                  " U R                  U R                  SU R
                  S9U l        [        R                  U l	        U R                  " U6   U R                  R                  U R                  S9  g )Nr¢  rr   )Úmoder£  Ú	tb_offsetÚdebugger_cls)r7  )r%   r¬  r™  ÚAutoFormattedTBÚxmoder9  r«  r“  r  Úsys_excepthookÚset_custom_excÚset_mode)r•   rf  s     r`   rQ  Ú(InteractiveShell.init_traceback_handlersª  sƒ   € ä×(Ò(°D·K±KÑ@ˆŒô
 %×4Ò4Ø—‘Ø—{‘{ØØ×*Ñ*ñ	
ˆÔô "Ÿn™nˆÔð 	×ÒÐ.Ñ/ð 	×Ñ×#Ñ#¨¯©Ð#Ò4re   c                 ó¸   ^^• [        U[        5      (       d  [        S5      eSS jnS mTc  UnO	SUU4S jjn[        R                  " X@5      U l        Xl        g)aË  set_custom_exc(exc_tuple, handler)

Set a custom exception handler, which will be called if any of the
exceptions in exc_tuple occur in the mainloop (specifically, in the
run_code() method).

Parameters
----------
exc_tuple : tuple of exception classes
    A *tuple* of exception classes, for which to call the defined
    handler.  It is very important that you use a tuple, and NOT A
    LIST here, because of the way Python's except statement works.  If
    you only want to trap a single exception, use a singleton tuple::

        exc_tuple == (MyCustomException,)

handler : callable
    handler must have the following signature::

        def my_handler(self, etype, value, tb, tb_offset=None):
            ...
            return structured_traceback

    Your handler must return a structured traceback (a list of strings),
    or None.

    This will be made into an instance method (via types.MethodType)
    of IPython itself, and it will be called if any of the exceptions
    listed in the exc_tuple are caught. If the handler is None, an
    internal basic one is used, which just prints basic info.

    To protect IPython from crashes, if your handler ever raises an
    exception or returns an invalid result, it will be immediately
    disabled.

Notes
-----
WARNING: by putting in your own exception handler into IPython's main
execution loop, you run a very good chance of nasty crashes.  This
facility should only be used if you really know what you are doing.
z/The custom exceptions must be given as a tuple.Nc                 ób   • [        S5        [        SU5        [        SU5        [        SU5        g )Nz'*** Simple custom exception handler ***zException type :zException value:zTraceback      :)r:  )r•   Úetyper—   Útbr8  s        r`   Údummy_handlerÚ6InteractiveShell.set_custom_exc.<locals>.dummy_handlerñ  s,   € ÜÐ;Ô<ÜÐ$ eÔ,ÜÐ$ eÔ,ÜÐ$ bÕ)re   c                 óÜ   • SU -  nU c  / $ [        U [        5      (       a  U /$ [        U [        5      (       d  [        U5      eU  H#  n[        U[        5      (       a  M  [        U5      e   U $ )a  validate structured traceback return type

return type of CustomTB *should* be a list of strings, but allow
single strings or None, which are harmless.

This function will *always* return a list of strings,
and will raise a TypeError if stb is inappropriate.
z,CustomTB must return list of strings, not %r)r  r¿   rÛ  r€   )ÚstbÚmsgr±  s      r`   Úvalidate_stbÚ5InteractiveShell.set_custom_exc.<locals>.validate_stb÷  sl   € ð AÀ3ÑFˆCØ‰{Ø�	Ü˜C¤×%Ñ%Ø�u�Ü ¤T×*Ñ*Ü “nÐ$ã�ä! $¬×,Ó,Ü# C›.Ð(ñ ð ˆJre   c                 ót  >•  T" XX#US9nT" U5      $ !   U R                  SS5        [        S[        R                  S9  U R                  R
                  " [        R                  " 5       6 n[        U R                  R                  U5      5        [        S5        U R                  R                  XX4S9n U$ = f)z”wrap CustomTB handler, to protect IPython from user code

This makes it harder (but not impossible) for custom exception
handlers to crash IPython.
©r8  ri   Nz'Custom TB Handler failed, unregistering©r�   zThe original exception:)r=  r:  r“  r  r«  Ústructured_tracebackr´  Ústb2text)r•   rB  r—   rC  r8  rG  ÚhandlerrI  s         €€r`   ÚwrappedÚ0InteractiveShell.set_custom_exc.<locals>.wrapped  s­   ø€ ðÙ! $¨UÀ	ÑJ�CÙ'¨Ó,Ð,øð
à×'Ñ'¨¨DÔ1ÜÐCÌ#Ï*É*ÒUà×,Ñ,×AÒAÄ3Ç<Â<Ã>ÐR�CÜ˜$×,Ñ,×5Ñ5°cÓ:Ô;ÜÐ3Ô4Ø×,Ñ,×AÑAØ bð Bð ‘Cð �
ús
   ƒ “B!B7r…   )r  rÜ  r€   rM  rN  ÚCustomTBrf  )r•   Ú	exc_tuplerP  rD  rQ  rI  s     `  @r`   r=  ÚInteractiveShell.set_custom_excÃ  sY   ù€ ôV ˜)¤U×+Ñ+ÜÐMÓNÐNô	*ò	ð. ‰?Ø#‰G÷ð ô, ×(Ò(¨Ó6ˆŒØ!*Õre   c                 ó(   • U R                  XU4SS9  g)aÌ  One more defense for GUI apps that call sys.excepthook.

GUI frameworks like wxPython trap exceptions and call
sys.excepthook themselves.  I guess this is a feature that
enables them to keep running after exceptions that would
otherwise kill their mainloop. This is a bother for IPython
which expects to catch all of the program exceptions with a try:
except: statement.

Normally, IPython sets sys.excepthook to a CrashHandler instance, so if
any app directly invokes sys.excepthook, it will look to the user like
IPython crashed.  In order to work around this, we can disable the
CrashHandler and replace it with this excepthook instead, which prints a
regular traceback using our InteractiveTB.  In this fashion, apps which
call sys.excepthook will generate a regular-looking exception from
IPython, and the CrashHandler will only be triggered by real IPython
crashes.

This hook should be used sparingly, only in places which are not likely
to be true IPython errors.
r   rL  N)Úshowtraceback)r•   rB  r—   rC  s       r`   r  ÚInteractiveShell.excepthook*  s   € ð, 	×Ñ˜E¨"Ð-¸ÐÒ;re   c                 óv  • Uc  [         R                  " 5       u  p#nOUu  p#nUcD  [        [         S5      (       a/  [         R                  [         R                  [         R
                  pCnUc  [        S5      eU[         l        U[         l        U[         l        [         R                  S:¼  a  U[         l        X#U4$ )zÜget exc_info from a given tuple, sys.exc_info() or sys.last_type etc.

Ensures sys.last_type,value,traceback hold the exc_info we found,
from whichever source.

raises ValueError if none of these contain any information
Ú	last_typezNo exception to find)r÷  é   )	r“  r´  rm  rZ  Ú
last_valuer€  r{   r  Úlast_exc)r•   rT  rB  r—   rC  s        r`   Ú_get_exc_infoÚInteractiveShell._get_exc_infoB  sž   € ð ÑÜ"Ÿ|š|›~ÑˆE™"à(ÑˆE˜"à‰=Ü”s˜K×(Ñ(Ü#&§=¡=´#·.±.Ü#&×#5Ñ#5ð !�ð ‰=ÜÐ3Ó4Ð4ð ŒŒØŒŒØŒÔÜ×Ñ˜wÓ&Ø ŒCŒLà˜RÐÐre   c                 ó:   • [        SU-  [        R                  S9  g)zdShow a short message for UsageErrors

These are special exceptions that shouldn't show a traceback.
zUsageError: %srM  N)r:  r“  r  )r•   Úexcs     r`   Úshow_usage_errorÚ!InteractiveShell.show_usage_errord  s   € ô
 	Ð Ñ$¬3¯:©:Ó6re   c                 óx   • U R                  U5      u  p#n[        R                  " X#5      nSR                  U5      $ )ze
Return as a string (ending with a newline) the exception that
just occurred, without any traceback.
r‘   )r^  Ú	tracebackÚformat_exception_onlyrB  )r•   rT  rB  r—   rC  rH  s         r`   Úget_exception_onlyÚ#InteractiveShell.get_exception_onlyk  s7   € ð
  ×-Ñ-¨iÓ8Ñˆ�bÜ×-Ò-¨eÓ;ˆØ�w‰w�s‹|Ðre   rT  rk  r8  Úexception_onlyÚrunning_compiled_codec                 óœ  ^
•   U R                  U5      u  pgn[        U[        5      (       a  U R                  X%5        gU[        L a  U R                  U5        gU(       a/  S/n	U	R                  U R                  R                  UU5      5        OšU
4S jm
T
" U5      (       a  [        R                  " 5         OP [        US5      (       a  UR!                  5       n	OU R                  R#                  XgXƒS9n	 U R'                  XgU	5        U R(                  (       a  U R+                  S	S
9  gU R'                  XgU	5        g! [         a    [        S[        R                  S9   gf = f! [$         a#    [        S5        [        R                  " 5          gf = f! [,         a,    [        SU R                  5       -   [        R                  S9   gf = f)aÍ  Display the exception that just occurred.

If nothing is known about the exception, this is the method which
should be used throughout the code for presenting user tracebacks,
rather than directly invoking the InteractiveTB object.

A specific showsyntaxerror() also exists, but this method can take
care of calling it if needed, so unless you are explicitly catching a
SyntaxError exception, don't try to analyze the stack manually and
simply call this method.zNo traceback available to show.rM  Nz>An exception has occurred, use %tb to see the full traceback.
c                 ó^   >• U c  g[        U [        5      =(       d    T" U R                  5      $ ©NF©r  ÚBaseExceptionGroupÚ__context__©r|  Úcontains_exceptiongroups    €r`   rr  Ú?InteractiveShell.showtraceback.<locals>.contains_exceptiongroupœ  s1   ø€ Ø™;Ø#(Ü)ØÔ!3ó ÷  Fá4°S·_±_ÓEðFre   Ú_render_traceback_rL  zMUnexpected exception formatting exception. Falling back to standard exceptionTr�  r’   )r^  r{   r:  r“  r  Ú
issubclassÚSyntaxErrorÚshowsyntaxerrorr1   rb  Úextendr«  rg  re  Ú	print_excrm  rt  rN  r³  Ú_showtracebackru  rƒ  ÚKeyboardInterrupt)r•   rT  rk  r8  ri  rj  rB  r—   rC  rG  rr  s             @r`   rW  ÚInteractiveShell.showtracebackt  s­  ø€ ð&=	EðØ#'×#5Ñ#5°iÓ#@Ñ �˜bô
 ˜%¤×-Ñ-ð ×$Ñ$ XÕEØœ*Ò$Ø×%Ñ% eÕ,æ!ð3ð 4�Cà—J‘J˜t×1Ñ1×DÑDÀUØEJó Lõ MõFñ /¨u×5Ñ5ô "×+Ò+Õ-ð(ô  ' uÐ.B×CÑCØ&+×&>Ñ&>Ó&@¡à&*×&8Ñ&8×&MÑ&MØ$)°"ð 'Nð '"¡ð ×+Ñ+¨E¸#Ô>Ø—}—}àŸ™¨D˜Ñ1Øð ×#Ñ# E°#Õ6øôo ó ÜÐ7¼c¿j¹jÒIÙðûôR  )ó (Ü!Ø oôô &×/Ò/Ô1Ù#'ð(ûô  !ó 	EÜ�$˜×0Ñ0Ó2Ñ2¼¿¹ÔDð	Eúsp   „D= ˜&F ¿F ÁAF Â:!E% ÃF ÃE% Ã63F Ä*F Ä="E"ÅF Å!E"Å"F Å%*FÆF ÆFÆF Æ3GÇ
GrG  c                 óà   • U R                   R                  U5      nSU l         [        U5        SU l        g! [         a,    [        UR                  SS5      R                  5       5         N=f = f)z€Actually show a traceback.

Subclasses may override this method to put the traceback on a different
place, like a side channel.
Túutf-8ÚbackslashreplaceFN)r«  rO  rc  r:  ÚUnicodeEncodeErrorÚencodeÚdecode)r•   rB  ÚevaluerG  r|  s        r`   rz  ÚInteractiveShell._showtracebackÆ  si   € ð × Ñ ×)Ñ)¨#Ó.ˆØ!%ˆÔð	DÜ�#ŒJð "'ˆÕøô "ó 	DÜ�#—*‘*˜WÐ&8Ó9×@Ñ@ÓBÖCð	Dús   ¤7 ·3A-Á,A-c                 ó  • U R                  5       u  p4nU(       a  [        U[        5      (       a   Xl        U(       a  [        R
                  " U5      O/ nU R                  R                  X4U5      nU R                  X4U5        g!    NR= f)a“  Display the syntax error that just occurred.

This doesn't display a stack trace because there isn't one.

If a filename is given, it is stuffed in the exception instead
of what was there before (because Python's parser always uses
"<string>" when reading from a string).

If the syntax error occurred when running a compiled code (i.e. running_compile_code=True),
longer stack trace will be displayed.
N)	r^  ru  rv  rk  re  Ú
extract_tbr¬  rN  rz  )r•   rk  rj  rB  r—   r€  ÚelistrG  s           r`   rw  Ú InteractiveShell.showsyntaxerrorÔ  sx   € ð (,×'9Ñ'9Ó';Ñ$ˆ�næœ
 5¬+×6Ñ6ðØ!)”ö 9N”	×$Ò$ ^Ô4ÐSUˆØ�m‰m×0Ñ0°¸uÓEˆØ×Ñ˜E¨#Õ.øðáús   ±B ÂB	c                 ó$   • U R                  5         g)z­Called by _run_cell when there's an IndentationError in code entered
at the prompt.

This is overridden in TerminalInteractiveShell to show a message about
the %paste magic.N)rw  rß   s    r`   ÚshowindentationerrorÚ%InteractiveShell.showindentationerrorð  s   € ð 	×ÑÕre   c                 ó   • Xl         g)zžSets the 'default' input string for the next command line.

Example::

    In [1]: _ip.set_next_input("Hello Word")
    In [2]: Hello Word_  # cursor is here
N)Úrl_next_input)r•   rx   r“   s      r`   Úset_next_inputÚInteractiveShell.set_next_inputø  s
   € ð Õre   c                 ó  • SSK Jn  SSKJnJnJnJn  U" U U R                  U R                  U S9U l	        U R                  R                  U R                  5        U R                  R                  S[        5       5      nX`R                  S'   X`R                  l        U R!                  SUSS9  U R!                  SUSS9  U R!                  SUS	S9  U R!                  SUS
S9  U R!                  SUSS9  U R!                  SUSS9  g)a&  Initialize the completion machinery.

This creates completion machinery that can be used by client code,
either interactively in-process (typically triggered by the readline
library), programmatically (such as in test suites) or out-of-process
(typically over the network by remote frontends).
r   )ÚIPCompleter)Úcd_completerÚmagic_run_completerÚmodule_completerÚreset_completer)rÌ  r  Úglobal_namespacerª  Úcomplete_commandÚimport)rT  Úfromz%aimportz%runz%cdz%resetN)ÚIPython.core.completerr‘  ÚIPython.core.completerlibr’  r“  r”  r•  r§   r`  Ú	Completerr9  rÚ  rB  r  rQ   Úcustom_completersrF  )r•   r‘  r’  r“  r”  r•  Úsdisps          r`   rO  ÚInteractiveShell.init_completer	  sú   € õ 	7÷	
ó 	
ñ %¨4Ø/3¯|©|Ø6:×6IÑ6IØ,0ñ'ˆŒð
 	×Ñ×!Ñ! $§.¡.Ô1ð ×#Ñ#×'Ñ'Ð(:¼K»MÓJˆØ27×ÑÐ.Ñ/Ø+0�‰Ô(à�‰Ð(Ð*:ÀhˆÑOØ�‰Ð(Ð*:ÀfˆÑMØ�‰Ð(Ð*:ÀjˆÑQØ�‰Ð(Ð*=ÈˆÑPØ�‰Ð(¨,À%ˆÑHØ�‰Ð(¨/ÀXˆÒNre   c                 óˆ   • U R                      U R                  R                  XU5      sSSS5        $ ! , (       d  f       g= f)a)  Return the completed text and a list of completions.

Parameters
----------
text : string
    A string of text to be completed on.  It can be given as empty and
    instead a line/position pair are given.  In this case, the
    completer itself will split the line like readline does.
line : string, optional
    The complete line that text is part of.
cursor_pos : int, optional
    The position of the cursor on the input line.

Returns
-------
text : string
    The actual text that was completed.
matches : list
    A sorted list with all possible completions.

Notes
-----
The optional arguments allow the completion to take more context into
account, and are part of the low-level completion API.

This is a wrapper around the completion mechanism, similar to what
readline does at the command line when the TAB key is hit.  By
exposing it as a method, it can be used by other non-readline
environments (such as GUIs) for text completion.

Examples
--------
In [1]: x = 'hello'

In [2]: _ip.complete('x.l')
Out[2]: ('x.l', ['x.ljust', 'x.lower', 'x.lstrip'])
N)rÎ  rœ  Úcomplete)r•   Útextr±  Ú
cursor_poss       r`   r¡  ÚInteractiveShell.complete*	  s.   € ðR ×ÓØ—>‘>×*Ñ*¨4°zÓB÷ ××ús	   �3³
Ac                 óŽ   • [         R                  " XR                  5      nU R                  R                  R	                  X#5        g)a¾  Adds a new custom completer function.

The position argument (defaults to 0) is the index in the completers
list where you want the completer to be inserted.

`completer` should have the following signature::

    def completion(self: Completer, text: string) -> List[str]:
        raise NotImplementedError

It will be bound to the current Completer instance and pass some text
and return a list with current completions to suggest to the user.
N)rM  rN  rœ  Úcustom_matchersr  )r•   Ú	completerÚposÚnewcomps       r`   Úset_custom_completerÚ%InteractiveShell.set_custom_completerV	  s0   € ô ×"Ò" 9¯n©nÓ=ˆØ�‰×&Ñ&×-Ñ-¨cÕ:re   c                 óì   • U(       a7  UR                   U R                  l        UR                  U R                  l        gU R
                  U R                  l        U R                  U R                  l        g)zSet the frame of the completer.N)rá  rœ  r  rà  r–  r§   r`  )r•   Úframes     r`   Úset_completer_frameÚ$InteractiveShell.set_completer_frameh	  sG   € æØ',§~¡~ˆD�N‰NÔ$Ø.3¯o©oˆD�N‰NÕ+à'+§|¡|ˆD�N‰NÔ$Ø.2×.AÑ.AˆD�N‰NÕ+re   c                 óœ  • SSK Jn  [        R                  " U U UR	                  U 5      S9U l        U R                  R                  U R
                  5        U R
                  R                  U l	        U R                  UR                  UR                  UR                  UR                  UR                  UR                  UR                   UR"                  UR$                  UR&                  UR(                  UR*                  UR,                  UR.                  5        U R                  UR0                  5        U R
                  nUR3                  SS5        UR3                  SS5        UR3                  SS	5        UR3                  S
SS5        UR3                  SSS5        UR3                  SSS5        U R5                  SU R6                  5        g )Nr   )r¿  )rÌ  rª  Úuser_magicsÚedÚeditÚhistÚhistoryÚrepÚrecallÚSVGÚsvgÚcellÚHTMLÚhtmlr�   Ú	writefiler™  )ÚIPython.corer¿  r!   ÚMagicsManagerÚ
UserMagicsr¾  r9  rÚ  r`  Úregister_magicsÚ
AutoMagicsÚBasicMagicsÚ
CodeMagicsÚConfigMagicsÚDisplayMagicsÚExecutionMagicsÚExtensionMagicsÚHistoryMagicsÚLoggingMagicsÚNamespaceMagicsÚOSMagicsÚPackagingMagicsÚPylabMagicsÚScriptMagicsÚAsyncMagicsÚregister_aliasrÇ  r™  )r•   r©  Úmmans      r`   rW  ÚInteractiveShell.init_magicsu	  si  € Ý,Ü#×1Ò1¸Ø*.Ø/0¯|©|¸DÓ/AñCˆÔð 	×Ñ×!Ñ! $×"5Ñ"5Ô6ð  $×2Ñ2×;Ñ;ˆÔà×Ñ˜QŸ\™\¨1¯=©=¸!¿,¹,Ø�N‰N˜AŸO™O¨Q×->Ñ->Ø×Ñ˜qŸ™°·±Ø×Ñ˜qŸz™z¨1×+<Ñ+<Ø�M‰M˜1Ÿ>™>ô		
ð 	×Ñ˜QŸ]™]Ô+ð ×"Ñ"ˆð 	×Ñ˜D &Ô)Ø×Ñ˜F IÔ.Ø×Ñ˜E 8Ô,Ø×Ñ˜E 5¨&Ô1Ø×Ñ˜F F¨FÔ3Ø×Ñ˜F K°Ô8ð
 	×Ñ˜H d§k¡kÕ2re   r±  c                 ó8   • U R                   R                  XUS9  g )N)Ú
magic_kindÚ
magic_name)r¾  Úregister_function)r•   ÚfuncrÕ  rÖ  s       r`   Úregister_magic_functionÚ(InteractiveShell.register_magic_function˜	  s    € à×Ñ×-Ñ-Ø°Jð 	.ò 	
re   rÖ  c                óÞ   • U R                   U R                  S.U   nU" U5      nUb  U$ U R                  R                  R	                  U5      nUc  gU R                  SU5        U" U5      nU$ )a  
Try to find a magic potentially lazy-loading it.

Parameters
----------

type_: "line"|"cell"
    the type of magics we are trying to find/lazy load.
magic_name: str
    The name of the magic we are trying to find/lazy load


Note that this may have any side effects
)r±  rº  NÚload_ext)r  r  r¾  Úlazy_magicsr  rÇ  )r•   Útype_rÖ  ÚfinderÚfnÚlazyÚress          r`   Ú_find_with_lazy_loadÚ%InteractiveShell._find_with_lazy_loadž	  sv   € ð ×.Ñ.¸×8LÑ8LÑMÈeÑTˆÙ�JÓˆØ‰>ØˆIØ×"Ñ"×.Ñ.×2Ñ2°:Ó>ˆØ‰<Øà×Ñ˜J¨Ô-Ù�ZÓ ˆØˆ
re   c                 óÂ  • U R                  SU5      nUcO  U R                  R                  R                  U5      nU(       a#  U R	                  SU5        U R                  U5      nUc,  U R                  U5      nSnUc  SOSU-  n[        XqU4-  5      eUn	[        U[        R                  S5      (       a  Un
OU R                  X)5      n
U
/n0 n[        USS5      (       a  U R                  U	5      US	'   U R                     U" U0 UD6nSSS5        [        U[        R                  S5      (       a  [        R                   " U
5      (       a  gW$ ! , (       d  f       NL= f)
am  Execute the given line magic.

Parameters
----------
magic_name : str
    Name of the desired magic function, without '%' prefix.
line : str
    The rest of the input line as a single string.
_stack_depth : int
    If run_line_magic() is called from magic() then _stack_depth=2.
    This is added to ensure backward compatibility for use of 'get_ipython().magic()'
r±  NrÜ  z'Line magic function `%%%s` not found%s.r‘   z= (But cell magic `%%%%%s` exists, did you mean that instead?)FÚneeds_local_scopeÚlocal_ns)rã  r¾  rÝ  r  rÇ  r  r  r1   rG  r!   ÚMAGIC_NO_VAR_EXPAND_ATTRÚ
var_expandÚget_local_scoperÎ  ÚMAGIC_OUTPUT_CAN_BE_SILENCEDr.   Úsemicolon_at_end_of_expression)r•   rÖ  r±  Ú_stack_depthrà  rá  ÚcmÚetplÚextraÚstack_depthÚmagic_arg_srï   rð   rç   s                 r`   rÇ  ÚInteractiveShell.run_line_magic¹	  sU  € ð ×&Ñ& v¨zÓ:ˆØ‰:Ø×&Ñ&×2Ñ2×6Ñ6°zÓBˆDÞØ×#Ñ# J°Ô5Ø×)Ñ)¨*Ó5�Ø‰:Ø×%Ñ% jÓ1ˆBØ<ˆDØ™*‘Bð ,BØDNñ,OˆEä˜T°Ð$7Ñ7Ó8Ð8ð 'ˆKÜ�rœ5×9Ñ9¸5×AÑAà"‘à"Ÿo™o¨dÓ@�à�=ˆDØˆFä�rÐ.°×6Ñ6Ø%)×%9Ñ%9¸+Ó%F��zÑ"Ø×"Ó"Ù˜TÐ, VÑ,�÷ #ô �rœ5×=Ñ=¸u×EÑEÜ×=Ò=¸k×JÑJØàˆM÷ #Õ"ús   Ä	EÅ
Ec                 óH   • [         R                  " US-   5      R                  $ )zsGet local scope at given stack depth.

Parameters
----------
stack_depth : int
    Depth relative to calling frame
rr   )r“  rÞ  rá  )r•   rñ  s     r`   rê  Ú InteractiveShell.get_local_scopeð	  s   € ô �}Š}˜[¨1™_Ó-×6Ñ6Ð6re   c                 óÒ  • U R                  SU5      nUcC  U R                  U5      nSnUc  SOSR                  U5      n[        UR                  X5      5      eUS:X  aB  SR                  U5      nU R                  U5      b  USR                  U5      -  n[        U5      eSn	[	        U[
        R                  S	5      (       a  Un
OU R                  X)5      n
0 n[	        US
S	5      (       a  U R                  US'   U R                     X£4nU" U0 UD6nSSS5        [	        U[
        R                  S	5      (       a  [        R                  " U5      (       a  gW$ ! , (       d  f       NL= f)a  Execute the given cell magic.

Parameters
----------
magic_name : str
    Name of the desired magic function, without '%' prefix.
line : str
    The rest of the first input line as a single string.
cell : str
    The body of the cell as a (possibly multiline) string.
rº  Nz Cell magic `%%{0}` not found{1}.r‘   z; (But line magic `%{0}` exists, did you mean that instead?)z2%%{0} is a cell magic, but the cell body is empty.z- Did you mean the line magic %{0} (single %)?rí   Fræ  rç  )rã  r  r®  r1   rG  r!   rè  ré  r§   rÎ  rë  r.   rì  )r•   rÖ  r±  rº  rà  Úlmrï  rð  Úmessagerñ  rò  rð   rï   rç   s                 r`   Úrun_cell_magicÚInteractiveShell.run_cell_magicú	  sZ  € ð ×&Ñ& v¨zÓ:ˆØ‰:Ø×%Ñ% jÓ1ˆBØ5ˆDØ™*‘Bð ,:ß:@¹&ÀÓ:Lð ä˜TŸ[™[¨Ó;Ó<Ð<Ø�R‹ZØJ×QÑQÐR\Ó]ˆGØ×#Ñ# JÓ/Ñ;ØÐJ×QÑQÐR\Ó]Ñ]�Ü˜WÓ%Ð%ð
 ˆKÜ�rœ5×9Ñ9¸5×AÑAà"‘à"Ÿo™o¨dÓ@�ØˆFÜ�rÐ.°×6Ñ6Ø%)§\¡\��zÑ"à×"Ó"Ø#Ð*�Ù˜TÐ, VÑ,�÷ #ô �rœ5×=Ñ=¸u×EÑEÜ×=Ò=¸d×CÑCØàˆM÷ #Õ"ús   ÄEÅ
E&c                 óR   • U R                   R                  S   R                  U5      $ )zMFind and return a line magic by name.

Returns None if the magic isn't found.r±  ©r¾  r¿  r  ©r•   rÖ  s     r`   r  Ú InteractiveShell.find_line_magic-
  ó&   € ð ×"Ñ"×)Ñ)¨&Ñ1×5Ñ5°jÓAÐAre   c                 óR   • U R                   R                  S   R                  U5      $ )zMFind and return a cell magic by name.

Returns None if the magic isn't found.rº  rü  rý  s     r`   r  Ú InteractiveShell.find_cell_magic3
  rÿ  re   c                 óR   • U R                   R                  U   R                  U5      $ )zZFind and return a magic of the given type by name.

Returns None if the magic isn't found.rü  )r•   rÖ  rÕ  s      r`   Ú
find_magicÚInteractiveShell.find_magic9
  s&   € ð ×"Ñ"×)Ñ)¨*Ñ5×9Ñ9¸*ÓEÐEre   c                 óÂ   • SSK Jn  [        U[        5      (       a  UR	                  U5      n[        X#R                  5      (       d  [        S5      eX R                  U'   g)zãDefine a new macro

Parameters
----------
name : str
    The name of the macro.
themacro : str or Macro
    The action to do upon invoking the macro.  If a string, a new
    Macro object is created by passing the string to it.
r   )Úmacroz-A macro must be a string or a Macro instance.N)r¾  r  r  r¿   r;   r{   r§   )r•   rÑ   Úthemacror  s       r`   Údefine_macroÚInteractiveShell.define_macroC
  sI   € õ 	'ä�h¤×$Ñ$Ø—{‘{ 8Ó,ˆHÜ˜(§K¡K×0Ñ0ÜÐLÓMÐMØ%�‰�TÒre   c                 óö   • UR                  5       R                  S5      (       a  [        S5      e[        U R	                  USS95      nX R
                  S'   U R                  (       a  US:w  a  [        X!5      egg)zúCall the given cmd in a subprocess, piping stdout/err

Parameters
----------
cmd : str
    Command to execute (can not end in '&', as background processes are
    not supported.  Should not be a command that expects input
    other than simple text.
Ú&ú#Background processes not supported.rr   ©ÚdepthÚ
_exit_coder   N)Úrstriprõ  ÚOSErrorrP   ré  r§   Úsystem_raise_on_errorr   )r•   rÅ  Ú	exit_codes      r`   Úsystem_pipedÚInteractiveShell.system_piped[
  sr   € ð �:‰:‹<× Ñ  ×%Ñ%ô Ð?Ó@Ð@ô
 ˜4Ÿ?™?¨3°a˜?Ð8Ó9ˆ	Ø%.�‰�\Ñ"ð ×%×%¨)°q«.Ü$ YÓ4Ð4ð +9Ð%re   c                 óJ  • U R                  USS9nUS:X  a  SnOUR                  5       S   nSnX#;   a%  [        R                  " SR	                  U5      5        [
        R                  S:X  a;  SSKJn  U" 5        nUb
  S
U< SU< 3n [        R                  " U5      nS	S	S	5        OC[        R                  R!                  SS	5      n ["        R$                  " USUS9nUS:”  a  US-
  * nWU R&                  S'   U R(                  (       a  US:w  a  [+        Xa5      eg	g	! [         a.    [        SU R                  5       -   [
        R                  S9  Sn N¶f = f! , (       d  f       N|= f! [         a.    [        SU R                  5       -   [
        R                  S9  Sn NÂf = f)zµCall the given cmd in a subprocess using os.system on Windows or
subprocess.call using the system shell on other platforms.

Parameters
----------
cmd : str
    Command to execute.
rr   r  r‘   r   )ÚpipÚcondaÚcdzhYou executed the system command !{0} which may not work as expected. Try the IPython magic %{0} instead.rÿ  )ÚAvoidUNCPathNz"pushd z &&"r’   rM  éþÿÿÿÚSHELLT)rÌ  r  é‚   é€   r  )ré  rÝ  Úwarningsr   r®  r“  r  ÚIPython.utils._process_win32r  r0  rP   r{  r:  rg  r  r  r  Ú
subprocessÚcallr§   r  r   )r•   rÅ  Úmain_cmdÚhas_magic_alternativesr  r1  Úecr  s           r`   Ú
system_rawÚInteractiveShell.system_raww
  s{  € ð �o‰o˜c¨ˆoÐ+ˆà�"‹9Ø‰Hà—y‘y“{ 1‘~ˆHØ!7ÐàÓ-Ü�MŠMðGç‘&˜Ó"ô	ô �<‰<˜7Ó"ÝAÙ” 4ØÒ#Û/3²SÐ9�CðÜŸš 3›�B÷	  �ô$ Ÿ™Ÿ™¨°Ó6ˆJðä—_’_ S°ÀÑL�ð
 �C‹xØ˜C‘x�[�ð &(ˆ�‰�\Ñ"ð ×%×%¨"°«'Ü$ RÓ-Ð-ð +2Ð%øôA )ó Ü˜$ ×!8Ñ!8Ó!:Ñ:ÄÇÁÒLØ’Bðú÷  •ûô, %ó ä�d˜T×4Ñ4Ó6Ñ6¼S¿Z¹ZÒHØ’ðús<   Á:EÂ	DÃ	E* Ä5EÅEÅEÅEÅ
E'Å*5F"Æ!F"c                 ó�  • UR                  5       R                  S5      (       a  [        S5      eU R                  XS-   S9nU R                  (       a;  [        U5      u  pVnU(       d  UOXV-   nXpR                  S'   US:w  a  [        Xq5      eO[        U5      nU(       a  [        UR                  5       5      n	U	$ [        U5      n	U	$ )aÛ  Get output (possibly including stderr) from a subprocess.

Parameters
----------
cmd : str
    Command to execute (can not end in '&', as background processes are
    not supported.
split : bool, optional
    If True, split the output into an IPython SList.  Otherwise, an
    IPython LSString is returned.  These are objects similar to normal
    lists and strings, with a few convenience attributes for easier
    manipulation of line-based output.  You can use '?' on them for
    details.
depth : int, optional
    How many frames above the caller are the local variables which should
    be expanded in the command string? The default (0) assumes that the
    expansion variables are in the stack frame calling this function.
r  r  rr   r  r  r   )r  rõ  r  ré  r  rN   r§   r   rO   rU   Ú
splitlinesrT   )
r•   rÅ  rÝ  r  Úexpanded_cmdÚout_strÚerr_strr  Úout_combinedÚouts
             r`   rO   ÚInteractiveShell.getoutput¾
  sÀ   € ð& �:‰:‹<× Ñ  ×%Ñ%äÐ?Ó@Ð@ð —‘ s¸±'�Ð:ˆØ×%×%ä*?ÀÓ*MÑ'ˆG˜iæ*1™7°wÑ7HˆLØ)2�L‰L˜Ñ&ð ˜A‹~Ü(¨Ó8Ð8ð ô % \Ó2ˆLæÜ˜×/Ñ/Ó1Ó2ˆCð ˆ
ô ˜<Ó(ˆCØˆ
re   c                 ój   • [        X S9U l        U R                  R                  U R                  5        g ©Nr4  )r'   r»  r9  rÚ  rß   s    r`   rX  ÚInteractiveShell.init_aliasï
  s)   € Ü)°ÑBˆÔØ×Ñ×!Ñ! $×"4Ñ"4Õ5re   c                 ój   • [        X S9U l        U R                  R                  U R                  5        g r1  )r4   Úextension_managerr9  rÚ  rß   s    r`   r[  Ú'InteractiveShell.init_extension_manager÷
  s)   € Ü!1¸Ñ!JˆÔØ×Ñ×!Ñ! $×"8Ñ"8Õ9re   c                 ój   • [        U S9U l        U R                  R                  U R                  5        g rØ  )r<   Úpayload_managerr9  rÚ  rß   s    r`   r\  ÚInteractiveShell.init_payloadÿ
  s)   € Ü-°TÑ:ˆÔØ×Ñ×!Ñ! $×"6Ñ"6Õ7re   c                 ó    • [        X S9U l        U R                  R                  U R                  5        U R                  R                  U l        g r1  )r=   Úprefilter_managerr9  rÚ  Úprefilter_linesr$   rß   s    r`   rE  ÚInteractiveShell.init_prefilter  s>   € Ü!1¸Ñ!JˆÔØ×Ñ×!Ñ! $×"8Ñ"8Ô9ð ×/Ñ/×?Ñ?ˆ�re   c                 óD   • U R                   (       d  g[        SU-   5        g)aA  Print to the screen the rewritten form of the user's command.

This shows visual feedback by rewriting input lines that cause
automatic calling to kick in, like::

  /f x

into::

  ------> f(x)

after the user's input prompt.  This helps the user understand that the
input line was transformed automatically by IPython.
Nz------> )Úshow_rewritten_inputr:  ©r•   rÅ  s     r`   Úauto_rewrite_inputÚ#InteractiveShell.auto_rewrite_input  s   € ð ×(×(Øô 	ˆj˜3ÑÕre   c                 ó¬   • U R                  5       u  pnU R                  R                  X5      nSUUR                  [        R
                  " U5      S.nU$ )z:return simple exception dict

for use in user_expressions
r   )Ústatusre  Úenamerƒ  )r^  r«  rg  rk   rG   Úsafe_unicode)r•   rB  rƒ  rC  rG  r´  s         r`   Ú_user_obj_errorÚ InteractiveShell._user_obj_error(  sX   € ð !×.Ñ.Ó0Ñˆ�rØ× Ñ ×3Ñ3°EÓBˆð ØØ—^‘^Ü×,Ò,¨VÓ4ñ	
ˆð ˆre   c                 óL   • U R                   R                  U5      u  p#SUUS.nU$ )zBformat a user object to display dict

for use in user_expressions
Úok)rC  ÚdataÚmetadata)rÙ  r®  )r•   r–   rJ  Úmdr—   s        r`   Ú_format_user_objÚ!InteractiveShell._format_user_obj:  s3   € ð ×)Ñ)×0Ñ0°Ó5‰ˆàØØñ
ˆð
 ˆre   c                 óÚ   • 0 nU R                   nU R                  nUR                  5        H%  u  pV U R                  [	        XdU5      5      nXrU'   M'     U$ !   U R                  5       n N= f)a€  Evaluate a dict of expressions in the user's namespace.

Parameters
----------
expressions : dict
    A dict with string keys and string values.  The expression values
    should be valid Python expressions, each of which will be evaluated
    in the user namespace.

Returns
-------
A dict, keyed like the input expressions dict, with the rich mime-typed
display_data of each value.
)r§   r`  r"  rM  rß  rF  )r•   Úexpressionsr.  r§   Ú	global_nsÚkeyÚexprr—   s           r`   Úuser_expressionsÚ!InteractiveShell.user_expressionsH  ss   € ð ˆØ—,‘,ˆØ×'Ñ'ˆ	à$×*Ñ*Ö,‰IˆCð/Ø×-Ñ-¬d°4ÀGÓ.LÓM�ð �‹Hñ -ð ˆ
øð/Ø×,Ñ,Ó.’ús   ±AÁA*c                 ó�   • U R                      [        XR                  U R                  5        SSS5        g! , (       d  f       g= f)z4Execute a normal python statement in user namespace.N)rÎ  Úexecr`  r§   r?  s     r`   ÚexÚInteractiveShell.exg  s+   € à×ÓÜ�×)Ñ)¨4¯<©<Ô8÷ ×Öús	   �!7·
Ac                 ó�   • U R                      [        XR                  U R                  5      sSSS5        $ ! , (       d  f       g= f)zUEvaluate python expression expr in user namespace.

Returns the result of evaluation
N)rÎ  rß  r`  r§   )r•   rS  s     r`   ÚevÚInteractiveShell.evl  s-   € ð
 ×ÓÜ˜×1Ñ1°4·<±<Ó@÷ ××ús	   � 7·
A)Úexit_ignoreÚraise_exceptionsrÊ   c                óÀ  • [        U5      R                  5       R                  5       n UR                  S5          SSS5        [        UR                  5      n[        U5         U R                      US-   SS u  px[        R                  " XUU(       a  U R                  OS5        SSS5        SSS5        g! , (       d  f       Nƒ= f!   [	        SU-  5         g= f! [         a9  n	U	R                  (       a  U(       a  e U(       d  U R                  SS9   Sn	A	NuSn	A	f  U(       a  e U R                  SS9   N“= f! , (       d  f       Nœ= f! , (       d  f       g= f)	aÂ  A safe version of the builtin execfile().

This version will never throw an exception, but instead print
helpful error messages to the screen.  This only works on pure
Python files with the .py extension.

Parameters
----------
fname : string
    The name of the file to be executed.
*where : tuple
    One or two namespaces, passed to execfile() as (globals,locals).
    If only one is given, it is passed as both.
exit_ignore : bool (False)
    If True, then silence SystemExit for non-zero status (it is always
    silenced for zero status, as it is so common).
raise_exceptions : bool (False)
    If True raise exceptions everywhere. Meant for testing.
shell_futures : bool (False)
    If True, the code will share future statements with the interactive
    shell. It will both be affected by previous __future__ imports, and
    any __future__ imports in the code will affect the shell. If False,
    __future__ imports are not shared in either direction.

ÚrbNú,Could not open file <%s> for safe execution.r…   rí   T©ri  rL  )r   Ú
expanduserrú  r   r   r¿   rª  rR   rÎ  rG   Úexecfiler…  Ú
SystemExitÚcoderW  )
r•   Úfnamer]  r^  rÊ   ÚwhereÚdnameÚglobÚlocrC  s
             r`   Úsafe_execfileÚInteractiveShell.safe_execfilet  s  € ô4 �U“×&Ñ&Ó(×0Ñ0Ó2ˆð	Ø—‘˜DÕ!Ø÷ "ô �E—L‘LÓ!ˆä! %Õ(¨$×*;Ó*;ð0Ø" XÑ-¨r°Ð2‘	�Ü×"Ò"Ø Þ$1�D—L’L°tô=÷ +<×(Ð(÷ "Õ!ûð	ÜÐ?À%ÑGÔHÙûô ó @ð —;—;Þ'ØÞ&Ø×*Ñ*¸$Ð*Ñ?ÿøð0Þ#Øà×"Ñ"¨QÐ"Ó/ú÷3 +<Õ*;ú×(Õ(úso   ©C
 ºB9¼C
 Á$EÁ1D>Á35CÂ(EÂ9
CÃC
 ÃC
 Ã
CÃ
D;Ã)/DÄD>ÄD;Ä9D>Ä>
E	ÅEÅ
Ec                 óL  ^• [        T5      R                  5       R                  5       m TR                  S5          SSS5        [        TR                  5      nU4S jn[        U5          U" 5        H@  nU R                  USUS9nU(       a  UR                  5         M-  UR                  (       a  M@    O    SSS5        g! , (       d  f       N‹= f!   [	        ST-  5         g= f!   U(       a  e U R                  5         [	        ST-  5         NY= f! , (       d  f       g= f)aS  Like safe_execfile, but for .ipy or .ipynb files with IPython syntax.

Parameters
----------
fname : str
    The name of the file to execute.  The filename must have a
    .ipy or .ipynb extension.
shell_futures : bool (False)
    If True, the code will share future statements with the interactive
    shell. It will both be affected by previous __future__ imports, and
    any __future__ imports in the code will affect the shell. If False,
    __future__ imports are not shared in either direction.
raise_exceptions : bool (False)
    If True raise exceptions everywhere.  Meant for testing.
r`  Nra  c               3   óö   >#   • TR                   S:X  aS  SSKJn   U " TSS9nUR                  (       d  gUR                   H#  nUR                  S:X  d  M  UR
                  v •  M%     gTR                  SS	9v •  g7f)
z,generator for sequence of code blocks to runz.ipynbr   )Úreadé   )Ú
as_versionNrf  r~  ©r•  )ÚsuffixÚnbformatrp  ÚcellsÚ	cell_typeÚsourceÚ	read_text)rp  Únbrº  rg  s      €r`   Ú	get_cellsÚ5InteractiveShell.safe_execfile_ipy.<locals>.get_cells×  sb   øé € à�|‰|˜xÓ'Ý)Ù˜%¨AÑ.�Ø—x—xØØŸHœH�DØ—~‘~¨Õ/Ø"Ÿk™kÔ)ò %ð —o‘o¨w�oÐ7Ó7ùs   ƒAA9Á%A9T)rÉ   rÊ   z$Unknown failure executing file: <%s>)r   rc  rú  r   r   r¿   rª  rR   Úrun_cellrã   rà   rW  )r•   rg  rÊ   r^  ri  r{  rº  rç   s    `      r`   Úsafe_execfile_ipyÚ"InteractiveShell.safe_execfile_ipy¸  sñ   ø€ ô  �U“×&Ñ&Ó(×0Ñ0Ó2ˆð	Ø—‘˜DÕ!Ø÷ "ô �E—L‘LÓ!ˆõ	8ô " %Õ(ðEÙ%žK�DØ!Ÿ]™]¨4¸ÈM˜]ÐZ�FÞ'Ø×*Ñ*Ö,Ø#Ÿ^Ÿ^™^Ùò (÷ )Ð(÷1 "Õ!ûð	ÜÐ?À%ÑGÔHÙûð8EÞ#ØØ×"Ñ"Ô$ÜÐ;¸eÑCÖDú÷ )Õ(ús^   ªC »C½C Á+DÁ-AC(Â4C(Â5DÂ6C(Â8DÃ
CÃC ÃC ÃC%Ã((DÄDÄ
D#c                 ó   •   UR                  [        R                  " [        U5      SSS95        g! [         a  nUR
                  (       a  e  SnAgSnAff = f!   U R                  5         [        SU-  5         g= f)aH  A safe version of runpy.run_module().

This version will never throw an exception, but instead print
helpful error messages to the screen.

`SystemExit` exceptions with status code 0 or None are ignored.

Parameters
----------
mod_name : string
    The name of the module to be executed.
where : dict
    The globals namespace.
r    T)Úrun_nameÚ	alter_sysNz&Unknown failure executing module: <%s>)r¥  ÚrunpyÚ
run_moduler¿   re  rf  rW  r   )r•   Úmod_namerh  rC  s       r`   Úsafe_run_moduleÚ InteractiveShell.safe_run_moduleò  st   € ð	FðØ—‘Ü×$Ò$¤S¨£]¸ZØ/3ñ5õøô ó Ø—;—;Øô ûðûð	FØ×ÑÔ ÜÐ9¸HÑDÖEús&   ƒ.2 ²
A¼AÁA ÁAÁA Á A=Úchannel)r  r  c              #   ó˜   ^ ^^^#   • [        [        T5      nUR                  mT R                  mUUUU 4S jnX2l        Sv •  TUl        g7f)z÷Capture output of a given standard stream and store it in history.

Uses patching of write method for maximal compatibility,
because ipykernel checks for instances of the stream class,
and stream classes in ipykernel implement more complex logic.
c                 óÌ  >• T
" U /UQ70 UD6n[        TR                  R                  TR                  R                  TR
                  /5      (       a  U$ U (       d  U$ SnTR                  R                  nTS:X  a  SOSnT	U;   a  UT	   nUS   R                  U:X  a  US   nUc   [        US/ 0S9nUT	   R                  U5        UR                  S   R                  U 5        U$ )zGWrite data to both the original destination and the capture dictionary.Nr  Ú
out_streamÚ
err_streamrô  Ústream)Úoutput_typeÚbundle)r  rÞ  Úis_publishingrè  Ú	is_activerc  r¡  ÚoutputsrŽ  r7   rÚ  r�  )rJ  rï   rð   rç   Úoutput_streamÚoutputs_by_counterrŽ  r’  rˆ  rÖ   Úoriginal_writer•   s           €€€€r`   ÚwriteÚ$InteractiveShell._tee.<locals>.write  sþ   ø€ á# DÐ:¨4Ò:°6Ñ:ˆFÜà×$Ñ$×2Ñ2Ø×$Ñ$×.Ñ.Ø×*Ñ*ð÷ñ ð �ÞØ�Ø ˆMØ!%×!5Ñ!5×!=Ñ!=ÐØ*1°XÓ*=™,À<ˆKØÐ"4Ó4Ø,¨_Ñ=�Ø˜2‘;×*Ñ*¨kÓ9Ø$+¨B¡K�MØÑ$Ü -Ø +°X¸r°Nñ!�ð # ?Ñ3×:Ñ:¸=ÔIà× Ñ  Ñ*×1Ñ1°$Ô7ØˆMre   N)rG  r“  r–  rÖ   )r•   rˆ  r�  r–  rÖ   r•  s   ``  @@r`   Ú_teeÚInteractiveShell._tee  sC   ûé € ô œ˜gÓ&ˆØŸ™ˆØ×.Ñ.ˆ÷	ð 	ð: ŒÛØ%ˆ�ùs   †AA
c           	      óÜ  • SnU R                  SS9   U R                  SS9    U R                  XX4U5      nU R                  R                  S5        U(       d  U R                  R                  SU5        SSS5        SSS5        U$ ! U R                  R                  S5        U(       d  U R                  R                  SU5        f f = f! , (       d  f       N\= f! , (       d  f       U$ = f)a¸  Run a complete IPython cell.

Parameters
----------
raw_cell : str
    The code (including IPython code such as %magic functions) to run.
store_history : bool
    If True, the raw and translated cell will be stored in IPython's
    history. For user code calling back into IPython's machinery, this
    should be set to False.
silent : bool
    If True, avoid side-effects, such as implicit displayhooks and
    and logging.  silent=True forces store_history=False.
shell_futures : bool
    If True, the code will share future statements with the interactive
    shell. It will both be affected by previous __future__ imports, and
    any __future__ imports in the code will affect the shell. If False,
    __future__ imports are not shared in either direction.
cell_id : str, optional
    A unique identifier for the cell. This is used in the messaging system
    to match output with execution requests and for tracking cell execution
    history across kernel restarts. In notebook contexts, this is typically
    a UUID generated by the frontend. If None, the kernel may generate an
    internal identifier or proceed without cell tracking capabilities.
Returns
-------
result : :class:`ExecutionResult`
Nr  )rˆ  r  Úpost_executeÚpost_run_cell)r˜  Ú	_run_cellr]  r^  )r•   rÆ   rÈ   rÉ   rÊ   rË   rç   s          r`   r}  ÚInteractiveShell.run_cell;  sÅ   € ðH ˆØ�Y‰Y˜xˆYÒ(¨$¯)©)¸H¨)Ò*EðAØŸ™Ø¨VÀGó�ð —‘×#Ñ# NÔ3ÞØ—K‘K×'Ñ'¨¸Ô@÷ +F×(ð ˆøð —‘×#Ñ# NÔ3ÞØ—K‘K×'Ñ'¨¸Õ@ð ú÷ +FÕ*Eú×(Ô(ð ˆús9   ’C¢C¤B·>CÁ5CÂACÃCÃ
C	ÃCÃ
C+rÆ   rÈ   rÉ   rÊ   rË   c           
      óö  • Sn U R                  U5      nUc   eU R	                  UUUUUUUS9nU R
                  (       a  U R
                  n	O)U R                  UUUS9(       a  U R                  n	O[        n	 U	" U5      n
U
$ ! [         a    Un[        R                  " 5       n N�f = f! [         aF  n [        UUUUUUS9n[        U5      n
Xºl        U R                  SS9   SnAU
$ !     SnAW
$ = fSnAff = f)z/Internal method to run a complete IPython cell.N)rÈ   rÉ   rÊ   rÇ   Úpreprocessing_exc_tuplerË   ©rÇ   r   ©rÇ   T©rj  )Útransform_cellr³  r“  r´  Úrun_cell_asyncrb  Úshould_run_asyncr  ru   rë   rÃ   rÕ   rØ   rW  )r•   rÆ   rÈ   rÉ   rÊ   rË   r   rÇ   Úcoror  rç   rÏ  rÛ   s                r`   r�  ÚInteractiveShell._run_cellk  s@  € ð #'Ðð	5Ø#×2Ñ2°8Ó<Ðð
  Ñ+Ð+Ð+Ø×"Ñ"ØØ'ØØ'Ø-Ø$;Øð #ð 
ˆð ××Ø×%Ñ%‰FØ×"Ñ"ØØ-Ø$;ð #ö 
ð
 ×%Ñ%‰Fä(ˆFð	Ù˜D“\ˆFð  ˆøô_ ó 	5Ø'ÐÜ&)§l¢l£nÒ#ð	5ûô@ ó 	ðÜ$ØØ!ØØ!ØØ%5ñ�ô )¨Ó.�Ø'(Ô$Ø×"Ñ"¸Ð"Õ>ð ˆøðÜØˆþð	ús;   „B Á7B( Â!B%Â$B%Â(
C8Â3.C'Ã'C0Ã)C3Ã0C3Ã3C8r¡  c                óÒ   • U R                   (       d  gUb  gUb   eUc-  [        R                  " S[        SS9   U R	                  U5      nOUn[        U5      $ ! [
         a     gf = f)a  Return whether a cell should be run asynchronously via a coroutine runner

Parameters
----------
raw_cell : str
    The code to be executed

Returns
-------
result: bool
    Whether the code needs to be run with a coroutine runner or not
.. versionadded:: 7.0
Fzî`should_run_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.rí   r›  )r  r  r   rž  r¤  r³  rv   )r•   rÆ   rÇ   r   rº  s        r`   r¦  Ú!InteractiveShell.should_run_async«  s   € ð  �~�~ØØ"Ñ.ØØ&Ñ.Ð.Ð.ØÑ#Ü�MŠMð+ô #Øò	ðØ×*Ñ*¨8Ó4‘ð $ˆDÜ Ó%Ð%øô ó ñ ðús   ºA Á
A&Á%A&)rÇ   r   rË   rÇ   r   c          
   ƒ   óÚ  ^ ^^^#   • [        UTUUUUS9n[        U5      mU(       a  UR                  5       (       a  ST l        TT l        T$ U(       a  SmT R
                  =mTl        T(       a  T =R
                  S-  sl        UUU U4S jn	T R                  R                  S5        U(       d  T R                  R                  SU5        Uc/  [        R                  " S	[        S
S9   T R                  U5      n
SnOUc  Un
OUn
SU
;   a  SU
;   a  SmT(       a+  T R                  c   eT R                  R!                  TX¡5        U(       d  T R"                  R%                  X¡5        Ub  T R'                  U5        U	" US   5      $ U(       a  T R(                  OT R+                  5       nT R,                     UR/                  U
TUS9nT R0                      UR3                  X¬S9n T RI                  U5      nTT RL                  l'        U(       a  SOT RP                  nT RS                  URT                  UUUTS9I Sh  v•N nU(       + T l        TT l        ST RL                  l'        SSS5        SSS5        T(       am  T R                  c   eT R                  RW                  T5        TRX                  (       a2  T R[                  TRX                  5      T R                  R\                  T'   T$ ! [         a    [        R                  " 5       nUn
 GN
f = f! T R4                   aP  n[        R                  " 5       u  nnnT R7                  UUU5        U	" U5      s SnAsSSS5        sSSS5        $ SnAf[8         a4  nT R;                  5         U	" U5      s SnAsSSS5        sSSS5        $ SnAf[<        [>        [@        [B        [D        4 a4  nT RG                  5         U	" U5      s SnAsSSS5        sSSS5        $ SnAff = f! [J         a4  nT R'                  5         U	" U5      s SnAsSSS5        sSSS5        $ SnAff = f GN! , (       d  f       GNé= f! , (       d  f       GNó= f7f)aÀ  Run a complete IPython cell asynchronously.

Parameters
----------
raw_cell : str
  The code (including IPython code such as %magic functions) to run.
store_history : bool
  If True, the raw and translated cell will be stored in IPython's
  history. For user code calling back into IPython's machinery, this
  should be set to False.
silent : bool
  If True, avoid side-effects, such as implicit displayhooks and
  and logging.  silent=True forces store_history=False.
shell_futures : bool
  If True, the code will share future statements with the interactive
  shell. It will both be affected by previous __future__ imports, and
  any __future__ imports in the code will affect the shell. If False,
  __future__ imports are not shared in either direction.
transformed_cell: str
  cell that was passed through transformers
preprocessing_exc_tuple:
  trace if the transformation failed.

Returns
-------
result : :class:`ExecutionResult`

.. versionadded:: 7.0
r¢  TFrr   c                 ó²   >• T(       a9  TR                   (       a(  TR                  U 5      TR                   R                  T'   U Tl        STl        TTl        T$ rm  )r¡  Ú_format_exception_for_storageÚ
exceptionsr×   r³  r´  )r—   rÖ   rç   r•   rÈ   s    €€€€r`   r×   Ú:InteractiveShell.run_cell_async.<locals>.error_before_exec  sW   ø€ ÞØ×'×'ð ×:Ñ:¸5ÓAð ×(Ñ(×3Ñ3Ø'ñð (-ˆFÔ$Ø,1ˆDÔ)Ø)/ˆDÔ&ØˆMre   r[  Úpre_run_cellNzì`run_cell_async` will not call `transform_cell` automatically in the future. Please pass the result to `transformed_cell` argument and any exception that happen during thetransform in `preprocessing_exc_tuple` in IPython 7.17 and above.rí   r›  zget_ipython().run_line_magic(Úpaste)Úraw_code)rk  r&  )ÚinteractivityÚcompilerrç   )/rÃ   rÕ   Úisspacer³  r´  rÖ   r]  r^  r  r   rž  r¤  r³  r“  r´  r¡  Ústore_inputsrÂ  ÚlogrW  r…  r„  rÎ  Úcacheré  Ú	ast_parserf  rS  ÚIndentationErrorrŠ  ÚOverflowErrorrv  r{   r€   ÚMemoryErrorrw  Útransform_astr0   rè  Úexec_resultÚast_node_interactivityÚrun_ast_nodesÚbodyÚstore_outputrØ   r­  r®  )r•   rÆ   rÈ   rÉ   rÊ   rÇ   r   rË   rÛ   r×   rº  r´  Ú	cell_nameÚcode_astrÏ  rB  r—   rC  r³  Ú
has_raisedrÖ   rç   s   ` `                 @@r`   r¥  ÚInteractiveShell.run_cell_asyncÕ  s  ûé € ôP ØØØØØØ-ñ
ˆô ! Ó&ˆæ˜X×-Ñ-×/Ñ/Ø,0ˆDÔ)Ø)/ˆDÔ&ØˆMæØ!ˆMà37×3GÑ3GÐGˆ˜&Ô0æØ× Ò  AÑ%Õ ÷
	ð 
	ð 	�‰×Ñ˜MÔ*ÞØ�K‰K×Ñ °Ô5àÑ#Ü�MŠMð+ô #Øò	ð/Ø×*Ñ*¨8Ó4�ð
 +/Ñ'à&Ñ.Ø'‘à�ð +¨dÓ2°wÀ$³Ø!ˆMö Ø×'Ñ'Ñ3Ð3Ð3Ø× Ñ ×-Ñ-¨o¸tÔNÞØ�K‰K�O‰O˜DÔ+ð #Ñ.Ø×ÑÐ6Ô7Ù$Ð%<¸QÑ%?Ó@Ð@ö
 $1�4—<’<°d×6IÑ6IÓ6Kˆà×ÓØ Ÿ™ t¨_Àx˜ÐPˆIà×"Ó"ð0Ø'×1Ñ1°$Ð1ÐK�Hð0Ø#×1Ñ1°(Ó;�Hð 06�× Ñ Ô,ö +1¡°d×6QÑ6Q�ð $(×#5Ñ#5°h·m±mÀYØ%2¸XÈfð $6ð $V÷ V�
ð 5?´�Ô-Ø-3�Ô*ð 04�× Ñ Ô,÷O #÷ öX Ø×'Ñ'Ñ3Ð3Ð3ð × Ñ ×-Ñ-¨oÔ>Ø×#×#ð ×6Ñ6°v×7KÑ7KÓLð ×$Ñ$×/Ñ/Ø#ñð ˆøôo ó  Ü*-¯,ª,«.Ð'Ø“ð ûðN ×-Ñ-ó 0Ü'*§|¢|£~Ñ$�E˜5 "Ø—M‘M %¨°Ô3Ù,¨QÓ/Ô/÷ #Ð"÷ Ñûô (ó 0Ø×-Ñ-Ô/Ù,¨QÓ/Ô/÷ #Ð"÷ Ñûô &¤{´JÄ	Ü#ð%ó 0à×(Ñ(Ô*Ù,¨QÓ/Ô/÷ #Ð"÷ Ñûð0ûô %ó 0Ø×&Ñ&Ô(Ù,¨QÓ/Ô/÷+ #Ð"÷ Ñûð,0úòV÷? #Ö"ú÷ Öüs#  †C"Q+Ã)K+ Ã:B;Q+Æ5QÇQÇLÇ%PÇ6AQÈ<QÈ=(QÉ%QÉ-A>Q+Ë+!LÌQ+ÌLÌQ+ÌP Ì#3M.ÍP ÍQÍ	QÍ$
Q+Í.P Í;N*ÎP ÎQÎ	QÎ 
Q+Î*"P ÏO;Ï#P Ï$QÏ(	QÏ1
Q+Ï;P Ð QÐ
QÐP<Ð$QÐ%QÐ)	QÐ2
Q+Ð<QÑQÑ
Q	ÑQÑ
Q(Ñ#Q+c                 ó¬  ^	• [        U5      nUnUR                  n[        U[        [        45      (       a_  U(       a  [        U[        5      (       a   X%l        U(       a  [        R                  " U5      O/ nU R                  R                  XEU5      nOzU[        L a  SU 3/nOjU	4S jm	T	" U5      (       a  [        R                  " XEU5      nO? [        US5      (       a  UR                  5       nOU R                  R                  XEUSS9n UR"                  [%        U5      US.$ !    NÓ= f! [          a    [        R                  " XEU5      n NCf = f)zo
Format an exception's traceback and details for storage, with special handling
for different types of errors.
zUsageError: c                 ó^   >• U c  g[        U [        5      =(       d    T" U R                  5      $ rm  rn  rq  s    €r`   rr  ÚOInteractiveShell._format_exception_for_storage.<locals>.contains_exceptiongroup«  s/   ø€ Ø‘;Ø Ü! #Ô'9Ó:÷ Ñ>UØ—O‘Oó?ð re   rt  rr   rL  )rD  rƒ  re  )r  Ú__traceback__ru  rv  rº  r  rk  re  r†  r¬  rN  r1   Úformat_exceptionrm  rt  r«  r³  rk   r¿   )
r•   Ú	exceptionrk  rj  rB  rƒ  rC  r‡  rG  rr  s
            @r`   r­  Ú.InteractiveShell._format_exception_for_storageŽ  sD  ø€ ô �Y“ˆØˆØ×$Ñ$ˆô �eœkÔ+;Ð<×=Ñ=ÞœJ v¬{×;Ñ;ðØ&.”Oö
 1F”I×(Ò(¨Ô,È2ˆEØ—-‘-×4Ñ4°UÀEÓJ‰Cð ”jÒ Ø! & Ð*Ð+‰Cõñ ' v×.Ñ.ä×0Ò0°ÀÓC‘ðHä˜vÐ';×<Ñ<Ø$×7Ñ7Ó9™ð #×0Ñ0×EÑEØ!¨2¸ð Fð ™ð Ÿ™´3°v³;ÈSÑQÐQøðKÙûô@ !ó Hä#×4Ò4°UÀBÓG’CðHús$   ÁD( Ã!D/ Ã3D/ Ä(D,Ä/!EÅEc                 ót  • U R                   R                  U5      n[        UR                  5       5      S:X  a3  U R                     U R
                  R                  U5      S-   nSSS5        UR                  SS9nU R                   H  nU" U5      nM     SR                  U5      nU$ ! , (       d  f       NK= f)aË  Transform an input cell before parsing it.

Static transformations, implemented in IPython.core.inputtransformer2,
deal with things like ``%magic`` and ``!system`` commands.
These run on all input.
Dynamic transformations, for things like unescaped magics and the exit
autocall, depend on the state of the interpreter.
These only apply to single line inputs.

These string-based transformations are followed by AST transformations;
see :meth:`transform_ast`.
rr   r’   NT)Úkeependsr‘   )	r  r¤  rÏ   r)  rÎ  r:  r;  r"  rB  )r•   rÆ   rº  ÚlinesÚ	transforms        r`   r¤  ÚInteractiveShell.transform_cellÅ  s    € ð ×-Ñ-×<Ñ<¸XÓFˆäˆt�‰Ó Ó! QÓ&à×"Ó"ð ×-Ñ-×=Ñ=¸dÓCÀdÑJ�÷ #ð
 —‘¨�Ð.ˆØ×5Ô5ˆIÙ˜eÓ$ŠEñ 6à�w‰w�u‹~ˆàˆ÷ #Õ"ús   ÁB)Â)
B7c                 ó>  • U R                    H  n UR                  U5      nM     U R                   (       a  [        R                  " U5        U$ ! [         a    e [         a9  n[	        SU< SU< 35        U R                   R                  U5         SnAMŠ  SnAff = f)az  Apply the AST transformations from self.ast_transformers

Parameters
----------
node : ast.Node
    The root node to be transformed. Typically called with the ast.Module
    produced by parsing user input.

Returns
-------
An ast.Node corresponding to the node it was called with. Note that it
may also modify the passed object, so don't rely on references to the
original AST.
zAST transformer z* threw an error. It will be unregistered. N)rù   Úvisitr0   r³  r   ÚremoveÚastÚfix_missing_locations)r•   ÚnodeÚtransformerrÏ  s       r`   r½  ÚInteractiveShell.transform_astã  s‘   € ð  ×0Ô0ˆKð:Ø"×(Ñ(¨Ó.’ñ 1ð × × Ü×%Ò% dÔ+Øˆøô !ó ð Üó :Ýã"¢Að'ôð ×%Ñ%×,Ñ,¨[×9Ò9ûð:ús   ‘AÁBÁ#.BÂBÚnodelistrÃ  c              ƒ   óÚ  #   • U(       d  gUS:X  Ga  [        US   [        5      (       aÿ  US   n[        U[        R                  5      (       a)  [	        UR
                  5      S:X  a  UR
                  S   nO$[        U[        5      (       a  UR                  nOSn[        U[        R                  5      (       ao  [        R                  " [        R                  " UR                  [        R                  " 5       5      5      n[        R                  " U5        UR                  U5        SnSn	US:X  a'  [        US   [        R                  5      (       a  SnOS	nUS	:X  a  U/ pºO(US:X  a
  USS USS pºOUS
:X  a  / UpºO[        SU-  5      e S n/ nU
 H  nUR                  US45        M     U H  nUR                  US45        M     U H£  u  pïUS:X  a  [        U// 5      nOUS:X  a  [        R                   " U/5      nUR#                  U R$                  (       a  ['        [        SS5      OS5         U" WX/5      nU" U5      nSSS5        U R)                  WUWS9I Sh  v•N (       d  M£    g   [+        [,        R.                  S5      (       a
  [1        5         g! , (       d  f       N\= f NJ!   U(       a  [,        R2                  " 5       S   Ul        U R7                  5          g= f7f)aU  Run a sequence of AST nodes. The execution mode depends on the
interactivity parameter.

Parameters
----------
nodelist : list
  A sequence of AST nodes to run.
cell_name : str
  Will be passed to the compiler as the filename of the cell. Typically
  the value returned by ip.compile.cache(cell).
interactivity : str
  'all', 'last', 'last_expr' , 'last_expr_or_assign' or 'none',
  specifying which nodes should be run interactively (displaying output
  from expressions). 'last_expr' will run the last node interactively
  only if it is an expression (i.e. expressions in loops or other blocks
  are not displayed) 'last_expr_or_assign' will run the last expression
  or the last assignment. Other values for this parameter will raise a
  ValueError.

compiler : callable
  A function with the same interface as the built-in compile(), to turn
  the AST nodes into code objects. Default is the built-in compile().
result : ExecutionResult, optional
  An object to store exceptions that occur during execution.

Returns
-------
True if an exception occurred while running code, False if it finished
running.
Nr'  rô  rr   r   r%  Fr$  r&  r#  zInteractivity was %rc                 ób   • [         R                  U R                  -  [         R                  :H  nU$ r…   )ÚinspectÚCO_COROUTINEÚco_flags)rf  Úis_asyncs     r`   ÚcompareÚ/InteractiveShell.run_ast_nodes.<locals>.compareP  s&   € Ü"×/Ñ/°$·-±-Ñ?Ä7×CWÑCWÑW�Ø�re   rW  ÚsingleÚPyCF_ALLOW_TOP_LEVEL_AWAIT©Úasync_T)r  Ú_assign_nodesrÖ  ÚAssignrÏ   ÚtargetsÚ_single_targets_nodesÚtargetÚNameÚExprrÐ   ÚLoadr×  rÚ  r{   rq   r  Úextra_flagsr  rG  Úrun_coder~   r“  r  r:  r´  r×   rW  )r•   rÛ  rÃ  r³  r´  rç   Úasgrì  ÚnnodeÚ_asyncÚto_run_execÚto_run_interactiverâ  Úto_runrØ  r7  Úmodrf  Úasys                      r`   rÀ  ÚInteractiveShell.run_ast_nodes  s‡  é € öL Øð Ð1Ô1Ü˜( 2™,¬×6Ñ6Ø˜r‘l�Ü˜c¤3§:¡:×.Ñ.´3°s·{±{Ó3CÀqÓ3HØ Ÿ[™[¨™^‘FÜ Ô%:×;Ñ;Ø ŸZ™Z‘Fà!�FÜ˜f¤c§h¡h×/Ñ/ÜŸHšH¤S§X¢X¨f¯i©i¼¿º»Ó%DÓE�EÜ×-Ò-¨eÔ4Ø—O‘O EÔ*Ø'ˆMàˆØ˜KÓ'Ü˜( 2™,¬¯©×1Ñ1Ø &‘à &�à˜FÓ"Ø.6¸Ñ+Ø˜fÓ$Ø.6°s¸¨m¸XÀbÀc¸]Ñ+Ø˜eÓ#Ø.0°(Ñ+äÐ3°mÑCÓDÐDð.	ò ð
 ˆFÛ#�Ø—‘˜t V˜nÖ-ñ $ó +�Ø—‘˜t XÐ.Ö/ñ +ó %‘
�Ø˜6“>Ü  $ ¨Ó,‘CØ˜XÓ%ÜŸ/š/¨4¨&Ó1�CØ×)Ñ)à—~—~ô œCÐ!=¸sÔCàõñ
 $ C¨Ó9�DÙ! $›-�C÷ð Ÿ™ t¨V¸C˜Ð@×@×@Ùñ %ô  œŸ™ Q×'Ñ'Ü”ð" ÷;õ úñ Aøð	ö Ü+.¯<ª<«>¸!Ñ+<�Ô(Ø×ÑÔ ÙüsU   ‚F
K+ÆB(J0 È5JÉJ0 É#J.É$J0 É/J0 É0K+É1+J0 ÊK+Ê
J+	Ê'J0 Ê06K(Ë&K+ræ  c             ƒ   ó"  #   • Sn[         R                  U R                  sn[         l        XPl        Sn  U(       a)  [        XR                  U R
                  5      I Sh  v•N   O [        XR                  U R
                  5        U[         l         SnU$  N5! U[         l        f = f! [         a-  nUb  Xrl        U R                  SS9  [        SSS9   SnAU$ SnAf[        R                   a%    [         R                  " 5       u  p‰n
Ub  X’l         U$ U R                   a7    [         R                  " 5       u  p‰n
Ub  X’l        U R                  X‰U
5         U$   Ub  [         R                  " 5       S   Ul        U R                  SS	9   U$ = f7f)
aÇ  Execute a code object.

When an exception occurs, self.showtraceback() is called to display a
traceback.

Parameters
----------
code_obj : code object
  A compiled code object, to be executed
result : ExecutionResult, optional
  An object to store exceptions that occur during execution.
async_ :  Bool (Experimental)
  Attempt to run top-level asynchronous code in a default loop.

Returns
-------
False : successful execution.
True : an error occurred.
Ú__ipython_bottom__TNFrb  z'To exit: use 'exit', 'quit', or Ctrl-D.rr   r›  r£  )r“  r  r<  rß  r`  r§   rW  re  rØ   rW  r   ÚbdbÚBdbQuitr´  rf  rS  )r•   Úcode_objrç   rç  Ú__tracebackhide__Úold_excepthookÚoutflagrÏ  rB  r—   rC  s              r`   rñ  ÚInteractiveShell.run_code€  su  é € ð, 1Ðô *-¯©¸¿¹Ð&ˆœœð -ÔØˆð	ð0ÞÜ˜x×)<Ñ)<¸d¿l¹lÓK×KÑKä˜×#6Ñ#6¸¿¹ÔEð "0”•ð* ˆGØˆñ7 Løð
 "0”•ûÜó 	JØÑ!Ø'(Ô$Ø×Ñ¨dÐÑ3ÜÐ:ÀqÖIð" ˆûô! �{‰{ó 	-Ü"Ÿ|š|›~ÑˆE˜"ØÑ!Ø',Ô$øð ˆð ×%Ñ%ó 	,Ü"Ÿ|š|›~ÑˆE˜"ØÑ!Ø',Ô$Ø�M‰M˜%¨Õ+ð ˆð	;ØÑ!Ü'*§|¢|£~°aÑ'8�Ô$Ø×Ñ°TÐÒ:ð ˆüsk   ‚1Fµ*B ÁBÁ %B ÂB' ÂFÂB ÂB$Â$B' Â'
FÂ1"CÃFÃ8FÄFÄAFÅFÅ0FÆ	Frf  c                 ó\   • U R                   R                  U5      u  p#USU=(       d    S-  4$ )a�  Return whether a block of code is ready to execute, or should be continued

Parameters
----------
code : string
    Python input code, which can be multiline.

Returns
-------
status : str
    One of 'complete', 'incomplete', or 'invalid' if source is not a
    prefix of valid code.
indent : str
    When status is 'incomplete', this is some whitespace to insert on
    the next line of the prompt.
Ú r   )r  Úcheck_complete)r•   rf  rC  Únspacess       r`   r  ÚInteractiveShell.check_completeÂ  s0   € ð" ×8Ñ8×GÑGÈÓM‰ˆØ�s˜gŸl¨Ñ+Ð+Ð+re   Úactive_eventloopc                 ó   • [        S5      e)Nz"Implement enable_gui in a subclass)ÚNotImplementedError)r•   Úguis     r`   Ú
enable_guiÚInteractiveShell.enable_guiÜ  s   € Ü!Ð"FÓGÐGre   c                 ó  • SSK Jn  U" 5       (       d
  US;   a  SSKnSSKJ n  UR	                  XR
                  5      u  pUS:w  a^  U R
                  c  Xl        OJXR
                  :w  a;  [        SU< SU R
                  < S	35        UR	                  U R
                  5      u  pUR                  U5        SS
KJn  U" X5        U R                  U5        UR                  U R                  5      U R                  R                  S   l        X4$ )a  Enable interactive matplotlib and inline figure support.

This takes the following steps:

1. select the appropriate eventloop and matplotlib backend
2. set up matplotlib for interactive use with that backend
3. configure formatters for inline figure display
4. enable the selected gui eventloop

Parameters
----------
gui : optional, string
    If given, dictates the choice of matplotlib GUI backend to use
    (should be one of IPython's supported backends, 'qt', 'osx', 'tk',
    'gtk', 'wx' or 'inline'), otherwise we use the default chosen by
    matplotlib (as dictated by the matplotlib build-time options plus the
    user's matplotlibrc configuration file).  Note that not all backends
    make sense in all contexts, for example a terminal ipython can't
    display figures inline.
rr   )Ú_matplotlib_manages_backends)NÚautor   N)Ú
pylabtoolsz3Warning: Cannot change to a different GUI toolkit: z. Using z	 instead.)Úconfigure_inline_supportrÇ  )r  r  Ú matplotlib_inline.backend_inliner¾  Úfind_gui_and_backendÚpylab_gui_selectr:  Úactivate_matplotlibr  r  Ú
mpl_runnerrl  r¾  ÚregistryÚdefault_runner)r•   r  r  Úmatplotlib_inlineÚptÚbackendr  s          r`   Úenable_matplotlibÚ"InteractiveShell.enable_matplotlibß  së   € õ* 	=á+×-Ñ-°#¸Ó2Gó 4å1Ø×.Ñ.¨s×4IÑ4IÓJ‰ˆà�$‹;à×$Ñ$Ñ,Ø(+Õ%à×-Ñ-Ó-ÝÛ03°T×5JÔ5JðLô Mà!×6Ñ6°t×7LÑ7LÓM‘�à
×Ñ˜wÔ'åMá  Ô/ð 	�‰˜Ôà�M‰M˜$×,Ñ,Ó-ð 	×Ñ×$Ñ$Ð%6Ñ7ÔFð ˆ|Ðre   c                 ó€  • SSK Jn  U R                  U5      u  p0 nU" XR5        S1n[        U5      R	                  U R
                  5      R                  U5      nU Vs/ s H  o€R
                  U   XX   Ld  M  UPM     n	nU R
                  R                  U5        U R                  R                  U5        XU	4$ s  snf )a  Activate pylab support at runtime.

This turns on support for matplotlib, preloads into the interactive
namespace all of numpy and pylab, and configures IPython to correctly
interact with the GUI event loop.  The GUI backend to be used can be
optionally selected with the optional ``gui`` argument.

This method only adds preloading the namespace to InteractiveShell.enable_matplotlib.

Parameters
----------
gui : optional, string
    If given, dictates the choice of matplotlib GUI backend to use
    (should be one of IPython's supported backends, 'qt', 'osx', 'tk',
    'gtk', 'wx' or 'inline'), otherwise we use the default chosen by
    matplotlib (as dictated by the matplotlib build-time options plus the
    user's matplotlibrc configuration file).  Note that not all backends
    make sense in all contexts, for example a terminal ipython can't
    display figures inline.
import_all : optional, bool, default: True
    Whether to do `from numpy import *` and `from pylab import *`
    in addition to module imports.
r   )Úimport_pylabr“  )	ÚIPython.core.pylabtoolsr!  r  r·  Úintersectionr§   Ú
differencer¥  r‹  )
r•   r  Ú
import_allr!  r  rj  ÚignoredÚbothrÑ   Ú	clobbereds
             r`   Úenable_pylabÚInteractiveShell.enable_pylab  s®   € õ0 	9à×-Ñ-¨cÓ2‰ˆð ˆÙ�RÔ$à!Ð"ˆÜ�2‹w×#Ñ# D§L¡LÓ1×<Ñ<¸WÓEˆÙ'+ÓS¢t˜t¯|©|¸DÑ/AÈÉÐ/Q—d¡tˆ	ÐSØ�‰×Ñ˜BÔØ×Ñ×"Ñ" 2Ô&Ø˜YÐ&Ð&ùò Ts   ÁB;Á9B;c                 ó
  • U R                   R                  5       n [        R                  " US-   5      nUR	                  UR
                  5         UR                  U/ US9nU$ ! [         a     N f = f! [         a     U$ f = f)a   Expand python variables in a string.

The depth argument indicates how many frames above the caller should
be walked to look for the local namespace where to expand variables.

The global namespace for expansion is always the user's interactive
namespace.
rr   )rï   rð   )	r§   Úcopyr“  rÞ  r¥  rá  r{   Úvformatr³  )r•   rÅ  r  r$  rj  r­  s         r`   ré  ÚInteractiveShell.var_expandD  s’   € ð �\‰\×ÑÓ ˆð	&Ü—M’M %¨¡'Ó*ˆEð �I‰I�e—n‘nÔ%ð	ð ×#Ñ# C¨b¸Ð#Ð<ˆCð ˆ
øô ó 	ñ ð	ûô ó 	àØˆ
ð	ús#   œA$ ÁA4 Á$
A1Á0A1Á4
BÂBc                 ó^  • [        [        R                  " US95      nU R                  R	                  U5        [        R
                  " SU[        U5      S9u  pE[        R                  " U5        [        U5      nU R                  R	                  U5        U(       a  UR                  USS9  U$ )aT  Make a new tempfile and return its filename.

This makes a call to tempfile.mkstemp (created in a tempfile.mkdtemp),
but it registers the created filename internally so ipython cleans it up
at exit time.

Optional inputs:

  - data(None): if data is given, it gets written out to the temp file
    immediately, and the file is closed again.)Úprefixz.py)Údirr~  rs  )r   ÚtempfileÚmkdtemprˆ  rÚ  Úmkstempr¿   r0  Úcloser‡  Ú
write_text)r•   rJ  r0  Údir_pathÚhandlerk  Ú	file_paths          r`   Ú
mktempfileÚInteractiveShell.mktempfilea  sˆ   € ô œ×(Ò(°Ñ7Ó8ˆØ�‰×Ñ˜XÔ&ä#×+Ò+¨E°6¼sÀ8»}ÑMÑˆÜ
�Š�Ôä˜“Nˆ	Ø�‰×Ñ˜iÔ(æØ× Ñ  °Ð Ñ8Øˆre   c                 ó>   • U R                   (       a  g[        XU5      $ rd  )ÚquietrI   )r•   Úpromptr   Ú	interrupts       r`   rI   ÚInteractiveShell.ask_yes_noz  s   € Ø�:�:ØÜ˜&¨Ó3Ð3re   c                 ót   • [         R                   " [        R                  R                  R                  5        g)zShow a usage messageN)r#   rC  rD  ÚusageÚinteractive_usagerß   s    r`   Ú
show_usageÚInteractiveShell.show_usage  s   € ä�	Š	”'—,‘,×$Ñ$×6Ñ6Õ7re   c                 ó²   • U R                   R                  XS9nSR                  S U 5       5      nU(       d  SU;  a  SnU$ USUR                  S5       nU$ )aè  Return as a string a set of input history slices.

Parameters
----------
range_str : str
    The set of slices is given as a string, like "~5/6-~4/2 4:8 9",
    since this function is for use by magic functions which get their
    arguments as strings. The number before the / is the session
    number: ~n goes n back from the current session.

    If empty string is given, returns history of current session
    without the last input.

raw : bool, optional
    By default, the processed input is used.  If this is true, the raw
    input history is used instead.

Notes
-----
Slices can be described with two notations:

* ``N:M`` -> standard python form, means including items N...(M-1).
* ``N-M`` -> include items N..M (closed endpoint).
©Úrawr’   c              3   ó,   #   • U  H
  u    pUv •  M     g 7fr…   ri   )rû  rÈ  Úxs      r`   rý  Ú7InteractiveShell.extract_input_lines.<locals>.<genexpr>�  s   é € Ð0ª%™w˜q !�ª%ùs   ‚r‘   N)r¡  Úget_range_by_strrB  Úrfind)r•   Ú	range_strrH  rÐ  r¢  s        r`   Úextract_input_linesÚ$InteractiveShell.extract_input_linesƒ  sg   € ð2 ×$Ñ$×5Ñ5°iÐ5ÐIˆØ�y‰yÑ0©%Ó0Ó0ˆö Ø˜4ÓØ�ð ˆð Ð.˜dŸj™j¨Ó.Ð/�àˆre   c                 óê  • U R                  XS9nU(       a  U$  UR                  S5      (       a  [        R                  " XS9$  U/n
 U
R                  S[        U5      5        U
 H�  n[        R                  R                  U5      (       a   [        R                   " X´S9s  $ [        R                  R%                  [        R                  R'                  U5      5      (       d  M�  [        SU-  5      e   U(       a)  U R)                  USS9nUS   (       a  US   (       a  US   $  [+        XR,                  5      n[1        U[2        5      (       a  U$ [1        U[4        5      (       a  UR6                  $ [9        SU-  U5      e! [         aM  nU(       d2  SSKJn  U" U5      n	U	R                  5       R                  S5      s SnA$ [        SU-  5      UeSnAff = f! [         a     GN‡f = f! [         aX  nU(       d=  [#        US	SS
9 nUR                  5       sSSS5        s SnAs  $ ! , (       d  f       O= f[        SU-  5      UeSnAff = f! [.         a  n[        SU-  5      UeSnAff = f)až  Get a code string from history, file, url, or a string or macro.

This is mainly used by magic functions.

Parameters
----------
target : str
    A string specifying code to retrieve. This will be tried respectively
    as: ranges of input history (see %history for syntax), url,
    corresponding .py file, filename, or an expression evaluating to a
    string or Macro in the user namespace.

    If empty string is given, returns complete history of current
    session, without the last line.

raw : bool
    If true (default), retrieve raw history. Has no effect on the other
    retrieval mechanisms.

py_only : bool (default False)
    Only try to fetch python code, do not try alternative methods to decode file
    if unicode fails.

Returns
-------
A string of code.
ValueError is raised if nothing is found, and TypeError if it evaluates
to an object of another type. In each case, .args[0] is a printable
message.
rG  )zhttp://zhttps://)Úskip_encoding_cookier   )ÚurlopenÚlatin1Nz'%s' seem to be unreadable.Úrrs  z('%s' is a directory, not a regular file.rr   )r(  r  rx  zI'%s' was not found in history, as a file, url, nor in the user namespace.z#%s is neither a string nor a macro.)rO  rº  rF   Úread_py_urlÚUnicodeDecodeErrorÚurllib.requestrS  rp  r‚  r{   r  rM   ÚIOErrorr0  r1  ÚisfileÚread_py_filerî   Úisdirrc  r  rß  r§   r³  r  r¿   r;   r—   r€   )r•   rì  rH  Úpy_onlyrR  Ú	search_nsrf  rÏ  rS  ÚresponseÚpotential_targetÚtgtrV  r)  Úcodeobjs                  r`   Úfind_user_codeÚInteractiveShell.find_user_code¨  sL  € ð> ×'Ñ'¨Ð'Ð8ˆÞØˆKð		NØ× Ñ Ð!8×9Ñ9Ü×)Ò)¨&Ñ\Ð\ð :ð #˜8Ðð	Ø×#Ñ# A¤o°fÓ&=Ô>ó $ˆCÜ�w‰w�~‰~˜c×"Ñ"ðVÜ!×.Ò.¨sÑ^Ò^ô —‘—‘œrŸw™w×1Ñ1°#Ó6×7Ó7Ü Ð!KÈfÑ!TÓUÐUñ $ö à×-Ñ-¨fÀ1Ð-ÐEˆKØ˜7×#¨°H×(=Ø" 8Ñ,Ð,ð	OÜ˜6§<¡<Ó0ˆGô
 �gœs×#Ñ#ØˆNÜ˜¤×'Ñ'Ø—=‘=Ð äÐ=ÀÑFØó!ð 	!øôW "ó 	NÞå2Ù" 6›?�Ø—}‘}“×-Ñ-¨hÓ7Õ7ÜÐ;¸vÑEÓFÈAÐMûð	Nûô ó 	Úð	ûô *ó VÞ"Ü$ S¨°xÒ@ÀAØ#$§6¡6£8÷ A×@×@Ö@úä$Ð&CÀvÑ%MÓNÐTUÐUûð	Vûô  ó 	OÜð =Ø@FñGó HØMNðOûð	Oúsƒ   š)F Á	G ÂG/Ä(I Æ
GÆ3GÇGÇGÇGÇ
G,Ç+G,Ç/
IÇ9IÈH,È	IÈ$IÈ,
H:È6IÉIÉ
I2ÉI-É-I2c                 ó´   • [        U SS5      (       dF  SU l        U R                  SS9  U R                  b"  U R                  R	                  5         SU l        ggg)zt
At exist operation that need to be called at most once.
Second call to this function per instance will do nothing.
Ú_atexit_once_calledFT)rÁ  N)rG  rf  r²  r¡  Úend_sessionrß   s    r`   Ú_atexit_onceÚInteractiveShell._atexit_onceû  s\   € ô �tÐ2°E×:Ñ:Ø'+ˆDÔ$à�J‰J 5ˆJÑ)ð ×#Ñ#Ñ/Ø×$Ñ$×0Ñ0Ô2Ø'+�Õ$ð 0ð ;re   c                 ó8  • U R                  5         U R                   H/  n UR                  5         U R                  R                  U5        M1     U ?U R
                   H5  n [        R                  " U5        U R
                  R                  U5        M7     U ?[        U S5      (       aO  U R                  S:X  a>  [        R                  R                  S5        [        R                  R                  5         ggg! [         a     Mê  f = f! [         a     Mº  f = f)ax  This will be executed at the time of exit.

Cleanup operations and saving of persistent data that is done
unconditionally by IPython should be performed here.

For things that may depend on startup flags or platform specifics (such
as having readline or not), register a separate atexit function in the
code that has the appropriate information, rather than trying to
clutter
Úediting_modeÚviz[0 qN)rh  r‡  ÚunlinkrÕ  ÚFileNotFoundErrorrˆ  ÚshutilÚrmtreerm  rk  r“  r  r–  r¶  )r•   ÚtfileÚtdirs      r`   ra  Ú"InteractiveShell.atexit_operations  sí   € ð 	×ÑÔð —^”^ˆEðØ—‘”Ø—‘×%Ñ% eÖ,ñ $ð ˆNØ—M”MˆDðÜ—’˜dÔ#Ø—‘×$Ñ$ TÖ*ñ "ð ˆMô �4˜×(Ñ(¨T×->Ñ->À$Ó-FÜ�J‰J×Ñ˜ZÔ(Ü�J‰J×ÑÕð .GÐ(øô %ó Úðûô %ó Úðús#   ¡+C:Á"1DÃ:
DÄDÄ
DÄDc                 ó$   • U R                  5         g r…   )r&  rß   s    r`   ÚcleanupÚInteractiveShell.cleanup1  s   € Ø×%Ñ%Õ're   c                 ó   • g r…   ri   )r•   r7  s     r`   Úswitch_doctest_modeÚ$InteractiveShell.switch_doctest_mode6  s   € Øre   )@rœ  rS  r«  r¬  rf  rx  rg  r  r  r  rŒ  rô   r»  r  rv  rÎ  ru  r…  r9  rf  râ  r7  r‰  r¼  rÙ  rÞ  ré  rè  r]  rÖ   r4  r¡  r»  rA  r‹  rö   rd  r´  r³  rÂ  r¾  r†  rƒ  rŒ  r7  r$   r:  r/  r¯  r  rN  rÁ  r�  rc  rŠ  r–  rB  r<  rˆ  r‡  rb  re  r§   r‹  )NNNN)ri   Nr…   r¥   )rÎ   NN)F)NN)TF)T)r   )r   ri   )NNNFFrm  )r±  N)rr   )r±  )Tr   )FF)FFTN)FFTrd  )NÚipython_edit_)TFTF(  rk   rl   rm   rn   ro   Ú	_instancer¾   rê   r·  r¿   r"   Ú	Inspectorr
   Útagrù   rÖ  ÚNodeTransformerr   Úautocallr   rv  r  rs   rt   rw   ru   r  r   r  r   r  r   r  Ú	automagicr3  r   r@   r1  r2  r   rå  Údebugr   r5   rÙ  r   r.   rç  r/   rÝ  r+   r„  r°  ra   r   r  r  r  rá  Úexit_nowr)   r  r  rÖ   rk  rd  r  r½   r   r"  rÅ  rÈ  rÆ  r±  rt  rH  r>  r=  r  Úhistory_lengthÚhistory_load_lengthr¿  r  r�   Úseparate_inÚseparate_outÚseparate_out2Úwildcards_case_sensitiver   r;  r»  r:  rÎ  ré  r4  r7  r¡  r¾  r/  r4  r   rŒ  r  r³  r´  r£   r§   Úsetterrp  rs  rw  r{  r:  r;  r<  r=  rD  r™  rŸ  rF  rµ  rI  rK  rY  rL  rP  rR  rS  rT  rU  rV  Ústaticmethodr   rò  r>  r@  r&  r6  r;  rG  rF  rH  r\  rn  rq  rZ  ry  r}  ru  rƒ  r‰  r?  r`  rŠ  rA  rJ  rª  r²  rÓ  rØ  rê  rí  r   ÚboolÚListTyperû  r   r   ÚAnyTyperW   r  r  r  r%  r  r-  r,  rC  r,   r9  rQ  r=  r  r^  rb  rg  rÜ  r  rë   rz   rW  rÛ  rz  rw  rŠ  rC   rŽ  rO  r¡  rª  r®  rW  Ú	functoolsÚwrapsr!   r¿  r×  rÙ  rã  rÇ  rê  rù  r  r  r  r  r  r&  rP   rO   rX  r[  r\  rE  r@  rF  rM  rT  rX  r[  rl  r~  r†  r   r   r˜  r}  rÕ   r�  r¦  r¥  r­  r¤  r½  r…  r   rÀ  rñ  Úruncoder  r	  r  r  r)  rS   ré  r:  rI   rD  rO  rc  rh  ra  ru  rx  rp   rš   r›   s   @r`   ró   ró   ]  sã  ø‡ Ù4à€IØƒNØ˜3‘xÓà×!Ñ!Ó!á26Ø
ðñ3÷ 
�c�€cÐð �d˜3×.Ñ.Ñ/ó ñ �G¨1ð	ñ	÷ 
�c�€cÐð ñ �dð	ñ÷ 
�c�€cÐð	 ñ �Tð	ñ÷ 
�c�€cÐð	 ð # DÐ)Ø Ð%Ø˜dÐ#Ø$ eÐ,ñ	€Oñ Ð$SØØbñ÷ 
�c�€cÐð ñ
 ˆ]ÓñLó ðLñ ˆmÓñó ðñ �Tð	ñ÷ 
�c�€cÐð	 ñ Øð2ñ÷ 
�c�€cÐð	 ñ �nØJñç	�c�€cÐð ñ �bØIñç	�c�€cÐð ñ Øðñ
÷ 
�c�€cÐð ñ �‹K�O‰O 4ˆOÐ(€EÙ Ð!1¸dÑCÐÙ˜[Ó)ÐÙÐ-Ó.ÐÙ˜/Ó*€NÙØ×ÑÐ!Rñç	�c�€cÐð ñ ˜uð	ñ÷ ‰S˜ˆSÐð	 ñ Ð"Ó#ñEó $ðEñ ˜Uð	ñ÷ ‰S˜ˆSÐð	 ñ Ð Ó!ñBó "ðBð €Ná�E‹{€HÙ�lÓ#€FÙˆXÓñ"ó ð"ñ ˜a“j€OÙÐ*Ó+€HÙ˜"“+—/‘/¨�/Ð.€Kñ !)Ð)\Ø)+ó!-Ðð ñAó ðAñ %)Ø
ð*ñ%Ð˜Tó ñ �Eð	ñ÷
 
�c�€cÐð ñ �bð	ñ÷ 
�c�€cÐð	 ñ
 ˜ð	ñ÷
 
�c�€cÐð ñ  $ G¸1ñ  ß	�c�€cÐð á
ˆuð	ñ÷ 
�c�€cÐð	 ñ
 ˜ð8ñ÷ 
�c�€cÐð ñ   Ø7ñç	�c�€cÐð ñ �‹K�O‰O 4ˆOÐ(€Eá  ð	ñ÷ 
�c�€cÐð ñ ˜UØ.ñç	�c�€cÐð ñ " $ð	ñ÷
 
�c�€cÐð ñ "Ò"]Ø0;ð(ñ÷ 
�c�€cÐð ñ Øð Dñ÷ 
�c�€cÐð ñ " $Ó'×+Ñ+°4Ð+Ð8€KÙ" 2Ó&×*Ñ*°$Ð*Ð7€LÙ# BÓ'×+Ñ+°4Ð+Ð8€MÙ# D›zŸ~™~°T˜~Ð:ÐÙØ:ØØ?ñ÷ 
�c�€cÐð	 
ñ Ð>È4ÑP€MÙ Ø1¸dñÐñ ÐCÓD€LÙÐCÓD€LÙ Ø2¸tñÐñ ÐDÐQUÑV€OÙØ2¸tñ€Oñ Ð@ÓA€NáÐ@ÈTÑR€KØñ/ó ð/ñ “F€Mð Ðá# DÐ/TÑUÐá$Ð%Tð  \Bð  OSñ  TÐà59Ø+/Ø#-÷I'ðV ñó ðð ‡^�^ð˜$ó ó ðò
ñ ˆ]Óñ)ó ð)ô$òò-ò
ò ò8ò*ñ ØÐRñç	�c�€cÐð ñ ˆhÓñ	ó ð	ñ ˆXÓóó ðò4òô/ô0ò4òò
ò:ò4ò1ò
?ð ð˜$ó ó ðò4;%òB
Uò	\ð ñó ðô,òPô '%òZJò
;ò$òL%ò2!ò
ò	*ñ ˜ m°DØFóH€Hô0ð. #ÐôLð\ ñ)ó ð)ô($òT2ò(: ðx ñCó ðCô>$ô@,:ô\$ô,.)ò`4ð* ð*˜3ð * 5¨¨x¸©}Ð)<Ñ#=ó *ó ð*ðZ QUñx
Øðx
Ø&.¨x¸¸cÀ7¸lÑ8KÑ/LÑ&Mðx
à	õx
ðt ñ'&ó ð'&ñR.°eõ .ñ  Cõ  ôD	EôKô&ò<8ð $€Lô5ò2e+òN<ô0  òD7ôð PTØ#Ø $Ø$Ø&+ñPEà˜˜mÑ,¨m¸WÐDÑEÈÑLðPEð ˜‘*ðPEð ˜‘:ð	PEð
 ðPEð  $ðPEð 
õPEðd'°°c±ô 'õ/ò8ð óó ðò!OðF ó)Có ð)CöV;ô$Bò 3ðF ‡_ƒ_�U×(Ò(×:Ò:Ó;ô
ó <ð
ð
¸ô ò65¨ð 5°Cõ 5òn7ò1òfBòBõFò&ò05ò8B.ðJ €Fõ+òb6ò:ò8ò@ò ò2ò$òò>9ò
Að 8=ÈuÐdiõ B0õH8EòtFð8 ð*&˜GÐ$6Ñ7ó *&ó ð*&ð^ ØØØõ.ð`>àð>ð ð>ð ð	>ð
 ð>ð ð>ð 
ô>ðB 26Ètò(&Øð(&à	õ(&ðZ ØØñwð +/Ø59Øòwàðwð # 3™-ðwð "*¨'Ñ!2ðwð 
öwðt ?Dõ5Rònò< ðL "ØØñyà˜4‘.ðyð õyðv=¸eö =ð@ €Gð, 3ð ,¨5°°c°©?ô ,ð0 '+Ð�h˜s‘mÓ*ôHô5õn('ð\ %&±Ó1Bô ö:õ24ó
8õ#öJQ!óf,ó( óD(÷
ó re   ró   c                   ó   • \ rS rSrSrSrg)ÚInteractiveShellABCi:  z,An abstract base class for InteractiveShell.ri   Nrj   ri   re   r`   r’  r’  :  s   † Ü6re   r’  )Ú	metaclass)Áro   ÚabcrÖ  r_  rý  ÚbuiltinsrÍ  rŽ  rÞ  r0  r  rƒ  ro  r!  r   r“  r2  re  rM  r  r   Ú
contextlibr   rE   r   rî   Úloggingr   Úpathlibr   Úcollections.abcr	   Útypingr
   rŒ  r   r�  r   r   r   r   r   r-  ÚIPython.external.picklesharer   r   Ú	traitletsr   r   r   r   r   r   r   r   r   r   r   Útraitlets.config.configurabler   Útraitlets.utils.importstringr    ÚIPython.core.hooksrC  r¾  r!   r"   r#   r$   r%   ÚIPython.core.aliasr&   r'   ÚIPython.core.autocallr)   ÚIPython.core.builtin_trapr*   ÚIPython.core.compileropr+   ÚIPython.core.debuggerr,   ÚIPython.core.display_trapr-   ÚIPython.core.displayhookr.   ÚIPython.core.displaypubr/   ÚIPython.core.errorr0   r1   ÚIPython.core.eventsr2   r3   ÚIPython.core.extensionsr4   ÚIPython.core.formattersr5   ÚIPython.core.historyr6   r7   ÚIPython.core.inputtransformer2r8   r9   ÚIPython.core.loggerr:   ÚIPython.core.macror;   ÚIPython.core.payloadr<   ÚIPython.core.prefilterr=   ÚIPython.core.profiledirr>   ÚIPython.core.tipsr?   ÚIPython.core.usager@   ÚIPython.displayrA   ÚIPython.pathsrB   ÚIPython.testing.skipdoctestrC   ÚIPython.utilsrD   rF   rG   ÚIPython.utils.decoratorsrH   ÚIPython.utils.iorI   ÚIPython.utils.ipstructrJ   ÚIPython.utils.pathrK   rL   rM   ÚIPython.utils.processrN   rO   rP   ÚIPython.utils.strdispatchrQ   ÚIPython.utils.syspathcontextrR   ÚIPython.utils.textrS   rT   rU   rV   ÚIPython.core.oinspectrW   rê   Údocrepr.sphinxifyrX   r\   r  rž  rg   rq   Ú	AugAssignÚ	AnnAssignré  rè  rë  Úasync_helpersrs   rt   ru   rv   rw   r…  Ú	dedent_rer¿   r|   r~   rˆ   r³  rŠ   r�   rh  r�   r¾   r  rÁ   rÃ   rÕ   r�  rñ   ró   ÚABCMetar’  r`  ri   re   r`   Ú<module>rÈ     ss  ðÚ ó Û 
Û Û 
Û Û Û Û 	Û 	Û Û Û Ý )Û 
Û Û Û Û Ý Ý %Ý Ý Ý Ý $ß 3ß +Ñ +Ý $Ý Û å 6å '÷÷ ÷ õ õ @Ý 4ã ß BÕ Bß 2Ý .Ý 1Ý 3Ý 2Ý 1Ý 0Ý 4ß 8ß >Ý 4Ý 4ß >ß @Ý &Ý $Ý /Ý 3Ý .Ý &Ý -Ý #Ý )Ý 4ß ;Ó ;Ý *Ý 'Ý )ß OÑ Oß JÑ JÝ 1Ý =ß NÓ NÝ 'ð �HÑÓ ðÝ$ò
#ô	Ð+ô 	õ à—’ §¢¨s¯zªzÐ:€ØŸš¨¯ªÐ6Ð ÷õ ð �J‹JÐ7Ó8€	ð	)˜ô 	)ð ñó ðð ñ	ó ð	ô $�9Ô #ô	A�gô 	Aô
˜U×-Ò-ô 
ð" 4¨¨S¨¡>ð "°dÐ;QÑ6Rô "÷J2
ñ 2
÷jGñ Gð@ ‡ƒ�Óñ*ó ð*ôZ;Ð,ô Z;ôzv7 C§K¢Kò 7ð × Ò Ð-Õ .øðO~ ó ØƒIðús   Ç	K= Ë=L	ÌL	