§
    ‹Ÿj;¨  ã                  ór  — 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ZddlZddl	Z	ddl
ZddlmZmZ ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ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$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2m3Z3 ddl4m5Z5 ddl6m7Z7 d 8                    ¦   «         Z9d 8                    ¦   «         Z: e;e	d¦  «        sdge	_<        dZ=ej>         ?                    dd¦  «        Z@e@ A                    ¦   «         dv rdZBn'e@ A                    ¦   «         dv rdZBn eCde@z  ¦  «        ‚e	jD        oe	jD         E                    d¦  «        ZF ejG        dejH        dejI        f         ¬ ¦  «        ZJejK        ejL        d!f         ZMej$        eNejI        f         ZOejP        ej'        eN                  ZQej'        ejR        e                  ZSd5d$„ZT G d%„ d&eU¦  «        ZV G d'„ d(ejW        ¦  «        ZX G d)„ d*e¦  «        ZYeYjZ        Z[eYj\        Z]d6d7d1„Z^d8d3„Z_e`d4k    reY a                    ¦   «          dS dS )9z,A base class for a configurable application.é    )ÚannotationsN)ÚOrderedDictÚdefaultdict)Úsuppress)Údeepcopy)Ú
dictConfig)Údedent)ÚConfigurableÚSingletonConfigurable)ÚArgumentErrorÚConfigÚConfigFileNotFoundÚDeferredConfigStringÚJSONFileConfigLoaderÚKVArgParseConfigLoaderÚPyFileConfigLoader)
ÚBoolÚDictÚEnumÚInstanceÚListÚ
TraitErrorÚUnicodeÚdefaultÚobserveÚobserve_compat)ÚBunch)Únested_update)ÚindentÚwrap_paragraphsé   ©Úcast_unicode)Úimport_itemzÜ
The options below are convenience aliases to configurable class-options,
as listed in the "Equivalent to" description-line of the aliases.
To see all configurable class-options for some <cmd>, use:
    <cmd> --help-all
zþ
The command-line option below sets the respective configurable class-parameter:
    --Class.parameter=value
This line is evaluated in Python, so simple expressions are allowed.
For instance, to set `C.a=[0,1,2]`, you may type this:
    --C.a='range(3)'
ÚargvÚ zp
Subcommands are launched as `{app} cmd [args]`. For information on using
subcommand 'cmd', do: `{app} cmd -h`.
Ú-TRAITLETS_APPLICATION_RAISE_CONFIG_FILE_ERROR>   Ú1ÚtrueT>   r&   Ú0ÚfalseFz�Unsupported value for environment variable: 'TRAITLETS_APPLICATION_RAISE_CONFIG_FILE_ERROR' is set to '%s' which is none of  {'0', '1', 'false', 'true', ''}.zpythonw.exeÚT.)Úboundzlogging.LoggerAdapter[t.Any]ÚmethodÚreturnc                óx   ‡ — t          j        ‰ ¦  «        dˆ fd„¦   «         }t          j        t          |¦  «        S )	a  Method decorator for catching invalid config (Trait/ArgumentErrors) during init.

    On a TraitError (generally caused by bad config), this will print the trait's
    message, and exit the app.

    For use on init methods, to prevent invoking excepthook on invalid input.
    ÚappÚApplicationÚargsút.AnyÚkwargsr/   c                óü   •— 	  ‰| g|¢R i |¤ŽS # t           t          f$ r[}| j                             d|¦  «         | j                             d| j        ¦  «         |                      d¦  «         Y d }~d S d }~ww xY w)Nz0Bad config encountered during initialization: %szConfig at the time: %sé   )r   r   ÚlogÚfatalÚdebugÚconfigÚexit)r1   r3   r5   Úer.   s       €úi/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/traitlets/config/application.pyÚinnerz!catch_config_error.<locals>.inners   s—   ø€ ð	Ø�6˜#Ð/ Ð/Ð/Ð/¨Ð/Ð/Ð/øÝ�MÐ*ð 	ð 	ð 	ØŒG�MŠMÐLÈaÑPÔPÐPØŒG�MŠMÐ2°C´JÑ?Ô?Ð?Ø�HŠH�Q‰KŒKˆKˆKˆKˆKˆKˆKˆKøøøøð	øøøs   ƒ �A; AA6Á6A;)r1   r2   r3   r4   r5   r4   r/   r4   )Ú	functoolsÚwrapsÚtÚcastr,   )r.   r?   s   ` r>   Úcatch_config_errorrD   j   sL   ø€ õ „_�VÑÔðð ð ð ð ñ Ôðõ Œ6•!�UÑÔÐó    c                  ó   — e Zd ZdS )ÚApplicationErrorN)Ú__name__Ú
__module__Ú__qualname__© rE   r>   rG   rG      s   € € € € € Ø€DrE   rG   c                  ó6   ‡ — e Zd ZdZej        ZdZdˆ fd„Zˆ xZ	S )	ÚLevelFormattera  Formatter with additional `highlevel` record

    This field is empty if log level is less than highlevel_limit,
    otherwise it is formatted with self.highlevel_format.

    Useful for adding 'WARNING' to warning messages,
    without adding 'INFO' to info, etc.
    z %(levelname)s |Úrecordúlogging.LogRecordr/   Ústrc                óž   •— |j         | j        k    r| j        |j        z  |_        nd|_        t          ¦   «                              |¦  «        S )Nr&   )ÚlevelnoÚhighlevel_limitÚhighlevel_formatÚ__dict__Ú	highlevelÚsuperÚformat)ÚselfrN   Ú	__class__s     €r>   rX   zLevelFormatter.format�   sF   ø€ ØŒ>˜TÔ1Ò1Ð1Ø#Ô4°v´ÑFˆFÔÐà!ˆFÔÝ‰wŒw�~Š~˜fÑ%Ô%Ð%rE   )rN   rO   r/   rP   )
rH   rI   rJ   Ú__doc__ÚloggingÚWARNrS   rT   rX   Ú__classcell__©rZ   s   @r>   rM   rM   ƒ   sV   ø€ € € € € ðð ð ”l€OØ)Ðð&ð &ð &ð &ð &ð &ð &ð &ð &ð &rE   rM   c                  óæ  ‡ — e Zd ZU dZ ed¦  «        Zded<    ed¦  «        Zded<    ee¦  «        Zded<    ee	¦  «        Z	ded<    ee
¦  «        Z
ded	<   eZeZ e¦   «         Zded
<   g Zded<   	 d†d‡d„Z ed¦  «        Zded<    e¦   «         Zded<    ee¦  «        Z edej        d¬¦  «                             d¬¦  «        ZeZ edd¬¦  «                             d¬¦  «        Z edd¬¦  «                             d¬¦  «        Z dˆd!„Z! e"d"d#d$d%¦  «        d‰d)„¦   «         Z# e"d*d+¬,¦  «        d‰d-„¦   «         Z$dŠd.„Z% e&d*¦  «        d‹d0„¦   «         Z' e(d1¬¦  «                             d¬¦  «        Z)d2d3iZ*d ed4<   d d$ej+        iid5fd d6diid7fd d8diid9fd:œZ,d ed;<    e(¦   «         Z-d<ed=<    e.d>d¬?¦  «        Z/ e e¦   «         ¦  «        Z0 e.e1d@i dA¬¦  «        Z2 e¦   «         Z3dBedC<    edD¬¦  «                             d¬¦  «        Z4 edE¬¦  «                             d¬¦  «        Z5 e"d8¦  «        d‰dF„¦   «         Z6 e"d6¦  «        d‰dG„¦   «         Z7dŒdJ„Z8 e"dK¦  «        e9d‰ˆ fdL„¦   «         ¦   «         Z:e;d†d�dN„¦   «         Z<dŠdO„Z=dŠdP„Z>dŠdQ„Z?dŽdS„Z@dŠdT„ZAdŽdU„ZBdŠdV„ZCdŽdW„ZDdŠdX„ZEdŽdY„ZFd�d[„ZGd�d‘d]„ZHd�d�d^„ZId’d`„ZJdŠda„ZKdŽdb„ZLdŠdc„ZMdŽdd„ZNdŠde„ZOe;d†d“dg„¦   «         ZPd”di„ZQd•dl„ZReSd�d–do„¦   «         ZTeSdŠdp„¦   «         ZUe;d†d�dq„¦   «         ZVeS	 	 d—d˜dx„¦   «         ZWeXd™dy„¦   «         ZYe;	 d†dšd{„¦   «         ZZe;dŠd|„¦   «         Z[	 d†d‡d}„Z\d†d›d~„Z]dŠd„Z^dœd�dƒ„Z_dŠd„„Z`eSd†džd…„¦   «         Zaˆ xZbS )Ÿr2   z8A singleton application with full configuration support.Úapplicationzstr | Unicode[str, str | bytes]ÚnamezThis is an application.ÚdescriptionÚoption_descriptionÚkeyvalue_descriptionÚsubcommand_descriptionÚexamplesÚClassesTypeÚclassesNúClassesType | Noner/   ú+t.Generator[type[Configurable], None, None]c              #  óî   K  — |€| j         }t          ¦   «         }|D ]X}t          |                     ¦   «         ¦  «        D ]4}t	          |t
          ¦  «        r||vr|                     |¦  «         |V — Œ5ŒYdS )a  Iterate through configurable classes, including configurable parents

        :param classes:
            The list of classes to iterate; if not set, uses :attr:`classes`.

        Children should always be after parents, and each class should only be
        yielded once.
        N)ri   ÚsetÚreversedÚmroÚ
