§
    ŒŸj°(  ã                  óº  — U d Z ddlmZ ddlZddlZddlZddlZddlm	Z	 ddl
mZ ddlmZ ddlmZmZmZmZ ddlmZmZ dd	lmZ d
dlmZmZmZmZmZmZmZ d
dl m!Z!m"Z" i Z#de$d<    e%ej&        e'¦  «        re# (                    ej&        ¦  «         dddœZ)e# (                    e)¦  «         i Z*de$d<    e%ej+        e'¦  «        re* (                    ej+        ¦  «         ddej,        iidfdddiidfdddiidfdœZ-de$d<   e* (                    e-¦  «          G d„ de.¦  «        Z/ G d „ de¦  «        Z0 G d!„ d"e0¦  «        Z1e2d#k    re0 3                    ¦   «          dS dS )$zh
A base Application class for Jupyter applications.

All Jupyter applications should inherit from this.
é    )ÚannotationsN)Údeepcopy)ÚPath)Úwhich)ÚBoolÚListÚUnicodeÚobserve)ÚApplicationÚcatch_config_error)ÚConfigFileNotFoundé   )Úallow_insecure_writesÚissue_insecure_write_warningÚjupyter_config_dirÚjupyter_config_pathÚjupyter_data_dirÚjupyter_pathÚjupyter_runtime_dir)Úensure_dir_existsÚensure_event_loopzdict[str, t.Any]Úbase_aliaseszApplication.log_levelzJupyterApp.config_file)z	log-levelÚconfigÚ
base_flagsr   Ú	log_levelz8set log level to logging.DEBUG (maximize logging output)Ú
JupyterAppÚgenerate_configTzgenerate default config fileÚ
answer_yesz1Answer yes to any questions instead of prompting.)Údebugzgenerate-configÚyÚ_jupyter_flagsc                  ó   — e Zd ZdZdS )ÚNoStartz6Exception to raise when an application shouldn't startN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úe/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/jupyter_core/application.pyr#   r#   B   s   € € € € € Ø@Ð@Ð@Ð@r)   r#   c                  óú  ‡ — e Zd ZdZdZdZeZeZ	d)d„Z
 e e¦   «         ¦  «        Zd*d„Z e¦   «         Zd+d
„Zed*d„¦   «         Z e¦   «         Zd+d„Z e¦   «         Zd+d„Z ed¦  «        d,d„¦   «         Z eddd¬¦  «        Z edd¬¦  «        Zd+d„Z edd¬¦  «        Z eddd¬¦  «        Zd-d„Zd-d„Z d.d/ˆ fd„Z!d0d!„Z"ed1d"„¦   «         Z# e¦   «         Z$e%d2d3d%„¦   «         Z&d-d&„Z'e(d2d4ˆ fd(„¦   «         Z)ˆ xZ*S )5r   z#Base class for Jupyter applicationsÚjupyterzA Jupyter ApplicationÚreturnÚintc                ó   — t           j        S ©N)ÚloggingÚINFO©Úselfs    r*   Ú_log_level_defaultzJupyterApp._log_level_defaultO   s
   € ÝŒ|Ðr)   ú	list[str]c                ó   — t          ¦   «         S r0   )r   r3   s    r*   Ú_jupyter_path_defaultz JupyterApp._jupyter_path_defaultT   s   € Ý‰~Œ~Ðr)   Ústrc                ó   — t          ¦   «         S r0   )r   r3   s    r*   Ú_config_dir_defaultzJupyterApp._config_dir_defaultY   s   € Ý!Ñ#Ô#Ð#r)   c                ój   — t          ¦   «         }| j        |vr|                     d| j        ¦  «         |S )Nr   )r   Ú