issubclassr
   Úadd)rY   ri   ÚseenÚcÚparents        r>   Ú_classes_inc_parentsz Application._classes_inc_parents±   s’   è è € ð ˆ?Ø”lˆGå‰uŒuˆØð 	!ð 	!ˆAå" 1§5¢5¡7¤7Ñ+Ô+ð !ð !�Ý˜f¥lÑ3Ô3ð !¸ÀtÐ9KÐ9KØ—H’H˜VÑ$Ô$Ð$Ø �L�L�Løð!ð	!ð 	!rE   z0.0Úversionzlist[str] | List[str]r%   )r   é
   é   é   é(   é2   ÚDEBUGÚINFOr]   ÚERRORÚCRITICALz#Set the log level by value or name.)Údefault_valueÚhelpT©r;   z%Y-%m-%d %H:%M:%Sz8The date format used by logging formatters for `asctime`)r�   z#[%(name)s]%(highlevel)s %(message)szThe Logging format templateÚStrDictc                óÞ   — ddddt          j        | j        ¦  «        ddœid| j        j        › d| j        j        › �| j        | j        dœi| j        j        ddgd	œid
dœ}t          r|d= |d= |S )a‡  Return the base logging configuration.

        The default is to log to stderr using a StreamHandler, if no default
        handler already exists.

        The log handler level starts at logging.WARN, but this can be adjusted
        by setting the ``log_level`` attribute.

        The ``logging_config`` trait is merged into this allowing for finer
        control of logging.

        r7   Úconsolezlogging.StreamHandlerzext://sys.stderr)ÚclassÚ	formatterÚlevelÚstreamú.)r†   rX   Údatefmtr|   )rˆ   ÚhandlersF)rv   rŒ   Ú
formattersÚloggersÚdisable_existing_loggersrŒ   rŽ   )
r\   ÚgetLevelNameÚ	log_levelÚ_log_formatter_clsrI   rH   Ú
log_formatÚlog_datefmtrZ   Ú
IS_PYTHONW©rY   r;   s     r>   Úget_default_logging_configz&Application.get_default_logging_configã   sÌ   € ð àØ4Ø!*Ý$Ô1°$´.ÑAÔAØ0ð	ð ðð àÔ2Ô=ð ?ð ?Ø Ô3Ô<ð?ð ?ð #œoØ#Ô/ðð ð	ð ”Ô'Ø$Ø!* ð*ð *ðð ).ð5
ð 
ˆõ: ð 	"ð �zÐ"Ø�yÐ!àˆrE   r”   r“   r‘   Úlogging_configÚchanger   ÚNonec                óÊ   — | j         }t          |t          ¦  «        r2t          j        t
          t          t          |¦  «        ¦  «        | _         |                      ¦   «          d S ©N)	r‘   Ú
isinstancerP   rB   rC   ÚintÚgetattrr\   Ú_configure_logging)rY   r™   r‘   s      r>   Ú_observe_logging_changez#Application._observe_logging_change  sS   € ð ”Nˆ	Ý�i¥Ñ%Ô%ð 	FÝœV¥C­µ¸)Ñ)DÔ)DÑEÔEˆDŒNØ×ÒÑ!Ô!Ð!Ð!Ð!rE   r8   r   )Útypec                ó.   — |                       ¦   «          d S rœ   )r    ©rY   r™   s     r>   Ú_observe_logging_defaultz$Application._observe_logging_default  s   € à×ÒÑ!Ô!Ð!Ð!Ð!rE   c                óˆ   — |                       ¦   «         }t          || j        pi ¦  «         t          |¦  «         d| _        d S )NT)r—   r   r˜   r   Ú_logging_configuredr–   s     r>   r    zApplication._configure_logging"  sG   € Ø×0Ò0Ñ2Ô2ˆÝ�f˜dÔ1Ð7°RÑ8Ô8Ð8Ý�6ÑÔÐà#'ˆÔ Ð Ð rE   Ú	AnyLoggerc                óŒ   — t          j        | j        j        ¦  «        }d|_        |}|�|j        r|S |j        sn	|j        }|­|S )z#Start logging for this application.F)r\   Ú	getLoggerrZ   rH   Ú	propagaterŒ   rt   )rY   r8   Ú_logs      r>   Ú_log_defaultzApplication._log_default)  s]   € õ Ô ¤Ô 7Ñ8Ô8ˆØˆŒØˆØÐØŒ}ð Ø�
Ø”>ð ØØ”;ˆDð Ðð ˆ
rE   a!  
            Configure additional log handlers.

            The default stderr logs handler is configured by the
            log_level, log_datefmt and log_format settings.

            This configuration can be used to configure additional handlers
            (e.g. to output the log to a file) or for finer control over the
            default handlers.

            If provided this should be a logging configuration dictionary, for
            more information see:
            https://docs.python.org/3/library/logging.config.html#logging-config-dictschema

            This dictionary is merged with the base logging configuration which
            defines the following:

            * A logging formatter intended for interactive use called
              ``console``.
            * A logging handler that writes to stderr called
              ``console`` which uses the formatter ``console``.
            * A logger with the name of this application set to ``DEBUG``
              level.

            This example adds a new handler that writes to a file:

            .. code-block:: python

               c.Application.logging_config = {
                   "handlers": {
                       "file": {
                           "class": "logging.FileHandler",
                           "level": "DEBUG",
                           "filename": "<path/to/file>",
                       }
                   },
                   "loggers": {
                       "<application-name>": {
                           "level": "DEBUG",
                           # NOTE: if you don't list the default "console"
                           # handler here then it will be disabled
                           "handlers": ["console", "file"],
                       },
                   },
               }

        z	log-levelzApplication.log_levelÚaliasesz5Set log-level to debug, for the most verbose logging.Úshow_configz<Show the application's configuration (human-readable format)Úshow_config_jsonz2Show the application's configuration (json format))r:   zshow-configzshow-config-jsonÚflagsz#dict[str, t.Any] | Dict[str, t.Any]Úsubcommandsz(traitlets.config.application.Application)Ú
allow_nonerK   zÁThe subset of our configuration that came from the command-line

        We re-load this configuration after loading config files,
        to ensure that it maintains highest priority.
        z	List[str]Ú_loaded_config_fileszAInstead of starting the Application, dump configuration to stdoutzKInstead of starting the Application, dump configuration to stdout (as JSON)c                ó   — |j         | _        d S rœ   )Únewr¯   r¤   s     r>   Ú_show_config_json_changedz%Application._show_config_json_changed°  s   € à!œ:ˆÔÐÐrE   c                óH   — |j         r| j        | _        | j        | _        d S d S rœ   )r¶   ÚstartÚ_save_startÚstart_show_configr¤   s     r>   Ú_show_config_changedz Application._show_config_changed´  s.   € àŒ:ð 	0Ø#œzˆDÔØÔ/ˆDŒJˆJˆJð	0ð 	0rE   r5   r4   c                óÌ   — t          j        | fi |¤Ž | j        }|| j        vrA| j        |j        u r|g| j        ¢| _        d S | j                             d| j        ¦  «         d S d S )Nr   )r   Ú__init__rZ   ri   Úinsert)rY   r5   Úclss      r>   r¾   zApplication.__init__º  s}   € ÝÔ& tÐ6Ð6¨vÐ6Ð6Ð6ð ŒnˆØ�d”lÐ"Ð"ØŒ|˜sœ{Ð*Ð*à #Ð3 d¤lÐ3�”��à”×#Ò# A t¤~Ñ6Ô6Ð6Ð6Ð6ð #Ð"rE   r;   c                óŠ   •— t          ¦   «                              |¦  «         | j                             d|j        ¦  «         d S )NzConfig changed: %r)rW   Ú_config_changedr8   r:   r¶   )rY   r™   rZ   s     €r>   rÂ   zApplication._config_changedÆ  s<   ø€ õ 	‰Œ×Ò Ñ'Ô'Ð'ØŒ�ŠÐ+¨V¬ZÑ8Ô8Ð8Ð8Ð8rE   ÚArgvTypec                ó0   — |                       |¦  «         dS )zMDo the basic steps to configure me.

        Override in subclasses.
        N)Úparse_command_line)rY   r%   s     r>   Ú