config_dirÚinsert)r4   Úpaths     r*   Úconfig_file_pathszJupyterApp.config_file_paths\   s5   € å"Ñ$Ô$ˆØŒ? $Ð&Ð&à�KŠK˜˜4œ?Ñ+Ô+Ð+Øˆr)   c                óD   — t          ¦   «         }t          |d¬¦  «         |S ©NéÀ  ©Úmode)r   r   )r4   Úds     r*   Ú_data_dir_defaultzJupyterApp._data_dir_defaultf   s%   € ÝÑÔˆÝ˜! %Ð(Ñ(Ô(Ð(Øˆr)   c                óD   — t          ¦   «         }t          |d¬¦  «         |S rB   )r   r   )r4   Úrds     r*   Ú_runtime_dir_defaultzJupyterApp._runtime_dir_defaultm   s%   € Ý Ñ"Ô"ˆÝ˜" 5Ð)Ñ)Ô)Ð)Øˆ	r)   Úruntime_dirÚchangeút.AnyÚNonec                ó4   — t          |d         d¬¦  «         d S )NÚnewrC   rD   )r   )r4   rL   s     r*   Ú_runtime_dir_changedzJupyterApp._runtime_dir_changedr   s   € å˜& œ-¨eÐ4Ñ4Ô4Ð4Ð4Ð4r)   FTzGenerate default config file.)r   ÚhelpzSpecify a config file to load.c                óP   — | j         sdS | j                              dd¦  «        dz   S )NÚ ú-Ú_Ú_config)ÚnameÚreplacer3   s    r*   Ú_config_file_name_defaultz$JupyterApp._config_file_name_defaultz   s.   € ØŒyð 	Ø�2ØŒy× Ò   cÑ*Ô*¨YÑ6Ð6r)   zFull path of a config file.zAnswer yes to any prompts.c                óú  ‡— | j         r| j         Šn*t          t          | j        | j        dz   ¦  «        ¦  «        Št          ‰¦  «                             ¦   «         rs| j        sld}dˆfd„} |¦   «         }|                     d¦  «        s.t          d¦  «          |¦   «         }|                     d¦  «        ¯.|                     d¦  «        rd	S |  	                    ¦   «         }t          d
‰›�¦  «         t          t          ‰¦  «        j                             ¦   «         d¦  «         t          j        t          ‰¦  «        dd¬¦  «        5 }|                     |¦  «         d	d	d	¦  «         d	S # 1 swxY w Y   d	S )z-Write our default config to a .py config filez.pyrT   r-   r9   c                 ó˜   •— d‰›d�} 	 t          | ¦  «                             ¦   «         pdS # t          $ r t          d¦  «         Y dS w xY w)Nz
Overwrite z with default config? [y/N]ÚnrT   )ÚinputÚlowerÚKeyboardInterruptÚprint)ÚpromptÚconfig_files    €r*   Úaskz,JupyterApp.write_default_config.<locals>.ask‘   sb   ø€ ØP kÐPÐPÐP�ðÝ  ™=œ=×.Ò.Ñ0Ô0Ð7°CÐ7øÝ(ð ð ð Ý˜"‘I”I�IØ˜3˜3ðøøøs   ‰", ¬A	ÁA	)r    r]   zPlease answer 'yes' or 'no'r]   NzWriting default config to: rC   Úwzutf-8)rE   Úencoding©r-   r9   )rc   r9   r   r=   Úconfig_file_nameÚexistsr   Ú
startswithra   Úgenerate_config_filer   ÚparentÚresolveÚopenÚwrite)r4   Úanswerrd   Úconfig_textÚfrc   s        @r*   Úwrite_default_configzJupyterApp.write_default_config†   s×  ø€ ð Ôð 	TØÔ*ˆKˆKå�d 4¤?°DÔ4IÈEÑ4QÑRÔRÑSÔSˆKå�ÑÔ×#Ò#Ñ%Ô%ð 	¨d¬oð 	ØˆFðð ð ð ð ð ð �S‘U”UˆFØ×'Ò'¨
Ñ3Ô3ð ÝÐ3Ñ4Ô4Ð4Ø˜™œ�ð ×'Ò'¨
Ñ3Ô3ð ð × Ò  Ñ%Ô%ð Ø�à×/Ò/Ñ1Ô1ˆÝÐ;¨KÐ;Ð;Ñ<Ô<Ð<Ý�$˜{Ñ+Ô+Ô2×:Ò:Ñ<Ô<¸eÑDÔDÐDÝŒY•t˜KÑ(Ô(¨s¸WÐEÑEÔEð 	!ÈØ�GŠG�KÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s   ÅE0Å0E4Å7E4c                ó6  — 	 t          j        t          | j        d¦  «        d¦  «        }|                     ¦   «          dS # t          $ r Y nt
          $ r Y dS w xY wddlm}m} t           |¦   «         ¦  «                             ¦   «         sdS  |¦   «          dS )z"Migrate config/data from IPython 3Úmigratedzr+Nr   )Úget_ipython_dirÚmigrate)	r   rn   r=   ÚcloseÚFileNotFoundErrorÚOSErrorrw   rv   ri   )r4   Úf_markerrv   rw   s       r*   Úmigrate_configzJupyterApp.migrate_config¦   sÊ   € ð
	å”y¥ d¤o°zÑ!BÔ!BÀDÑIÔIˆHð �NŠNÑÔÐØˆFøõ !ð 	ð 	ð 	ØˆDÝð 	ð 	ð 	ØˆFˆFð	øøøð 	6Ð5Ð5Ð5Ð5Ð5Ð5Ð5õ �O�OÑ%Ô%Ñ&Ô&×-Ò-Ñ/Ô/ð 	ØˆFàˆ‰	Œ	ˆ	ˆ	ˆ	s   ‚(A  Á 
AÁ	AÁAÚsuppress_errorsÚboolc                óŠ  •— | j                              d| j        ¦  «         d}	 t          ¦   «                              || j        ¬¦  «         n+# t
          $ r | j                              d|¦  «         Y nw xY w| j        r(t          j         	                    | j        ¦  «        \  }}n| j        }| j
        }|r||k    rdS 	 t          ¦   «                              ||¬¦  «         dS # t
          $ r | j                              d|¦  «         Y dS t          $ r+ |r| j        r‚ | j                              d|d¬	¦  «         Y dS w xY w)