initializezApplication.initializeÌ  s   € ð 	×Ò Ñ%Ô%Ð%Ð%Ð%rE   c                ó~   — | j         �5t          | j         t          ¦  «        sJ ‚| j                              ¦   «         S dS )zAStart the app mainloop.

        Override in subclasses.
        N)Úsubappr�   r2   r¹   ©rY   s    r>   r¹   zApplication.startÔ  s@   € ð
 Œ;Ð"Ý˜dœk­;Ñ7Ô7Ð7Ð7Ð7Ø”;×$Ò$Ñ&Ô&Ð&ð #Ð"rE   c                ó  — | j                              ¦   «         }| j                             ¦   «         D ]D}|j        |v r9||j                 }|                     dd¦  «         |                     dd¦  «         ŒE| j        rIt          j        |t          j
        ddt          ¬¦  «         t          j
                             d¦  «         dS | j        r9t          d¦  «         | j        D ]}t          d	|z   ¦  «         Œt          ¦   «          t          |¦  «        D ]l}||         }|sŒt          |¦  «         t!          d
d¬¦  «        }t          |¦  «        D ]/}||         }	t          d|› dt#          j        |	fi |¤Ž› �¦  «         Œ0ŒmdS )z,start function used when show_config is Truer¯   Nr°   r7   T)r   Ú	sort_keysr   ú
zLoaded config files:z  é   )r   Úcompactz  .z = )r;   ÚcopyrZ   ro   rH   Úpopr°   ÚjsonÚdumpÚsysÚstdoutÚreprÚwriter´   ÚprintÚsortedÚdictÚpprintÚpformat)
rY   r;   rÀ   Ú
cls_configÚfÚ	classnameÚclass_configÚpformat_kwargsÚ	traitnameÚvalues
             r>   r»   zApplication.start_show_configÝ  s³  € à”×!Ò!Ñ#Ô#ˆà”>×%Ò%Ñ'Ô'ð 	9ð 	9ˆCØŒ|˜vÐ%Ð%Ø# C¤LÔ1�
Ø—’˜}¨dÑ3Ô3Ð3Ø—’Ð1°4Ñ8Ô8Ð8øàÔ ð 	ÝŒI�f�cœj°¸dÍDÐQÑQÔQÐQåŒJ×Ò˜TÑ"Ô"Ð"ØˆFàÔ$ð 	ÝÐ(Ñ)Ô)Ð)ØÔ.ð  ð  �Ý�d˜Q‘h‘”��Ý‰GŒGˆGå ™œð 		Uð 		UˆIØ! )Ô,ˆLØð ØÝ�)ÑÔÐÝ&*°!¸TÐ&BÑ&BÔ&BˆNå# LÑ1Ô1ð Uð U�	Ø$ YÔ/�ÝÐS˜IÐSÐS­&¬.¸Ð*QÐ*QÀ.Ð*QÐ*QÐSÐSÑTÔTÐTÐTðUð		Uð 		UrE   c                ón   — t          d                     |                      ¦   «         ¦  «        ¦  «         dS )z"Print the alias parts of the help.rÌ   N)r×   ÚjoinÚemit_alias_helprÉ   s    r>   Úprint_alias_helpzApplication.print_alias_helpþ  s.   € åˆd�iŠi˜×,Ò,Ñ.Ô.Ñ/Ô/Ñ0Ô0Ð0Ð0Ð0rE   út.Generator[str, None, None]c              #  ó²  K  — | j         sdS i }| j        D ]S}|                     ¦   «         dd…         D ]4}t          j        t          j        t                   |¦  «        ||j        <   Œ5ŒT| j                              ¦   «         D �]S\  }}	 t          |t          ¦  «        r|\  }}nd}|                     d¦  «        dd…         \  }}|dz   |z   }||         }|                     d¬¦  «        |         }	|                     |	|¬¦  «                             ¦   «         }
t          |t          ¦  «        s|f}t          |t           ¬¦  «        }d	                     d
„ |D ¦   «         ¦  «        }|
d                              d|z   |¦  «        |
d<   |
E d{V —† t'          d|z  ¦  «        V — �Œ&# t(          $ r"}| j                             d||¦  «         ‚ d}~ww xY wdS )z+Yield the lines for alias part of the help.NéýÿÿÿrŠ   éþÿÿÿTr‚   )Úhelptext©Úkeyú, c              3  óJ   K  — | ]}t          |¦  «        d k    rdnd|z  V — ŒdS ©r7   z--%sz-%sN©Úlen©Ú.0Úms     r>   ú	<genexpr>z.Application.emit_alias_help.<locals>.<genexpr>  ó9   è è € Ð!WÐ!WÈA­S°©V¬V°aªZ¨Z 6 6¸UÀaÑ"GÐ!WÐ!WÐ!WÐ!WÐ!WÐ!WrE   r   ú--zEquivalent to: [--%s]z7Failed collecting help-message for alias %r, due to: %s)r®   ri   ro   rB   rC   ÚTyper
   rH   Úitemsr�   ÚtupleÚsplitÚclass_traitsÚclass_get_trait_helpÚ
splitlinesrØ   rò   rä   Úreplacer   Ú	Exceptionr8   Úerror)rY   Ú	classdictrÀ   rs   ÚaliasÚlongnameÚfhelprÞ   rá   ÚtraitÚfhelp_linesÚexs               r>   rå   zApplication.emit_alias_help  s!  è è € àŒ|ð 	ØˆFà35ˆ	Ø”<ð 	Hð 	HˆCà—W’W‘Y”Y˜s ˜s”^ð Hð H�Ý()¬­q¬vµlÔ/CÀQÑ(GÔ(G�	˜!œ*Ñ%Ð%ðHð  $œ|×1Ò1Ñ3Ô3ð 	ñ 	‰OˆE�8ðÝ˜h­Ñ.Ô.ð !Ø&.‘O�H˜e˜eà �EØ'/§~¢~°cÑ':Ô':¸2¸3¸3Ô'?Ñ$�	˜9Ø$ s™?¨YÑ6�Ø 	Ô*�à×(Ò(°Ð(Ñ5Ô5°iÔ@�Ø!×6Ò6°uÀuÐ6ÑMÔM×XÒXÑZÔZ�å! %­Ñ/Ô/ð %Ø"˜H�EÝ˜u­#Ð.Ñ.Ô.�ØŸ	š	Ð!WÐ!WÐQVÐ!WÑ!WÔ!WÑWÔW�ð "-¨Q¤×!7Ò!7¸¸x¹ÈÑ!OÔ!O�˜A‘Ø&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ÝÐ4°xÑ?Ñ@Ô@Ð@Ð@Ð@Ñ@øÝð ð ð Ø”—’ÐXÐZ_ÐacÑdÔdÐdØøøøøðøøøð-	ð 	s   Â	DF(Æ(
GÆ2GÇGc                ón   — t          d                     |                      ¦   «         ¦  «        ¦  «         dS )z Print the flag part of the help.rÌ   N)r×   rä   Úemit_flag_helprÉ   s    r>   Úprint_flag_helpzApplication.print_flag_help(  s.   € åˆd�iŠi˜×+Ò+Ñ-Ô-Ñ.Ô.Ñ/Ô/Ð/Ð/Ð/rE   c              #  ól  K  — | j         sdS | j                              ¦   «         D �]\  }\  }}	 t          |t          ¦  «        s|f}t	          |t
          ¬¦  «        }d                     d„ |D ¦   «         ¦  «        }|V — t          t          | 	                    ¦   «         ¦  «        ¦  «        V — d                     d„ |                     ¦   «         D ¦   «         ¦  «        }d|z  }t          t          |¦  «        ¦  «        V — Œà# t          $ r"}| j                             d||¦  «         ‚ d}~ww xY wdS )	z.Yield the lines for the flag part of the help.Nrì   rî   c              3  óJ   K  — | ]}t          |¦  «        d k    rdnd|z  V — ŒdS rð   rñ   ró   s     r>   rö   z-Application.emit_flag_help.<locals>.<genexpr>6  r÷   rE   ú c              3  óf   K  — | ],\  }}|                      ¦   «         D ]\  }}d |› d|› d|› �V — ŒŒ-dS )rø   rŠ   ú=N)rú   )rô   ÚclnameÚ
props_dictÚpropÚvals        r>   rö   z-Application.emit_flag_help.<locals>.<genexpr>9  sy   è è € ð $ð $á*˜ 
Ø%/×%5Ò%5Ñ%7Ô%7ð$ð $ñ "˜˜cð /˜Ð.Ð. $Ð.Ð.¨Ð.Ð.ð$ð $ð $ð $ð $ð $ð $rE   zEquivalent to: [%s]z6Failed collecting help-message for flag %r, due to: %s)r±   rú   r�   rû   rØ   rò   rä   r   r	   Ústripr  r8   r  )rY   r±   Úcfgr  Úcfg_listÚcfg_txtr	  s          r>   r  zApplication.emit_flag_help,  s`  è è € àŒzð 	ØˆFà#'¤:×#3Ò#3Ñ#5Ô#5ð 	ñ 	ÑˆE‘<�C˜ðÝ! %­Ñ/Ô/ð %Ø"˜H�EÝ˜u­#Ð.Ñ.Ô.�ØŸ	š	Ð!WÐ!WÐQVÐ!WÑ!WÔ!WÑWÔW�Ø���Ý�V E§K¢K¡M¤MÑ2Ô2Ñ3Ô3Ð3Ð3Ð3ØŸ8š8ð $ð $à.1¯iªi©k¬kð$ñ $ô $ñ ô �ð
 0°(Ñ:�Ý�V G™_œ_Ñ-Ô-Ð-Ð-Ð-Ð-øÝð ð ð Ø”—’ÐWÐY^Ð`bÑcÔcÐcØøøøøðøøøð	ð 	s   ¯CDÄ
D1ÄD,Ä,D1c                ón   — t          d                     |                      ¦   «         ¦  «        ¦  «         dS )z#Print the options part of the help.rÌ   N)r×   rä   Úemit_options_helprÉ   s    r>   Úprint_optionszApplication.print_optionsD  s.   € åˆd�iŠi˜×.Ò.Ñ0Ô0Ñ1Ô1Ñ2Ô2Ð2Ð2Ð2rE   c              #  ó  K  — | j         s	| j        sdS d}|V — dt          |¦  «        z  V — t          | j        ¦  «        D ]
}|V — dV — Œ|                      ¦   «         E d{V —† |                      ¦   «         E d{V —† dV — dS )z1Yield the lines for the options part of the help.NÚOptionsr  r&   )r±   r®   rò   r    rd   r  rå   )rY   ÚheaderÚps      r>   r  zApplication.emit_options_helpH  sÆ   è è € àŒzð 	 $¤,ð 	ØˆFØˆØˆˆˆØ•C˜‘K”KÑÐÐÐÝ  Ô!8Ñ9Ô9ð 	ð 	ˆAØˆGˆGˆGØˆHˆHˆHˆHà×&Ò&Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ø×'Ò'Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ØˆˆˆˆˆrE   c                ón   — t          d                     |                      ¦   «         ¦  «        ¦  «         dS )z&Print the subcommand part of the help.rÌ   N)r×   rä   Úemit_subcommands_helprÉ   s    r>   Úprint_subcommandszApplication.print_subcommandsW  s.   € åˆd�iŠi˜×2Ò2Ñ4Ô4Ñ5Ô5Ñ6Ô6Ð6Ð6Ð6rE   c              #  óx  K  — | j         sdS d}|V — dt          |¦  «        z  V — t          | j                             | j        ¬¦  «        ¦  «        D ]
}|V — dV — Œ| j                              ¦   «         D ]>\  }\  }}|V — |r0t          t          | 	                    ¦   «         ¦  «        ¦  «        V — Œ?dV — dS )z4Yield the lines for the subcommand part of the help.NÚSubcommandsr  )r1   r&   )
r²   rò   r    rf   rX   rb   rú   r   r	   r  )rY   r  r   ÚsubcÚ_r�   s         r>   r"  z!Application.emit_subcommands_help[  så   è è € àÔð 	ØˆFàˆØˆˆˆØ•C˜‘K”KÑÐÐÐÝ  Ô!<×!CÒ!CÈÌ	Ð!CÑ!RÔ!RÑSÔSð 	ð 	ˆAØˆGˆGˆGØˆHˆHˆHˆHØ#Ô/×5Ò5Ñ7Ô7ð 	3ð 	3‰OˆD‘)�1�dØˆJˆJˆJØð 3Ý�V D§J¢J¡L¤LÑ1Ô1Ñ2Ô2Ð2Ð2Ð2øØˆˆˆˆˆrE   Úboolc              #  ó"   K  — |s
dV — dV — dS dS )zzYield the very bottom lines of the help message.

        If classes=False (the default), print `--help-all` msg.
        z5To see all available configurables, use `--help-all`.r&   NrK   ©rY   ri   s     r>   Úemit_help_epiloguezApplication.emit_help_epiloguel  s3   è è € ð
 ð 	ØIÐIÐIÐIØˆHˆHˆHˆHˆHð	ð 	rE   Fc                ór   — t          d                     |                      |¬¦  «        ¦  «        ¦  «         dS )z‘Print the help for each Configurable class in self.classes.

        If classes=False (the default), only flags and aliases are printed.
        rÌ   ©ri   N)r×   rä   Ú	emit_helpr*  s     r>   Ú
print_helpzApplication.print_helpu  s2   € õ
 	ˆd�iŠi˜Ÿš¨w˜Ñ7Ô7Ñ8Ô8Ñ9Ô9Ð9Ð9Ð9rE   c              #  óÌ  K  — |                       ¦   «         E d{V —† |                      ¦   «         E d{V —† |                      ¦   «         E d{V —† |r\|                      ¦   «         }|�'dV — dV — t	          | j        ¦  «        D ]
}|V — dV — Œ|D ]}|                     ¦   «         V — dV — Œ|                      ¦   «         E d{V —† |                      |¦  «        E d{V —† dS )z—Yield the help-lines for each Configurable class in self.classes.

        If classes=False (the default), only flags and aliases are printed.
        NzClass optionsz=============r&   )	Úemit_descriptionr"  r  Ú_classes_with_config_traitsr    re   Úclass_get_helpÚemit_examplesr+  )rY   ri   Úhelp_classesr   rÀ   s        r>   r.  zApplication.emit_help|  s[  è è € ð
 ×(Ò(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ø×-Ò-Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ø×)Ò)Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+àð 	Ø×;Ò;Ñ=Ô=ˆLØÐ'Ø%Ð%Ð%Ð%Ø%Ð%Ð%Ð%Ý(¨Ô)BÑCÔCð ð �AØ�G�G�GØ�H�H�H�Hà#ð ð �Ø×(Ò(Ñ*Ô*Ð*Ð*Ð*Ø����Ø×%Ò%Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'à×*Ò*¨7Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3rE   rP   c                ód   — d                      d„ |                      ¦   «         D ¦   «         ¦  «        S )zwGenerate rST format documentation for the config options this application

        Returns a multiline string.
        rÌ   c              3  ó>   K  — | ]}|                      ¦   «         V — Œd S rœ   )Úclass_config_rst_doc)rô   rs   s     r>   rö   z6Application.document_config_options.<locals>.<genexpr>š  s.   è è € ÐWÐW°a˜×/Ò/Ñ1Ô1ÐWÐWÐWÐWÐWÐWrE   )rä   ru   rÉ   s    r>   Údocument_config_optionsz#Application.document_config_options•  s1   € ð
 �yŠyÐWÐW¸4×;TÒ;TÑ;VÔ;VÐWÑWÔWÑWÔWÐWrE   c                ón   — t          d                     |                      ¦   «         ¦  «        ¦  «         dS )z"Print the application description.rÌ   N)r×   rä   r1  rÉ   s    r>   Úprint_descriptionzApplication.print_descriptionœ  s.   € åˆd�iŠi˜×-Ò-Ñ/Ô/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1rE   c              #  óZ   K  — t          | j        p| j        pd¦  «        D ]
}|V — dV — ŒdS )z-Yield lines with the application description.r&   N)r    rc   r[   )rY   r   s     r>   r1  zApplication.emit_description   sJ   è è € å  Ô!1Ð!G°T´\Ð!GÀRÑHÔHð 	ð 	ˆAØˆGˆGˆGØˆHˆHˆHˆHð	ð 	rE   c                ón   — t          d                     |                      ¦   «         ¦  «        ¦  «         dS )z1Print usage and examples (see `emit_examples()`).rÌ   N)r×   rä   r4  rÉ   s    r>   Úprint_exampleszApplication.print_examples¦  s.   € åˆd�iŠi˜×*Ò*Ñ,Ô,Ñ-Ô-Ñ.Ô.Ð.Ð.Ð.rE   c              #  ó¦   K  — | j         rGdV — dV — dV — t          t          | j                              ¦   «         ¦  «        ¦  «        V — dV — dS dS )z¼Yield lines with the usage and examples.

        This usage string goes at the end of the command line help string
        and should contain examples of the application's usage.
        ÚExamplesz--------r&   N)rg   r   r	   r  rÉ   s    r>   r4  zApplication.emit_examplesª  st   è è € ð Œ=ð 	ØÐÐÐØÐÐÐØˆHˆHˆHÝ� ¤× 3Ò 3Ñ 5Ô 5Ñ6Ô6Ñ7Ô7Ð7Ð7Ð7ØˆHˆHˆHˆHˆHð	ð 	rE   c                ó.   — t          | j        ¦  «         dS )zPrint the version string.N)r×   rv   rÉ   s    r>   Úprint_versionzApplication.print_version·  s   € åˆdŒlÑÔÐÐÐrE   r&  c                óê  — | j                              |¦  «        }|€J ‚|\  }}t          |t          ¦  «        rt	          |¦  «        }t          |t
          ¦  «        rJt          |t          ¦  «        r5| j         	                    ¦   «          | 
                    | ¬¦  «        | _        n2t          |¦  «        r || ¦  «        | _        nt          d|z  ¦  «        ‚| j                             |¦  «         dS )z"Initialize a subcommand with argv.N)rt   z%Invalid mappings for subcommand '%s'!)r²   Úgetr�   rP   r$   r¢   rp   r2   rZ   Úclear_instanceÚinstancerÈ   ÚcallableÚAssertionErrorrÆ   )rY   r&  r%   r  rÈ   r'  s         r>   Úinitialize_subcommandz!Application.initialize_subcommand»  sñ   € ð Ô×"Ò" 4Ñ(Ô(ˆØˆˆˆØ‰	ˆ�å�f�cÑ"Ô"ð 	)Ý  Ñ(Ô(ˆFõ �f�dÑ#Ô#ð 		Q­
°6½;Ñ(GÔ(Gð 		QàŒN×)Ò)Ñ+Ô+Ð+à Ÿ/š/°˜/Ñ6Ô6ˆDŒKˆKÝ�fÑÔð 	Qà ˜& ™,œ,ˆDŒKˆKå Ð!HÈ4Ñ!OÑPÔPÐPð 	Œ×Ò˜tÑ$Ô$Ð$Ð$Ð$rE   ú)tuple[dict[str, t.Any], dict[str, t.Any]]c                ó†  — t          t          ¦  «        }| j        D ]H}|j        }|                     ¦   «         dd…         D ]"}||j                                      |¦  «         Œ#ŒIi }| j                             ¦   «         D ]’\  }}t          |t          ¦  «        r|\  }}| 
                    dd¦  «        \  }}	||         }
t          |
¦  «        dk    r|
d         }t          |t          ¦  «        s|f}|D ]}d                     ||	g¦  «        ||<   ŒŒ“i }| j                             ¦   «         D ]�\  }\  }}i }|                     ¦   «         D ]M\  }}||         }
t          |
¦  «        dk    r|
d         }||v r||                              |¦  «         ŒH|||<   ŒNt          |t          ¦  «        s|f}|D ]	}||f||<   Œ
Œ‘||fS )aä  Flatten flags and aliases for loaders, so cl-args override as expected.

        This prevents issues such as an alias pointing to InteractiveShell,
        but a config file setting the same trait in TerminalInteraciveShell
        getting inappropriate priority over the command-line arg.
        Also, loaders expect ``(key: longname)`` and not ``key: (longname, help)`` items.

        Only aliases with exactly one descendent in the class list
        will be promoted.

        r7   ré   rŠ   r   )r   Úlistri   rH   ro   Úappendr®   rú   r�   rû   rü   rò   rä   r±   Úupdate)rY   Úmro_treerÀ   Úclsnamert   r®   r  r  r'  r  ÚchildrenÚalr±   rí   Úflagdictr�   ÚnewflagÚsubdictÚks                      r>   Úflatten_flagszApplication.flatten_flagsÔ  s  € õ �tÑ$Ô$ˆØ”<ð 	:ð 	:ˆCØ”lˆGØŸ'š'™)œ) A b Dœ/ð :ð :�à˜œÔ)×0Ò0°Ñ9Ô9Ð9Ð9ð:ð
 #%ˆØ#œ|×1Ò1Ñ3Ô3ð 	5ð 	5‰OˆE�8Ý˜(¥EÑ*Ô*ð 'Ø&‘�˜!Ø!Ÿš¨¨QÑ/Ô/‰JˆC�Ø ”}ˆHÝ�8‰}Œ} Ò!Ð!à˜q”k�Ý˜g¥uÑ-Ô-ð !Ø˜�Øð 5ð 5�Ø!Ÿhšh¨¨U |Ñ4Ô4�˜‘�ð5ð
 ˆØ%)¤Z×%5Ò%5Ñ%7Ô%7ð 	+ð 	+Ñ!ˆCÑ!�(˜DØ*,ˆGØ (§¢Ñ 0Ô 0ð 	+ð 	+‘��WØ# Cœ=�å�x‘=”= AÒ%Ð%Ø" 1œ+�Cà˜'�>�>Ø˜C”L×'Ò'¨Ñ0Ô0Ð0Ð0à#*�G˜C‘L�Lå˜c¥5Ñ)Ô)ð Ø�f�Øð +ð +�Ø# T˜?��a‘�ð+à�gˆ~ÐrE   úlist[str] | Noner   c                ó@   — t          ||||| j        | j        ¬¦  «        S )N)ri   r8   r²   )r   r8   r²   )rY   r%   r®   r±   ri   s        r>   Ú_create_loaderzApplication._create_loader  s-   € õ &Ø�'˜5¨'°t´xÈTÔM]ð
ñ 
ô 
ð 	
rE   Úcheck_argcompleteú	list[str]c                ó–   — |r<dt           j        v r.	 ddlm}  |¦   «         }|€J ‚|S # t          t
          f$ r Y nw xY wt          j        S )a  Get `sys.argv` or equivalent from `argcomplete`

        `argcomplete`'s strategy is to call the python script with no arguments,
        so ``len(sys.argv) == 1``, and run until the `ArgumentParser` is constructed
        and determine what completions are available.

        On the other hand, `traitlet`'s subcommand-handling strategy is to check
        ``sys.argv[1]`` and see if it matches a subcommand, and if so then dynamically
        load the subcommand app and initialize it with ``sys.argv[1:]``.

        This helper method helps to take the current tokens for `argcomplete` and pass
        them through as `argv`.
        Ú_ARGCOMPLETEr   )Úget_argcomplete_cwords)ÚosÚenvironÚ#traitlets.config.argcomplete_configr_  ÚImportErrorÚModuleNotFoundErrorrÓ   r%   )rÀ   r[  r_  Úcwordss       r>   Ú_get_sys_argvzApplication._get_sys_argv  s{   € ð ð 	 µ2´:Ð!=Ð!=ðØVÐVÐVÐVÐVÐVà/Ð/Ñ1Ô1�ØÐ)Ð)Ð)Ø�øÝÕ!4Ð5ð ð ð Ø�ðøøøåŒxˆs   ’( ¨<»<c                óx   — dt           j        vrdS 	 ddlm}  |¦   «          dS # t          t
          f$ r Y dS w xY w)aß  Helper for `argcomplete` to recognize `traitlets` subcommands

        `argcomplete` does not know that `traitlets` has already consumed subcommands,
        as it only "sees" the final `argparse.ArgumentParser` that is constructed.
        (Indeed `KVArgParseConfigLoader` does not get passed subcommands at all currently.)
        We explicitly manipulate the environment variables used internally by `argcomplete`
        to get it to skip over the subcommand tokens.
        r^  Nr   )Úincrement_argcomplete_index)r`  ra  rb  rh  rc  rd  )rÀ   rh  s     r>   Ú"_handle_argcomplete_for_subcommandz.Application._handle_argcomplete_for_subcommand4  sj   € ð ¥¤Ð+Ð+ØˆFð	ØWÐWÐWÐWÐWÐWà'Ð'Ñ)Ô)Ð)Ð)Ð)øÝÕ0Ð1ð 	ð 	ð 	ØˆDˆDð	øøøs   ’$ ¤9¸9c                óŠ  ‡— t          |t          ¦  «        rJ ‚|€0|                      t          | j        ¦  «        ¬¦  «        dd…         }d„ |D ¦   «         | _        |r|d         dk    r|dd…         dgz   }| j        rmt          |¦  «        dk    rZ|d         |dd…         }}t          j        d|¦  «        r3|| j        v r*|  	                    ¦   «          |  
                    ||¦  «        S 	 |d|                     d	¦  «        …         Šn# t          $ r |ŠY nw xY wt          ˆfd
„dD ¦   «         ¦  «        r,|                      d‰v ¦  «         |                      d¦  «         d‰v sd‰v r)|                      ¦   «          |                      d¦  «         |                      ¦   «         \  }}t%          |                      ¦   «         ¦  «        }|                      ||||¬¦  «        }	 t+          |                     ¦   «         ¦  «        | _        n# t0          $ r ‚ w xY w|                      | j        ¦  «         |j        | _        dS )z!Parse the command line arguments.N)r[  r7   c                ó,   — g | ]}t          |¦  «        ‘ŒS rK   r"   )rô   Úargs     r>   ú
<listcomp>z2Application.parse_command_line.<locals>.<listcomp>N  s    € Ð7Ð7Ð7¨3•\ #Ñ&Ô&Ð7Ð7Ð7rE   r   r�   ú-hz^\w(\-?\w)*$rø   c              3  ó    •K  — | ]}|‰v V — Œ	d S rœ   rK   )rô   ÚxÚinterpreted_argvs     €r>   rö   z1Application.parse_command_line.<locals>.<genexpr>e  s)   øè è € ÐMÐM¨ˆqÐ$Ð$ÐMÐMÐMÐMÐMÐMrE   )rn  ú
--help-allz--helprr  z	--versionz-Vr-  )r�   rP   rf  r(  r²   r%   rò   ÚreÚmatchri  rI  ÚindexÚ
ValueErrorÚanyr/  r<   rB  rW  rL  r2  rZ  r   Úload_configÚ
cli_configÚ
SystemExitÚupdate_configÚ
extra_args)	rY   r%   r&  Úsubargvr±   r®   ri   Úloaderrq  s	           @r>   rÅ   zApplication.parse_command_lineH  sŒ  ø€ õ ˜d¥CÑ(Ô(Ð(Ð(Ð(Øˆ<Ø×%Ò%½¸TÔ=MÑ8NÔ8NÐ%ÑOÔOÐPQÐPRÐPRÔSˆDØ7Ð7°$Ð7Ñ7Ô7ˆŒ	àð 	%�D˜”G˜vÒ%Ð%à˜˜˜”8˜t˜fÑ$ˆDàÔð 	A¥ D¡	¤	¨A¢ à  œG T¨!¨"¨"¤X�'ˆDÝŒx˜¨Ñ.Ô.ð A°4¸4Ô;KÐ3KÐ3Kà×7Ò7Ñ9Ô9Ð9Ø×1Ò1°$¸Ñ@Ô@Ð@ð	$Ø#Ð$6 d§j¢j°Ñ&6Ô&6Ð$6Ô7ÐÐøÝð 	$ð 	$ð 	$Ø#ÐÐÐð	$øøøõ ÐMÐMÐMÐMÐ.LÐMÑMÔMÑMÔMð 	Ø�OŠO˜LÐ,<Ð<Ñ=Ô=Ð=Ø�IŠI�a‰LŒLˆLàÐ*Ð*Ð*¨dÐ6FÐ.FÐ.FØ×ÒÑ Ô Ð Ø�IŠI�a‰LŒLˆLð ×+Ò+Ñ-Ô-‰ˆˆwÝ�t×7Ò7Ñ9Ô9Ñ:Ô:ˆØ×$Ò$ T¨7°EÀ7Ð$ÑKÔKˆð	Ý& v×'9Ò'9Ñ';Ô';Ñ<Ô<ˆDŒOˆOøÝð 	ð 	ð 	ð ð	øøøð 	×Ò˜4œ?Ñ+Ô+Ð+à Ô+ˆŒˆˆs   Ã-D ÄDÄDÇ'&H ÈHÚbasefilenameÚpathú#str | t.Sequence[str | None] | NoneúAnyLogger | NoneÚraise_config_file_errorsút.Generator[t.Any, None, None]c              #  óÐ  K  — t           j                             |¦  «        rdg}t          |t          ¦  «        s|€|g}t          |¦  «        D �]–}|                      |dz   ||¬¦  «        }|r*|                     d||pt          j        ¦   «         ¦  «         |  	                    |dz   ||¬¦  «        }g }g }	||fD �]'}
d}	 |
 
                    ¦   «         }|r|                     d|
j        ¦  «         nA# t          $ r Y n5t          $ r) |
j        p|}|r‚ |r|                     d|d¬	¦  «         Y nw xY w|r¬t          |	|¦  «        D ]a\  }}|                     |¦  «        }|rE|rC|                     d
                     ||
j        t'          j        |d¬¦  «        ¦  «        ¦  «         Œb||
j        fV — |                     |¦  «         |	                     |
j        ¦  «         �Œ)�Œ˜dS )zeLoad config files (py,json) by filename and path.

        yield each config object in turn.
        Nz.py)r€  r8   zLooking for %s in %sz.jsonzLoaded config file: %sz&Exception while loading config file %sT)Úexc_infozMCollisions detected in {0} and {1} config files. {1} has higher priority: {2}r!   )r   )r`  r€  Úisabsr�   rP   rn   Úpython_config_loader_classr:   ÚgetcwdÚjson_config_loader_classrx  Úfull_filenamer   r  r  ÚzipÚ
collisionsÚwarningrX   rÑ   ÚdumpsrM  )rÀ   r  r€  r8   rƒ  ÚcurrentÚpyloaderÚ
jsonloaderÚloadedÚ	filenamesr~  r;   ÚfilenameÚearlier_configr�  s                  r>   Ú_load_config_fileszApplication._load_config_files{  s|  è è € õ Œ7�=Š=˜Ñ&Ô&ð 	Ø�6ˆDÝ�d�CÑ Ô ð 	 D LØ�6ˆDÝ ‘~”~ð (	;ñ (	;ˆGà×5Ò5°lÀUÑ6JÐQXÐ^aÐ5ÑbÔbˆHØð XØ—	’	Ð0°,ÀÐ@VÍ2Ì9É;Ì;ÑWÔWÐWØ×5Ò5°lÀWÑ6LÐSZÐ`cÐ5ÑdÔdˆJØ"$ˆFØ#%ˆIØ# ZÐ0ð  ;ñ  ;�Ø�ðRØ#×/Ò/Ñ1Ô1�Fð ð RØŸ	š	Ð":¸FÔ<PÑQÔQÐQøøõ *ð ð ð Ø�DÝ ð eð eð eð  &Ô3ÐC°|�Hà/ð ØØð eØŸ	š	Ð"JÈHÐ_c˜	ÑdÔdÐdøøðeøøøð ð ;Ý47¸	À6Ñ4JÔ4Jð 
ð 
Ñ0˜ .Ø%3×%>Ò%>¸vÑ%FÔ%F˜
Ø%ð ¨#ð ØŸKšKð!@ß@FÂØ$,Ø$*Ô$8Ý$(¤J¨zÀ!Ð$DÑ$DÔ$DñA"ô A"ñô ð øð " 6Ô#7Ð8Ð8Ð8Ð8Ø—M’M &Ñ)Ô)Ð)Ø×$Ò$ VÔ%9Ñ:Ô:Ð:ùñA ;ð(	;ð (	;s   ÃC3Ã3
D1Ã?/D1Ä0D1c                ó    — | j         dd…         S )z$Currently loaded configuration filesN)r´   rÉ   s    r>   Úloaded_config_fileszApplication.loaded_config_filesµ  s   € ð Ô(¨¨¨Ô+Ð+rE   r•  c                ó†  — t           j                             |¦  «        \  }}t          ¦   «         }|                      ||| j        | j        ¬¦  «        D ]=\  }}|                     |¦  «         || j        vr| j         	                    |¦  «         Œ>|                     | j
        ¦  «         |                      |¦  «         dS )z'Load config files by filename and path.)r€  r8   rƒ  N)r`  r€  Úsplitextr   r—  r8   rƒ  Úmerger´   rM  ry  r{  )rY   r•  r€  ÚextÚ