zãLoad the config file.

        By default, errors in loading config are handled, and a warning
        printed on screen. For testing, the suppress_errors option is set
        to False, so errors will make tests fail.
        zSearching %s for config filesÚjupyter_config)r?   zConfig file %s not foundNz#Config file not found, skipping: %szError loading config file: %sT)Úexc_info)Úlogr   r@   ÚsuperÚload_config_filer   rc   Úosr?   Úsplitrh   Ú	ExceptionÚraise_config_file_errorsÚwarning)r4   r}   Úbase_configr?   rh   Ú	__class__s        €r*   r„   zJupyterApp.load_config_file¼   s«  ø€ ð 	Œ�ŠÐ6¸Ô8NÑOÔOÐOØ&ˆð	DÝ‰GŒG×$Ò$ØØÔ+ð %ñ ô ð ð øõ "ð 	Dð 	Dð 	DàŒH�NŠNÐ5°{ÑCÔCÐCÐCÐCð	Døøøð Ôð 	Ý%'¤W§]¢]°4Ô3CÑ%DÔ%DÑ"ˆDÐ"Ð"àÔ)ˆDØ#Ô4Ðà#ð Ð(8¸KÒ(GÐ(GØ�ð		_Ý‰GŒG×$Ò$Ð%5¸DÐ$ÑAÔAÐAÐAÐAøÝ!ð 	Tð 	Tð 	TØŒH�NŠNÐ@ÐBRÑSÔSÐSÐSÐSÐSÝð 	_ð 	_ð 	_ð $ð ¨Ô(Eð ØØŒH×ÒÐ<Ð>NÐY]ÐÑ^Ô^Ð^Ð^Ð^Ð^ð	_øøøs)   ¥(A Á%A6Á5A6Ã#C& Ã&%EÄ0EÅErX   c                ó<   — | j         › d|› �}t          |¦  «        pdS )NrU   rT   )rX   r   )r4   rX   s     r*   Ú_find_subcommandzJupyterApp._find_subcommandã   s(   € Ø”)Ð$Ð$˜dÐ$Ð$ˆÝ�T‰{Œ{Ð ˜bÐ r)   c                óF   — t          | j        p| j        p| j        ¦  «        S )z\Return whether we are dispatching to another command

        or running ourselves.
        )r~   r   ÚsubappÚ