new_configr;   Úfnames          r>   Úload_config_filezApplication.load_config_fileº  sË   € õ
 œ×(Ò(¨Ñ2Ô2‰ˆ�#Ý‘X”Xˆ
Ø!×4Ò4ØØØ”Ø%)Ô%Bð	 5ñ 
ô 
ð 
	8ð 
	8‰MˆF�Eð ×Ò˜VÑ$Ô$Ð$à˜TÔ6Ð6Ð6àÔ)×0Ò0°Ñ7Ô7Ð7øà×Ò˜œÑ)Ô)Ð)Ø×Ò˜:Ñ&Ô&Ð&Ð&Ð&rE   c                óF  — | j                              ¦   «                              dd¦  «        }t          ¦   «         }| j                             d|¦  «         t          j                             ¦   «         D ]|\  }}| 	                    |¦  «        rb| j                             d||¦  «         | 
                    d¦  «        �^}}}|}|D ]
}	||	         }Œt          ||t          |¦  «        ¦  «         Œ}|                     | j        ¦  «         |                      |¦  «         dS )z!Load config files by environment.ú-r'  z1Looping through config variables with prefix "%s"zSeeing environ "%s"="%s"Ú__N)rb   Úupperr   r   r8   r:   r`  ra  rú   Ú
startswithrü   Úsetattrr   rœ  ry  r{  )
rY   ÚPREFIXrž  rV  Úvr'  r€  rí   Úsectionr   s
             r>   Úload_config_environzApplication.load_config_environÐ  s  € ð ”—’Ñ"Ô"×*Ò*¨3°Ñ4Ô4ˆÝ‘X”Xˆ