subcommandr3   s    r*   Ú_dispatchingzJupyterApp._dispatchingç   s#   € õ �DÔ(ÐJ¨D¬KÐJ¸4¼?ÑKÔKÐKr)   NÚargvc                óœ  — |€t           j        dd…         }|r-|                      |d         ¦  «        }|r|| _        || _        dS |                      |¦  «         t          | j        ¦  «        }| j        rdS |                      ¦   «          |  	                    ¦   «          |  
                    |¦  «         t          rt          ¦   «          dS dS )zInitialize the application.Nr   r   )Úsysr’   r�   r�   Úparse_command_liner   r   r‘   r|   r„   Úupdate_configr   r   )r4   r’   ÚsubcÚ	cl_configs       r*   Ú
initializezJupyterApp.initializeñ   sá   € ð ˆ<Ý”8˜A˜B˜B”<ˆDØð 	Ø×(Ò(¨¨a¬Ñ1Ô1ˆDØð Ø �”	Ø"&�”Ø�Ø×Ò Ñ%Ô%Ð%Ý˜Tœ[Ñ)Ô)ˆ	ØÔð 	ØˆFØ×ÒÑÔÐØ×ÒÑÔÐà×Ò˜9Ñ%Ô%Ð%Ý ð 	+Ý(Ñ*Ô*Ð*Ð*Ð*ð	+ð 	+r)   c                ó<  — | j         r=t          j        | j         | j         g| j        dd…         ¢¦  «         t	          ¦   «         ‚| j        r'| j                             ¦   «          t	          ¦   «         ‚| j        r"|                      ¦   «          t	          ¦   «         ‚dS )zStart the whole thingr   N)	r�   r…   Úexecvr’   r#   r�   Ústartr   rs   r3   s    r*   rœ   zJupyterApp.start  s”   € àŒ?ð 	ÝŒH�T”_ t¤Ð&G¸¼À1À2À2¼Ð&GÑHÔHÐHÝ‘)”)ˆOàŒ;ð 	ØŒK×ÒÑÔÐÝ‘)”)ˆOàÔð 	Ø×%Ò%Ñ'Ô'Ð'Ý‘)”)ˆOð	ð 	r)   Úkwargsc                ó¨   •— t          ¦   «         }	  t          ¦   «         j        dd|i|¤Ž n# t          $ r Y dS w xY w|                     ¦   «          dS )z+Launch an instance of a Jupyter Applicationr’   Nr(   )r   rƒ   Úlaunch_instancer#   rx   )Úclsr’   r�   Úloopr‹   s       €r*   rŸ   zJupyterApp.launch_instance  sm   ø€ õ !Ñ"Ô"ˆð	Ø#�E‰GŒGÔ#Ð8Ð8¨Ð8°Ð8Ð8Ð8Ð8øÝð 	ð 	ð 	ØˆFˆFð	øøøà�
Š
‰Œˆˆˆs   ‘- ­
;º;)r-   r.   )r-   r6   rg   )rL   rM   r-   rN   ©r-   rN   )T)r}   r~   r-   rN   )rX   r9   r-   r9   )r-   r~   r0   ©r’   rM   r-   rN   ©r’   rM   r�   rM   r-   rN   )+r$   r%   r&   r'   rX   Údescriptionr   Úaliasesr   Úflagsr5   r   r	   r   r8   r=   r;   Úpropertyr@   Údata_dirrG   rK   rJ   r
   rQ   r   r   rh   rZ   rc   r   rs   r|   r„   r�   r‘   r�   r   r™   rœ   ÚclassmethodrŸ   Ú__classcell__)r‹   s   @r*   r   r   F   sž  ø€ € € € € Ø-Ð-à€DØ)€Kà€GØ€Eðð ð ð ð �4˜˜™	œ	‘?”?€Lðð ð ð ð �‘”€Jð$ð $ð $ð $ð ðð ð ñ „Xðð ˆw‰yŒy€Hðð ð ð ð
 �'‘)”)€Kðð ð ð ð
 €Wˆ]ÑÔð5ð 5ð 5ñ Ôð5ð �d˜5¨Ð4WÐXÑXÔX€Oà�w dÐ1QÐRÑRÔRÐð7ð 7ð 7ð 7ð
 �'ØØ.ðñ ô €Kð
 ��e DÐ/OÐPÑPÔP€Jð!ð !ð !ð !ð@ð ð ð ð,$_ð $_ð $_ð $_ð $_ð $_ð $_ðN!ð !ð !ð !ð ðLð Lð Lñ „XðLð �‘”€Jàð+ð +ð +ð +ñ Ôð+ð,ð ð ð ð ðð ð ð ð ð ñ „[ðð ð ð ð r)   c                  ód   — e Zd ZdZdZdZdZddd
„Zdd„Ze	ddd„¦   «         Z
e	ddd„¦   «         ZdS )ÚJupyterAsyncAppz3A Jupyter application that runs on an asyncio loop.Újupyter_asynczAn Async Jupyter ApplicationFNr’   rM   r-   rN   c              ƒ  ó
   K  — dS )z+Initialize the application asynchronoously.Nr(   )r4   r’   s     r*   Úinitialize_asyncz JupyterAsyncApp.initialize_async+  ó
   è è € € € r)   c              ƒ  ó
   K  — dS )z%Run the application in an event loop.Nr(   r3   s    r*   Ústart_asynczJupyterAsyncApp.start_async.  r±   r)   r�   c              ‹  ó¸   K  —  | j         di |¤Ž}|                     |¦  «         |                     |¦  «        ƒ d {V —† |                     ¦   «         ƒ d {V —† d S )Nr(   )Úinstancer™   r°   r³   )r    r’   r�   Úapps       r*   Ú_launch_instancez JupyterAsyncApp._launch_instance1  s}   è è € àˆcŒlÐ$Ð$˜VÐ$Ð$ˆØ�Š�tÑÔÐØ×"Ò" 4Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ø�oŠoÑÔÐÐÐÐÐÐÐÐÐr)   c                óœ   — t          | j        ¦  «        } | j        |fi |¤Ž}|                     |¦  «         |                     ¦   «          dS )z2Launch an instance of an async Jupyter ApplicationN)r   Ú_prefer_selector_loopr·   Úrun_until_completerx   )r    r’   r�   r¡   Úcoros        r*   rŸ   zJupyterAsyncApp.launch_instance8  sS   € õ ! Ô!:Ñ;Ô;ˆØ#ˆsÔ# DÐ3Ð3¨FÐ3Ð3ˆØ×Ò Ñ%Ô%Ð%Ø�
Š
‰Œˆˆˆr)   r0   r£   r¢   r¤   )r$   r%   r&   r'   rX   r¥   r¹   r°   r³   rª   r·   rŸ   r(   r)   r*   r­   r­   "  s£   € € € € € Ø=Ð=à€DØ0€Kð "Ðð:ð :ð :ð :ð :ð4ð 4ð 4ð 4ð ð ð  ð  ð  ñ „[ð ð ðð ð ð ñ „[ðð ð r)   r­   Ú__main__)4r'   Ú
__future__r   r1   r…   r”   ÚtypingÚtÚcopyr   Úpathlibr   Úshutilr   Ú	traitletsr   r   r	   r
   Útraitlets.config.applicationr   r   Útraitlets.config.loaderr   Úpathsr   r   r   r   r   r   r   Úutilsr   r   r   Ú__annotations__Ú
isinstancer¦   ÚdictÚupdateÚ_jupyter_aliasesr   r§   ÚDEBUGr!   r‡   r#   r   r­   r$   rŸ   r(   r)   r*   ú<module>rÎ      s'  ððð ð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø 
€
€
€
Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ 6Ð 6Ð 6Ð 6Ð 6Ð 6ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 8Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7ð "$€Ð #Ð #Ð #Ñ #Ø€:ˆkÔ! 4Ñ(Ô(ð -à×Ò˜Ô+Ñ,Ô,Ð,à(Ø&ðð Ð ð × Ò Ð$Ñ %Ô %Ð %à!€
Ð !Ð !Ð !Ñ !Ø€:ˆkÔ Ñ&Ô&ð )à×Ò�kÔ'Ñ(Ô(Ð(ð 
˜ g¤mÐ4Ð5ØBðð &Ð(9¸4Ð'@ÐAÐCaÐbà	˜ dÐ+Ð,Ø;ð
ð
$ð 
$€ð 
ð 
ð 
ñ 
ð × Ò �.Ñ !Ô !Ð !ðAð Að Að Að Aˆiñ Aô Að AðYð Yð Yð Yð Y�ñ Yô Yð Yðxð ð ð ð �jñ ô ð ð> ˆzÒÐØ×ÒÑ Ô Ð Ð Ð ð Ðr)   