àŒ�ŠÐJÈFÑSÔSÐSå”J×$Ò$Ñ&Ô&ð 		?ð 		?‰DˆAˆqØ�|Š|˜FÑ#Ô#ð ?Ø”—’Ð9¸1¸aÑ@Ô@Ð@ð !"§¢¨¡¤‘��D˜#Ø$�Øð )ð )�AØ% aœj�G�GÝ˜ Õ&:¸1Ñ&=Ô&=Ñ>Ô>Ð>øà×Ò˜œÑ)Ô)Ð)Ø×Ò˜:Ñ&Ô&Ð&Ð&Ð&rE   c              #  óX  ‡‡K  — |€| j         }t          d„ |                      |¦  «        D ¦   «         ¦  «        Šd
ˆfd„Š	 ‰                     ¦   «         }t          ˆfd	„‰                     ¦   «         D ¦   «         ¦  «        Š‰|k    rnŒI‰                     ¦   «         D ]\  }}|r|V — ŒdS )aË  
        Yields only classes with configurable traits, and their subclasses.

        :param classes:
            The list of classes to iterate; if not set, uses :attr:`classes`.

        Thus, produced sample config-file will contain all classes
        on which a trait-value may be overridden:

        - either on the class owning the trait,
        - or on its subclasses, even if those subclasses do not define
          any traits themselves.
        Nc              3  ó`   K  — | ])}|t          |                     d ¬¦  «        ¦  «        fV — Œ*dS )Tr‚   N)r(  Úclass_own_traits)rô   rÀ   s     r>   rö   z:Application._classes_with_config_traits.<locals>.<genexpr>ù  sT   è è € ð $
ð $
àð •$�s×+Ò+°4Ð+Ñ8Ô8Ñ9Ô9Ð:ð$
ð $
ð $
ð $
ð $
ð $
rE   rÀ   r4   r/   r(  c                óD   •— t          ˆfd„| j        D ¦   «         ¦  «        S )Nc              3  ó0   •K  — | ]}|‰v o‰|         V — Œd S rœ   rK   )rô   ÚbÚcls_to_configs     €r>   rö   zZApplication._classes_with_config_traits.<locals>.is_any_parent_included.<locals>.<genexpr>ÿ  s2   øè è € ÐVÐVÀ1�q˜MÐ)Ð>¨m¸AÔ.>ÐVÐVÐVÐVÐVÐVrE   )rw  Ú	__bases__)rÀ   r±  s    €r>   Úis_any_parent_includedzGApplication._classes_with_config_traits.<locals>.is_any_parent_includedþ  s(   ø€ ÝÐVÐVÐVÐVÈÌÐVÑVÔVÑVÔVÐVrE   Tc              3  ó<   •K  — | ]\  }}||p
 ‰|¦  «        fV — Œd S rœ   rK   )rô   rÀ   Úinc_yesr³  s      €r>   rö   z:Application._classes_with_config_traits.<locals>.<genexpr>  sQ   øè è € ð (ð (á �C˜ð �gÐ<Ð!7Ð!7¸Ñ!<Ô!<Ð=ð(ð (ð (ð (ð (ð (rE   )rÀ   r4   r/   r(  )ri   r   ru   rÏ   rú   )rY   ri   Úto_incl_origÚclrµ  r±  r³  s        @@r>   r2  z'Application._classes_with_config_traitsæ  s  øøè è € ð  ˆ?Ø”lˆGå#ð $
ð $
à×0Ò0°Ñ9Ô9ð$
ñ $
ô $
ñ 
ô 
ˆð
	Wð 	Wð 	Wð 	Wð 	Wð 	Wð	Ø(×-Ò-Ñ/Ô/ˆLÝ'ð (ð (ð (ð (à$1×$7Ò$7Ñ$9Ô$9ð(ñ (ô (ñ ô ˆMð  Ò,Ð,Øð	ð )×.Ò.Ñ0Ô0ð 	ð 	‰KˆB�Øð Ø���øð	ð 	rE   c                ót  — d| j         z  g}|                     d¦  «         |                     d¦  «         |                     d¦  «         |€| j        n|}t          |                      |¦  «        ¦  «        }|D ]*}|                     |                     |¦  «        ¦  «         Œ+d                     |¦  «        S )z/generate default config file from Configurablesz# Configuration file for %s.r&   zc = get_config()  #noqaNrÌ   )rb   rM  ri   rL  r2  Úclass_config_sectionrä   )rY   ri   ÚlinesÚconfig_classesrÀ   s        r>   Úgenerate_config_filez Application.generate_config_file  s¸   € à/°$´)Ñ;Ð<ˆØ�Š�RÑÔÐØ�ŠÐ3Ñ4Ô4Ð4Ø�Š�RÑÔÐØ") /�$”,�,°wˆÝ˜d×>Ò>¸wÑGÔGÑHÔHˆØ!ð 	Cð 	CˆCØ�LŠL˜×1Ò1°.ÑAÔAÑBÔBÐBÐBØ�yŠy˜ÑÔÐrE   c                óØ   — t          | dd¦  «        rX| j        j        D ]B}t          t          ¦  «        5  |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   ŒCd| _        d S d S )Nr§   F)rŸ   r8   rŒ   r   r  Úcloser§   )rY   Úhandlers     r>   Úclose_handlerszApplication.close_handlers  s¶   € Ý�4Ð.°Ñ6Ô6ð 	-ð  œ8Ô,ð $ð $�Ý�iÑ(Ô(ð $ð $Ø—M’M‘O”O�Oð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $øà',ˆDÔ$Ð$Ð$ð	-ð 	-s   ´AÁA	ÁA	r   Úexit_statusúint | str | Nonec                ó–   — | j                              d| j        ¦  «         |                      ¦   «          t	          j        |¦  «         d S )NzExiting application: %s)r8   r:   rb   rÀ  rÓ   r<   )rY   rÁ  s     r>   r<   zApplication.exit&  sC   € ØŒ�ŠÐ0°$´)Ñ<Ô<Ð<Ø×ÒÑÔÐÝŒ�ÑÔÐÐÐrE   c                óˆ   — t          t          ¦  «        5  |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S rœ   )r   r  rÀ  rÉ   s    r>   Ú__del__zApplication.__del__+  sˆ   € õ •iÑ Ô ð 	"ð 	"Ø×ÒÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"s   •7·;¾;c                ór   —  | j         di |¤Ž}|                     |¦  «         |                     ¦   «          dS )z„Launch a global instance of this Application

        If a global instance already exists, this reinitializes and starts it
        NrK   )rF  rÆ   r¹   )rÀ   r%   r5   r1   s       r>   Úlaunch_instancezApplication.launch_instance2  s>   € ð ˆcŒlÐ$Ð$˜VÐ$Ð$ˆØ�Š�tÑÔÐØ�	Š	‰ŒˆˆˆrE   rœ   )ri   rj   r/   rk   )r/   rƒ   )r™   r   r/   rš   )r/   rš   )r/   r¨   )r5   r4   r/   rš   )r%   rÃ   r/   rš   )r/   rç   )ri   r(  r/   rç   )F)ri   r(  r/   rš   )r/   rP   )r&  rP   r%   rÃ   r/   rš   )r/   rJ  )
r%   rX  r®   rƒ   r±   rƒ   ri   rj   r/   r   )r[  r(  r/   r\  )NF)
r  rP   r€  r�  r8   r‚  rƒ  r(  r/   r„  )r/   r\  )r•  rP   r€  r�  r/   rš   )ri   rj   r/   rP   )r   )rÁ  rÂ  r/   rš   )r%   rÃ   r5   r4   r/   rš   )crH   rI   rJ   r[   r   rb   Ú__annotations__rc   rd   re   rf   r   rˆ  r   rŠ  rg   ri   ru   rv   r   r%   r   r'   rƒ  r   r\   r]   Útagr‘   rM   r’   r”   r“   r—   r   r¡   r¥   r    r   r­   r   r˜   r®   r|   r±   r²   r   rÈ   r|  r   ry  r´   r¯   r°   r·   r¼   r¾   r   rÂ   rD   rÆ   r¹   r»   ræ   rå   r  r  r  r  r#  r"  r+  r/  r.  r9  r;  r1  r>  r4  rB  rI  rW  rZ  Úclassmethodrf  ri  rÅ   r—  Úpropertyr™  r   rª  r2  r¼  rÀ  r<   rÅ  rÇ  r^   r_   s   @r>   r2   r2   ˜   s¢  ø€ € € € € € ØBÐBð -4¨G°MÑ,BÔ,B€DÐBÐBÐBÑBð 4;°7Ð;TÑ3UÔ3U€KÐUÐUÐUÑUà:A¸'ÐBTÑ:UÔ:UÐÐUÐUÐUÑUØ<C¸GÐDXÑ<YÔ<YÐÐYÐYÐYÑYØ>E¸gÐF\Ñ>]Ô>]ÐÐ]Ð]Ð]Ñ]à!3ÐØ3Ðð 18°±	´	€HÐ9Ð9Ð9Ñ9ð €GÐÐÐÑð -1ð!ð !ð !ð !ð !ð. 07¨w°u©~¬~€GÐ=Ð=Ð=Ñ=ð #' $¡&¤&€DÐ(Ð(Ð(Ñ(ð  $˜tÐ$QÑRÔRÐð �ØMØ”lØ2ðñ ô ÷ 
‚c�€cÑÔð	 ð (Ðà�'ØØGðñ ô ÷ 
‚c�€cÑÔð ð
 �Ø-Ø*ðñ ô ÷ 
‚c�€cÑÔð ð
1ð 1ð 1ð 1ðf €Wˆ]˜L¨+Ð7GÑHÔHð"ð "ð "ñ IÔHð"ð €WˆU˜Ð#Ñ#Ô#ð"ð "ð "ñ $Ô#ð"ð(ð (ð (ð (ð €WˆU�^„^ðð ð ñ „^ðð �Tð.ð0ñ 0ô 0÷` 
‚c�€cÑÔða ðn $Ð%<Ð=€GÐ=Ð=Ð=Ñ=ð Ø ¤ð ðð
 Dð
ð Ø! 4ð ðð
 Kð
ð Ø&¨ð ðð
 Að
ð#ð €Eð ð ð ñ ð@ 8<°t±v´v€KÐ=Ð=Ð=Ñ=àˆXÐ@ÈTÐRÑRÔR€Fð ��g�g‘i”i‘”€Jà�ØØ
Ø
ðð		ñ 	ô 	€Jð '+ d¡f¤fÐÐ,Ð,Ð,Ñ,à�$ØPðñ ô ç	‚c�€cÑÔð ð �tØZðñ ô ç	‚c�€cÑÔð ð €WÐÑ Ô ð&ð &ð &ñ !Ô ð&ð €Wˆ]ÑÔð0ð 0ð 0ñ Ôð0ð

7ð 
7ð 
7ð 
7ð €WˆXÑÔØð9ð 9ð 9ð 9ð 9ñ „^ñ Ôð9ð ð&ð &ð &ð &ñ Ôð&ð'ð 'ð 'ð 'ðUð Uð Uð UðB1ð 1ð 1ð 1ð$ð $ð $ð $ðL0ð 0ð 0ð 0ðð ð ð ð03ð 3ð 3ð 3ðð ð ð ð7ð 7ð 7ð 7ðð ð ð ð"ð ð ð ð:ð :ð :ð :ð :ð4ð 4ð 4ð 4ð 4ð2Xð Xð Xð Xð2ð 2ð 2ð 2ðð ð ð ð/ð /ð /ð /ðð ð ð ðð ð ð ð ð%ð %ð %ð %ñ Ôð%ð09ð 9ð 9ð 9ðv	
ð 	
ð 	
ð 	
ð ðð ð ð ñ „[ðð2 ðð ð ñ „[ðð& ð0,ð 0,ð 0,ð 0,ñ Ôð0,ðd ð
 !%Ø).ð7;ð 7;ð 7;ð 7;ñ „[ð7;ðr ð,ð ,ð ,ñ „Xð,ð àIMð'ð 'ð 'ð 'ñ Ôð'ð* ð'ð 'ð 'ñ Ôð'ð, -1ð(ð (ð (ð (ð (ðT
 ð 
 ð 
 ð 
 ð 
 ð-ð -ð -ð -ðð ð ð ð ð
"ð "ð "ð "ð ðð ð ð ñ „[ðð ð ð ð rE   r2   rb   rP   ÚconfigurableÚset_helpÚ
unset_helprƒ   c                ó€   — |pd|z  }|pd|z  }|                      d¦  «        \  }}||dii}||dii}| ||fd| z   ||fiS )aû  Helper for building basic --trait, --no-trait flags.

    Parameters
    ----------
    name : str
        The name of the flag.
    configurable : str
        The 'Class.trait' string of the trait to be set/unset with the flag
    set_help : unicode
        help string for --name flag
    unset_help : unicode
        help string for --no-name flag

    Returns
    -------
    cfg : dict
        A dict with two keys: 'name', and 'no-name', for setting and unsetting
        the trait, respectively.
    zset %s=Truezset %s=FalserŠ   TFzno-)rü   )rb   rÌ  rÍ  rÎ  rÀ   r  ÚsetterÚunsetters           r>   Úboolean_flagrÒ  E  sr   € ð* Ð7˜=¨<Ñ7€HØÐ<˜~°Ñ<€Jà×#Ò# CÑ(Ô(�J€Cˆà�E˜4�=Ð!€FØ�e˜U�^Ð$€HØ�6˜8Ð$ e¨d¡l°X¸zÐ4JÐKÐKrE   r   c                 óŒ   — t                                ¦   «         rt                                ¦   «         j        S t	          ¦   «         S )z|Get the config object for the global Application instance, if there is one

    otherwise return an empty config object
    )r2   ÚinitializedrF  r;   r   rK   rE   r>   Ú
get_configrÕ  d  s6   € õ
 ×ÒÑ Ô ð Ý×#Ò#Ñ%Ô%Ô,Ð,å‰xŒxˆrE   Ú__main__)r.   r,   r/   r,   )r&   r&   )
rb   rP   rÌ  rP   rÍ  rP   rÎ  rP   r/   rƒ   )r/   r   )br[   Ú
__future__r   r@   rÑ   r\   r`  rÚ   rs  rÓ   ÚtypingrB   Úcollectionsr   r   Ú
contextlibr   rÏ   r   Úlogging.configr   Útextwrapr	   Útraitlets.config.configurabler
   r   Útraitlets.config.loaderr   r   r   r   r   r   r   Útraitlets.traitletsr   r   r   r   r   r   r   r   r   r   Útraitlets.utils.bunchr   Útraitlets.utils.nested_updater   Útraitlets.utils.textr   r    Úutilsr#   Úutils.importstringr$   r  rd   re   Úhasattrr%   rf   ra  rD  Ú_envvarÚlowerr'   rv  Ú
executableÚendswithr•   ÚTypeVarÚCallableÚAnyr,   ÚUnionÚLoggerr¨   rP   rƒ   ÚOptionalrÃ   rù   rh   rD   r  rG   Ú	FormatterrM   r2   r®   Údefault_aliasesr±   Údefault_flagsrÒ  rÕ  rH   rÇ  rK   rE   r>   ú<module>ró     sy  ðØ 2Ð 2ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð à MÐ MÐ MÐ MÐ MÐ MÐ MÐ Mðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð (Ð 'Ð 'Ð 'Ð 'Ð 'Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8à  Ð  Ð  Ð  Ð  Ð  Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ð÷
 
‚E�G„Gð ð÷ 
‚E�G„Gð ð €wˆs�FÑÔð Øˆt€C„HðÐ ð Œ*�.Š.ÐHÈ"Ñ
MÔ
M€Ø
‡=‚=�?„?�mÐ#Ð#Ø48Ð1Ð1Ø‡]‚]�_„_Ð*Ð*Ð*Ø49Ð1Ð1à
ˆ*ð 	hØ
ñ	ñô ð ð Œ^ÐF ¤× 7Ò 7¸Ñ FÔ F€
à€A„Iˆc˜œ C¨¬ JÔ/Ð0Ñ0Ô0€ØŒG�G”NÐ$BÐBÔC€	Ø
Œ&��a”e�Ô
€ØŒ:�a”f˜S”kÔ"€ØŒf�Q”V˜LÔ)Ô*€ðð ð ð ð*	ð 	ð 	ð 	ð 	�yñ 	ô 	ð 	ð&ð &ð &ð &ð &�WÔ&ñ &ô &ð &ð*bð bð bð bð bÐ'ñ bô bð bðR Ô%€ØÔ!€ðLð Lð Lð Lð Lð>ð ð ð ð ˆzÒÐØ×ÒÑ!Ô!Ð!Ð!Ð!ð ÐrE   