§
    ŽŸjQl  ã                  óè  — 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
mZ ddlmZmZmZmZmZmZ ddlmZ ddlmZ ddlmZmZmZmZmZmZ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gZ(ej)         *                    e+¦  «        Z,ej)         -                    ej)         .                    e,d¦  «        ¦  «        Z/i de%j0        “de%j1        “de%j2        “de%j3        “de%j4        “de%j5        “de%j6        “de%j7        “de%j8        “de%j9        “de%j:        “de%j;        “de%j<        “de%j=        “de%j>        “de%j?        “d e%j@        “i d!e%jA        “d"e%jB        “d#e%jC        “d$e%jD        “d%e%jE        “d&e%jF        “d'e%jG        “d(e%jH        “d)e%jI        “d*e%jJ        “d+e%jK        “d,ejL        “d-d.„ “d/d0„ “d1d2„ “d3e%jM        “d4e%jN        “¥d5e%jO        i¥ZPd6„ ZQd7„ ZR G d8„ d9e¦  «        ZS G d:„ d;e'¦  «        ZTdS )<zˆThis module defines TemplateExporter, a highly configurable converter
that uses Jinja2 to export notebook files into different formats.
é    )ÚannotationsN)ÚPath)Ú
BaseLoaderÚChoiceLoaderÚ
DictLoaderÚEnvironmentÚFileSystemLoaderÚTemplateNotFound)Újupyter_path)ÚNotebookNode)ÚBoolÚDictÚ	HasTraitsÚListÚUnicodeÚdefaultÚobserveÚvalidate)ÚConfig)Úimport_item©Úfiltersé   )ÚExporterzjinja2.ext.loopcontrolsz
../../.gitÚindentÚmarkdown2htmlÚmarkdown2asciidocÚ	ansi2htmlÚfilter_data_typeÚ	get_linesÚhighlight2htmlÚhighlight2latexÚipython2pythonÚ
posix_pathÚmarkdown2latexÚmarkdown2rstÚcomment_linesÚ
strip_ansiÚstrip_dollarsÚstrip_files_prefixÚ	html2textÚ
add_anchorÚ
ansi2latexÚ	wrap_textÚescape_latexÚcitation2latexÚpath2urlÚadd_promptsÚ
ascii_onlyÚprevent_list_blocksÚget_metadataÚconvert_pandocÚ
json_dumpsÚescape_htmlc                óD   — t          j        t          | ¦  «        ¦  «        S ©N©ÚhtmlÚescapeÚstr©Úss    úq/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/nbconvert/exporters/templateexporter.pyú<lambda>rB   I   s   € �Tœ[­¨Q©¬Ñ0Ô0€ ó    Úescape_html_keep_quotesc                óH   — t          j        t          | ¦  «        d¬¦  «        S )NF)Úquoter;   r?   s    rA   rB   rB   J   s   € ­¬µS¸±V´VÀ5Ð)IÑ)IÔ)I€ rC   Úescape_html_scriptc                ó.   — |                       dd¦  «        S )Nú/z\/)Úreplacer?   s    rA   rB   rB   K   s   €  A§I¢I¨c°5Ñ$9Ô$9€ rC   Ú
clean_htmlÚstrip_trailing_newlineÚtext_base64c                óö   — |                      ¦   «         D ]c\  }}t          |t          ¦  «        r+|| vri | |<   t          | |         |¦  «         | |         s| |= ŒE|€|                      |d¦  «         Œ^|| |<   Œd| S )z]Recursively update one dictionary using another.
    None values will delete their keys.
    N)ÚitemsÚ
isinstanceÚdictÚrecursive_updateÚpop)ÚtargetÚnewÚkÚvs       rA   rR   rR   T   s™   € ð —	’	‘”ð ð ‰ˆˆ1Ý�a�ÑÔð 	Ø˜ˆˆØ��q‘	Ý˜V AœY¨Ñ*Ô*Ð*Ø˜!”9ð à˜1�IøàˆYØ�JŠJ�q˜$ÑÔÐÐð ˆF�1‰IˆIØ€MrC   c                ó>   — t          j        | t          d¬¦  «         dS )zEmit a deprecation warning.é   ©Ú
stacklevelN)ÚwarningsÚwarnÚDeprecationWarning)Úmsgs    rA   Ú
deprecatedr`   j   s    € å„M�#Õ)°aÐ8Ñ8Ô8Ð8Ð8Ð8rC   c                  ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚExtensionTolerantLoaderaN  A template loader which optionally adds a given extension when searching.

    Constructor takes two arguments: *loader* is another Jinja loader instance
    to wrap. *extension* is the extension, which will be added to the template
    name if finding the template without it fails. This should include the dot,
    e.g. '.tpl'.
    c                ó"   — || _         || _        dS )zInitialize the loader.N)ÚloaderÚ	extension)Úselfrd   re   s      rA   Ú__init__z ExtensionTolerantLoader.__init__x   s   € àˆŒØ"ˆŒˆˆrC   c                óô   — 	 | j                              ||¦  «        S # t          $ rP |                     | j        ¦  «        rt          |¦  «        d‚| j                              ||| j        z   ¦  «        cY S w xY w)zGet the source for a template.N)rd   Ú
get_sourcer
   Úendswithre   )rf   ÚenvironmentÚtemplates      rA   ri   z"ExtensionTolerantLoader.get_source}   sŒ   € ð	RØ”;×)Ò)¨+°xÑ@Ô@Ð@øÝð 	Rð 	Rð 	RØ× Ò  ¤Ñ0Ô0ð ;Ý& xÑ0Ô0°dÐ:Ø”;×)Ò)¨+°xÀ$Ä.Ñ7PÑQÔQÐQÐQÐQð	Røøøs   ‚ �AA7Á6A7c                ó4   — | j                              ¦   «         S )zList available templates.)rd   Úlist_templates©rf   s    rA   rn   z&ExtensionTolerantLoader.list_templates†   s   € àŒ{×)Ò)Ñ+Ô+Ð+rC   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rg   ri   rn   © rC   rA   rb   rb   o   sN   € € € € € ðð ð#ð #ð #ð
Rð Rð Rð,ð ,ð ,ð ,ð ,rC   rb   c            	      ó   ‡ — e Zd ZU dZerGe                     dd                      ee                     ¦   «         ¦  «        ¦  «        z   ¬¦  «        ndZdZ	dTd„Z
ed„ ¦   «         ZdZdTd„Zed	„ ¦   «         Zeˆ fd
„¦   «         Z ed¬¦  «                             dd¬¦  «        Z eddd¬¦  «                             dd¬¦  «        Z edd¬¦  «                             d¬¦  «        Z edd¬¦  «                             d¬¦  «        ZdZdZ ed¦  «        d„ ¦   «         Z ed¦  «        d„ ¦   «         Z ed¦  «        d„ ¦   «         Z ed¦  «        d„ ¦   «         Z  e!dg¦  «                             dd¬¦  «        Z" e! e¦   «         ¦  «                             dd¬¦  «        Z# e! e¦   «         ¦  «                             dd¬¦  «        Z$ ed ¦  «        d!„ ¦   «         Z% e¦   «                              dd¬¦  «        Z& e! e'd"d#¦  «        d$¬¦  «                             d¬¦  «        Z( ed%¦  «        d&„ ¦   «         Z) edd'¬¦  «                             d¬(¦  «        Z* edd)¬¦  «                             d¬(¦  «        Z+ edd*¬¦  «                             d¬(¦  «        Z, edd+¬¦  «                             d¬(¦  «        Z- edd,¬¦  «                             d¬(¦  «        Z. edd-¬¦  «                             d¬(¦  «        Z/ edd.¬¦  «                             d¬(¦  «        Z0 edd/¬¦  «                             d¬(¦  «        Z1 edd0¬¦  «                             d¬(¦  «        Z2 e!d1¬¦  «                             d¬¦  «        Z3d2e4d3<    e5d4¬¦  «                             dd¬¦  «        Z6 e! e¦   «         d5¬¦  «                             d¬(¦  «        Z7 ed6¦  «        d7„ ¦   «         Z8dTˆ fd8„	Z9d9„ Z:	 dTdUˆ fdB„Z;	 dTdVˆ fdD„Z<	 dTdWˆ fdG„Z=dH„ Z>dI„ Z?dJ„ ZdK„ Z@ˆ fdL„ZAdM„ ZB edN¦  «        dXdO„¦   «         ZCeDdP„ ¦   «         ZEdQ„ ZFdR„ ZGˆ fdS„ZHˆ xZIS )YÚTemplateExporteraá  
    Exports notebooks into other file formats.  Uses Jinja 2 templating engine
    to output new formats.  Inherit from this class if you are creating a new
    template type along with new filters/preprocessors.  If the filters/
    preprocessors provided by default suffice, there is no need to inherit from
    this class.  Instead, override the template_file and file_extension
    traits via a config file.

    Filters available by default for templates:

    {filters}
    z- z
    - r   Nc                ó   — d | _         d S r:   )Ú_template_cached©rf   Úchanges     rA   Ú_invalidate_template_cachez+TemplateExporter._invalidate_template_cache¢   s   € Ø $ˆÔÐÐrC   c                óP   — | j         €|                      ¦   «         | _         | j         S r:   )rx   Ú_load_templatero   s    rA   rl   zTemplateExporter.template¥   s(   € àÔ Ð(Ø$(×$7Ò$7Ñ$9Ô$9ˆDÔ!ØÔ$Ð$rC   c                ó<   — d | _         |                      ¦   «          d S r:   )Ú_environment_cachedr{   ry   s     rA   Ú_invalidate_environment_cachez.TemplateExporter._invalidate_environment_cache­   s"   € Ø#'ˆÔ Ø×'Ò'Ñ)Ô)Ð)Ð)Ð)rC   c                óP   — | j         €|                      ¦   «         | _         | j         S r:   )r   Ú_create_environmentro   s    rA   rk   zTemplateExporter.environment±   s(   € àÔ#Ð+Ø'+×'?Ò'?Ñ'AÔ'AˆDÔ$ØÔ'Ð'rC   c                óÒ   •— t          ddiddidœ¦  «        }t          ¦   «         j        r<t          ¦   «         j                             ¦   «         }|                     |¦  «         |}|S )NÚenabledT)ÚRegexRemovePreprocessorÚTagRemovePreprocessor)r   ÚsuperÚdefault_configÚcopyÚmerge)rf   ÚcÚc2Ú	__class__s      €rA   rˆ   zTemplateExporter.default_config·   sn   ø€ åà,5°tÐ+<Ø*3°TÐ):ðð ñ
ô 
ˆõ ‰7Œ7Ô!ð 	Ý‘”Ô'×,Ò,Ñ.Ô.ˆBØ�HŠH�Q‰KŒKˆKØˆAØˆrC   zName of the template to use)ÚhelpT)ÚconfigÚaffects_templatez Name of the template file to use)Ú
allow_nonerŽ   Ú zraw template string©Úaffects_environmentFz%Enable Jinja async template executionz<memory>Útemplate_namec                ó€  — |d         }|r³|                      d¦  «        ržt          j        d| j        › d�t          d¬¦  «         t
          j                             | j        ¦  «        \  }| _        |r"t
          j                             |¦  «        \  }}|r't
          j         	                    |¦  «        r|g| _
        |S )NÚvalueú.tplz 5.x style template name passed 'úƒ'. Use --template-name for the template directory with a index.<ext>.j2 file and/or --template-file to denote a different template.rY   rZ   )rj   r\   r]   r•   r^   ÚosÚpathÚsplitÚtemplate_fileÚisabsÚextra_template_basedirs)rf   rz   r•   Ú	directorys       rA   Ú_template_name_validatez(TemplateExporter._template_name_validateÖ   sÒ   € à˜wœˆØð 
	;˜]×3Ò3°FÑ;Ô;ð 
	;ÝŒMð K°4Ô3Eð  Kð  Kð  KÝ"Øðñ ô ð õ
 -/¬G¯MªM¸$Ô:LÑ,MÔ,MÑ)ˆI�tÔ)Øð DÝ+-¬7¯=ª=¸Ñ+CÔ+CÑ(�	˜=Øð ;�RœWŸ]š]¨9Ñ5Ô5ð ;Ø09¨{�Ô,ØÐrC   r�   c                ó´  — |d         }|dk    r| j         | _        d S t          j                             |¦  «        }t          j                             |¦  «        ryt          j                             |¦  «        \  }| _        |g| j        ¢| _        | j        r>| j                             d¦  «        r&t          j
        d|› d�t          d¬¦  «         d S d S d S d S )NrU   r   r˜   z 5.x style template file passed 'r™   rY   rZ   )Údefault_templater�   rš   r›   ÚabspathÚisfilerœ   Úextra_template_pathsrj   r\   r]   r^   )rf   rz   rU   Ú	full_pathr    s        rA   Ú_template_file_changedz'TemplateExporter._template_file_changedæ   s  € à�UŒmˆØ�)ÒÐØ!%Ô!6ˆDÔØˆFõ ”G—O’O CÑ(Ô(ˆ	ÝŒ7�>Š>˜)Ñ$Ô$ð 		Ý,.¬G¯MªM¸)Ñ,DÔ,DÑ)ˆI�tÔ)Ø)2Ð(O°TÔ5NÐ(OˆDÔ%àÔ!ð  dÔ&8×&AÒ&AÀ&Ñ&IÔ&Ið Ý”ð @°sð  @ð  @ð  @Ý&Ø ðñ ô ð ð ð ð		ð 		ðð ð ð rC   c                ó(   — | j         r
d| j         z   S d S )NÚindex)Útemplate_extensionro   s    rA   Ú_template_file_defaultz'TemplateExporter._template_file_defaultú   s    € àÔ"ð 	5Ø˜TÔ4Ñ4Ð4ØˆtrC   Úraw_templatec                óV   — |d         s| j         | _        |                      ¦   «          d S )NrU   )Ú_last_template_filer�   r{   ry   s     rA   Ú_raw_template_changedz&TemplateExporter._raw_template_changed   s1   € à�eŒ}ð 	:Ø!%Ô!9ˆDÔØ×'Ò'Ñ)Ô)Ð)Ð)Ð)rC   ú.)r�   r”   rŸ   c                ó*   — t          j        ¦   «         gS r:   )rš   Úgetcwdro   s    rA   Ú _default_extra_template_basedirsz1TemplateExporter._default_extra_template_basedirs
  s   € å”	‘”ˆ}ÐrC   Ú	nbconvertÚ	templatesz*Path where templates can be installed too.r«   c                ó2   — | j         r
| j         dz   S | j         S )Nz.j2)Úfile_extensionro   s    rA   Ú_template_extension_defaultz,TemplateExporter._template_extension_default  s$   € àÔð 	/ØÔ&¨Ñ.Ð.ØÔ"Ð"rC   zNThis allows you to exclude code cell inputs from all templates if set to True.)r�   zKThis allows you to exclude input prompts from all templates if set to True.zOThis allows you to exclude code cell outputs from all templates if set to True.zLThis allows you to exclude output prompts from all templates if set to True.zSThis allows you to exclude output of stdin stream from lab template if set to True.zHThis allows you to exclude code cells from all templates if set to True.zLThis allows you to exclude markdown cells from all templates if set to True.zGThis allows you to exclude raw cells from all templates if set to True.zKThis allows you to exclude unknown cells from all templates if set to True.z[Jinja loaders to find templates. Will be tried in order before the default FileSystem ones.zList[t.Any]Úextra_loaderszVDictionary of filters, by name and namespace, to add to the Jinja
        environment.z>formats of raw cells to be included in this Exporter's output.Úraw_mimetypesc                ó   — | j         dgS )Nr’   )Úoutput_mimetypero   s    rA   Ú_raw_mimetypes_defaultz'TemplateExporter._raw_mimetypes_defaultO  s   € àÔ$ bÐ)Ð)rC   c                ó.  •—  t          ¦   «         j        dd|i|¤Ž |                      | j        t	          |                      d¬¦  «        ¦  «        ¦  «         |                      | j        t	          |                      d¬¦  «        ¦  «        ¦  «         dS )a™  
        Public constructor

        Parameters
        ----------
        config : config
            User configuration instance.
        extra_loaders : list[of Jinja Loaders]
            ordered list of Jinja loader to find templates. Will be tried in order
            before the default FileSystem ones.
        template_file : str (optional, kw arg)
            Template to use when exporting.
        r�   Tr“   )r�   Nrt   )r‡   rg   r   r€   ÚlistÚtraitsr{   )rf   r�   Úkwr�   s      €rA   rg   zTemplateExporter.__init__T  s’   ø€ ð 	�‰ŒÔÐ-Ð- Ð-¨"Ð-Ð-Ð-à�ŠØÔ.µ°T·[²[ÐUY°[Ñ5ZÔ5ZÑ0[Ô0[ñ	
ô 	
ð 	
ð 	�Š�TÔ4µd¸4¿;º;ÐX\¸;Ñ;]Ô;]Ñ6^Ô6^Ñ_Ô_Ð_Ð_Ð_rC   c                óè  — |                       ¦   «         5  | j        r| j        | j        k    r| j        | _        | j        r| j        | _        ddd¦  «         n# 1 swxY w Y   | j        sd}t          |¦  «        ‚| j        }| j                             d|¦  «         | j                             dt          j	         
                    | j        ¦  «        ¦  «         | j                             |¦  «        S )z’Load the Jinja template object from the template file

        This is triggered by various trait changes that would change the template.
        NzNo template_file specified!zAttempting to load template %sz    template_paths: %s)Úhold_trait_notificationsr�   Ú_raw_template_keyr¯   r­   Ú
ValueErrorÚlogÚdebugrš   ÚpathsepÚjoinÚtemplate_pathsrk   Úget_template)rf   r_   r�   s      rA   r}   zTemplateExporter._load_templatei  s%  € ð ×*Ò*Ñ,Ô,ð 	<ð 	<ØÔ!ð > tÔ'9¸TÔ=SÒ'SÐ'SØ+/Ô+=�Ô(ØÔ ð <Ø%)Ô%;�Ô"ð		<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð Ô!ð 	"Ø/ˆCÝ˜S‘/”/Ð!ð
 Ô*ˆØŒ�ŠÐ7¸ÑGÔGÐGØŒ�ŠÐ/µ´·²ÀÔATÑ1UÔ1UÑVÔVÐVØÔ×,Ò,¨]Ñ;Ô;Ð;s   •7AÁAÁAÚfilenamer>   Ú	resourcesúdict[str, t.Any] | NonerÂ   út.AnyÚreturnútuple[str, dict[str, t.Any]]c                ó:   •—  t          ¦   «         j        ||fi |¤ŽS )z#Convert a notebook from a filename.)r‡   Úfrom_filename)rf   rÍ   rÎ   rÂ   r�   s       €rA   rÔ   zTemplateExporter.from_filename‚  s&   ø€ ð %�u‰wŒwÔ$ X¨yÐ?Ð?¸BÐ?Ð?Ð?rC   Úfile_streamc                ó:   •—  t          ¦   «         j        ||fi |¤ŽS )zConvert a notebook from a file.)r‡   Ú	from_file)rf   rÕ   rÎ   rÂ   r�   s       €rA   r×   zTemplateExporter.from_fileˆ  s&   ø€ ð !�u‰wŒwÔ  ¨iÐ>Ð>¸2Ð>Ð>Ð>rC   Únbr   c                óº  •—  t          ¦   «         j        ||fi |¤Ž\  }}|                     d| j        ¦  «         |                     d| j        ¦  «         | j         | j         | j         | j         | j	         | j
         | j         | j         | j         | j        o| j        dœ
|d<   | j                             ||¬¦  «        }|                     d¦  «        }||fS )a5  
        Convert a notebook from a notebook node instance.

        Parameters
        ----------
        nb : :class:`~nbformat.NotebookNode`
            Notebook node
        resources : dict
            Additional resources that can be accessed read/write by
            preprocessors and filters.
        r»   r½   )
Úinclude_codeÚinclude_markdownÚinclude_rawÚinclude_unknownÚinclude_inputÚinclude_outputÚinclude_output_stdinÚinclude_input_promptÚinclude_output_promptÚ	no_promptÚglobal_content_filter)rØ   rÎ   z
)r‡   Úfrom_notebook_nodeÚ
setdefaultr»   r½   Úexclude_code_cellÚexclude_markdownÚexclude_rawÚexclude_unknownÚexclude_inputÚexclude_outputÚexclude_output_stdinÚexclude_input_promptÚexclude_output_promptrl   ÚrenderÚlstrip)rf   rØ   rÎ   rÂ   Únb_copyÚoutputr�   s         €rA   rå   z#TemplateExporter.from_notebook_nodeŽ  s  ø€ ð 8�U™WœWÔ7¸¸IÐLÐLÈÐLÐLÑˆ�Ø×Ò˜_¨dÔ.@ÑAÔAÐAØ×ÒÐ.°Ô0DÑEÔEÐEà $Ô 6Ð6Ø$(Ô$9Ð 9Ø#Ô/Ð/Ø#'Ô#7Ð7Ø!%Ô!3Ð3Ø"&Ô"5Ð5Ø(,Ô(AÐ$AØ(,Ô(AÐ$AØ)-Ô)CÐ%CØÔ2ÐQ°tÔ7Qð.
ð .
ˆ	Ð)Ñ*ð ”×%Ò%¨¸IÐ%ÑFÔFˆØ—’˜vÑ&Ô&ˆØ�yÐ Ð rC   c                óò  — |€d}t          |¦  «        ‚t          |t          ¦  «        }| }|r<t          |t          f¦  «        r&t	          |¦  «        }|                      |||¦  «        S |rt          |¦  «        r||j        |<   |S |r:t          |t          ¦  «        r% || ¬¦  «        }|                      |||¦  «         dS |r# |¦   «         }|                      |||¦  «         dS d}t          |¦  «        ‚)á9  
        Register a filter.
        A filter is a function that accepts and acts on one string.
        The filters are accessible within the Jinja templating engine.

        Parameters
        ----------
        name : str
            name to give the filter in the Jinja engine
        filter : filter
        NÚfilter)Úparent)
Ú	TypeErrorrP   Útyper>   r   Ú_register_filterÚcallabler   Ú
issubclassr   )	rf   ÚenvironÚnameÚjinja_filterr_   ÚisclassÚconstructedÚ
filter_clsÚfilter_instances	            rA   rú   z!TemplateExporter._register_filter±  s-  € ð ÐØˆCÝ˜C‘.”.Ð Ý˜\­4Ñ0Ô0ˆØ!�kˆð ð 	D�: lµS°FÑ;Ô;ð 	Dõ % \Ñ2Ô2ˆJØ×(Ò(¨°$¸
ÑCÔCÐCàð 	 �8 LÑ1Ô1ð 	 à$0ˆGŒO˜DÑ!ØÐàð 	•z ,µ	Ñ:Ô:ð 	ð +˜l°$Ð7Ñ7Ô7ˆOØ×!Ò! '¨4°ÑAÔAÐAØ�4àð 	à*˜l™nœnˆOØ×!Ò! '¨4°ÑAÔAÐAØ�4ð ˆÝ˜‰nŒnÐrC   c                ó:   — |                       | j        ||¦  «        S )rõ   )rú   rk   )rf   rþ   rÿ   s      rA   Úregister_filterz TemplateExporter.register_filterá  s   € ð ×$Ò$ TÔ%5°t¸\ÑJÔJÐJrC   c                ó4   — t                                ¦   «         S )a|  Override in subclasses to provide extra filters.

        This should return an iterable of 2-tuples: (name, class-or-function).
        You should call the method on the parent class and include the filters
        it provides.

        If a name is repeated, the last filter provided wins. Filters from
        user-supplied config win over filters provided by classes.
        )Údefault_filtersrO   ro   s    rA   r  z TemplateExporter.default_filtersï  s   € õ ×$Ò$Ñ&Ô&Ð&rC   c                óR  — | j         }| j                             dd                     |¦  «        ¦  «         g | j        ¢t          t          |¦  «        | j        ¦  «        ‘t          | j	        | j
        i¦  «        ‘}t          t          |¦  «        t          | j        ¬¦  «        }t          j        |j        d<   |                      ¦   «         D ]\  }}|                      |||¦  «         Œ| j        r6| j                             ¦   «         D ]\  }}|                      |||¦  «         Œ|S )z:
        Create the Jinja templating environment.
        zTemplate paths:
	%sú
	)rd   Ú
extensionsÚenable_asyncÚuuid4)rË   rÇ   rÈ   rÊ   rº   rb   r	   r«   r   rÅ   r­   r   r   ÚJINJA_EXTENSIONSr  Úuuidr  Úglobalsr  rú   r   rO   )rf   ÚpathsÚloadersrk   Úkeyr—   Úuser_filters          rA   r‚   z$TemplateExporter._create_environmentû  sE  € ð Ô#ˆØŒ�ŠÐ.°·²¸EÑ0BÔ0BÑCÔCÐCð
ØÔð
å#Õ$4°UÑ$;Ô$;¸TÔ=TÑUÔUð
õ ˜Ô.°Ô0AÐBÑCÔCð
ˆõ
 "Ý Ñ(Ô(Ý'ØÔ*ð
ñ 
ô 
ˆõ (,¤zˆÔ˜GÑ$ð ×.Ò.Ñ0Ô0ð 	;ð 	;‰JˆC�Ø×!Ò! +¨s°EÑ:Ô:Ð:Ð:ð Œ<ð 	EØ$(¤L×$6Ò$6Ñ$8Ô$8ð Eð EÑ ��[Ø×%Ò% k°3¸ÑDÔDÐDÐDàÐrC   c                ó  •— t          ¦   «                              ¦   «          |                      ¦   «         }|                     di ¦  «        }t	          |                     ¦   «         d„ ¬¦  «        D ]�\  }}|�ˆ|                     ¦   «         }|                     d¦  «        }t          |¦  «        }|j	        | j
        v r%|                     | j
        |j	                 ¦  «          |di |¤Ž}|                      |¦  «         Œ�d S )NÚpreprocessorsc                ó   — | d         S )Nr   rt   )Úxs    rA   rB   z6TemplateExporter._init_preprocessors.<locals>.<lambda>"  s
   € È1ÈQÌ4€ rC   )r  rù   rt   )r‡   Ú_init_preprocessorsÚ	_get_confÚgetÚsortedrO   r‰   rS   r   rp   r�   ÚupdateÚregister_preprocessor)rf   Úconfr  Ú_ÚpreprocessorÚkwargsÚpreprocessor_clsr�   s          €rA   r  z$TemplateExporter._init_preprocessors  s  ø€ Ý‰Œ×#Ò#Ñ%Ô%Ð%Ø�~Š~ÑÔˆØŸš °"Ñ5Ô5ˆõ
  & m×&9Ò&9Ñ&;Ô&;ÀÀÐPÑPÔPð 	9ð 	9‰OˆAˆ|ØÐ'Ø%×*Ò*Ñ,Ô,�Ø#)§:¢:¨fÑ#5Ô#5Ð Ý#.Ð/?Ñ#@Ô#@Ð Ø#Ô,°´Ð;Ð;Ø—M’M $¤+Ð.>Ô.GÔ"HÑIÔIÐIØ/Ð/Ð9Ð9°&Ð9Ð9�Ø×*Ò*¨<Ñ8Ô8Ð8øð	9ð 	9rC   c                ó8  — i }t          t          | j        ¦  «        D ]|}|dz  }	 |                     ¦   «         }|rN|                     ¦   «         5 }t          |t          j        |¦  «        ¦  «        }d d d ¦  «         n# 1 swxY w Y   Œm# t          $ r Y Œyw xY w|S )Nú	conf.json)	Úmapr   rË   ÚexistsÚopenrR   ÚjsonÚloadÚPermissionError)rf   r  r›   Ú	conf_pathÚconf_path_existsÚfs         rA   r  zTemplateExporter._get_conf,  s  € Ø!#ˆÝ�˜dÔ1Ñ2Ô2ð 
	Dð 
	DˆDØ˜{Ñ*ˆIðDØ#,×#3Ò#3Ñ#5Ô#5Ð ð
 $ð DØ"ŸšÑ)Ô)ð D¨QÝ/°µd´iÀ±l´lÑCÔC˜ðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Døøõ #ð ð ð à�ðøøøð ˆs#   ¥B
Á#A>Á>B	ÂB	Â

BÂBrË   c                ó  — g }|                       ¦   «         }|                      ¦   «         }|D �]}| j        D ]i}t          j                             ||¦  «        }	 |rt          j                             |¦  «        r|                     |¦  «         ŒZ# t          $ r Y Œfw xY w|D ]Š}t          j                             |dd¦  «        }t          j                             ||¦  «        }	 |rt          j                             |¦  «        r|                     |¦  «         Œ{# t          $ r Y Œ‡w xY w�Œ|D ]„}|                     |¦  «         t          j                             |dd¦  «        }|                     |¦  «         t          j                             |ddd¦  «        }	|                     |	¦  «         Œ…g }
| j	        D ]8}|rt          j                             |¦  «        r|
                     |¦  «         Œ9|| j
        z   |
z   S )Nrµ   r¶   Úcompatibility)Úget_prefix_root_dirsÚget_template_namesrŸ   rš   r›   rÊ   r&  Úappendr*  Útemplate_data_pathsr¦   )rf   ÚpruneÚ	root_dirsr  Útemplate_namesr•   Úbase_dirr›   Úroot_dirÚcompatibility_dirÚadditional_pathss              rA   Ú_template_pathsz TemplateExporter._template_paths;  s(  € àˆØ×-Ò-Ñ/Ô/ˆ	Ø×0Ò0Ñ2Ô2ˆØ+ð 	ñ 	ˆMØ Ô8ð ð �Ý”w—|’| H¨mÑ<Ô<�ðØ ð +¥B¤G§N¢N°4Ñ$8Ô$8ð +ØŸš TÑ*Ô*Ð*øøÝ&ð ð ð Ø�Dðøøøà%ð ð �Ýœ7Ÿ<š<¨°+¸{ÑKÔK�Ý”w—|’| H¨mÑ<Ô<�ðØ ð +¥B¤G§N¢N°4Ñ$8Ô$8ð +ØŸš TÑ*Ô*Ð*øøÝ&ð ð ð Ø�Dðøøøñð "ð 
	,ð 
	,ˆHð �LŠL˜Ñ"Ô"Ð"õ ”w—|’| H¨k¸;ÑGÔGˆHØ�LŠL˜Ñ"Ô"Ð"å "¤§¢¨X°{ÀKÐQ`Ñ aÔ aÐØ�LŠLÐ*Ñ+Ô+Ð+Ð+àÐØÔ,ð 	.ð 	.ˆDØð .�BœGŸNšN¨4Ñ0Ô0ð .Ø ×'Ò'¨Ñ-Ô-Ð-øà�tÔ0Ñ0Ð3CÑCÐCs$   Á6BÂ
BÂBÃ'6DÄ
D+Ä*D+c                ó4   — |dk    rddiS |dk    rdddidœS d	S )
zGet the base template config.Údisplay_priorityÚbase_templateÚbaseÚfullÚclassicz	text/htmlT)r>  Ú	mimetypesNrt   )Úclsrþ   s     rA   Ú$get_compatibility_base_template_confz5TemplateExporter.get_compatibility_base_template_confd  s<   € ð Ð%Ò%Ð%Ø# VÐ,Ð,Ø�6Š>ˆ>Ø%.¸kÈ4Ð=PÐQÐQÐQØˆtrC   c                óJ  — g }|                       ¦   «         }| j        }i }|��|                     |¦  «         i }d}| j        D ]Ë}t          j                             ||¦  «        }t          j                             |¦  «        rd}t          j                             |d¦  «        }	t          j                             |	¦  «        rIt          |	¦  «        5 }
t          t          j        |
¦  «        |¦  «        }ddd¦  «         n# 1 swxY w Y   ŒÌ|D ]Í}t          j                             |dd|¦  «        }t          j                             |¦  «        rd}t          j                             |d¦  «        }	t          j                             |	¦  «        rIt          |	¦  «        5 }
t          t          j        |
¦  «        |¦  «        }ddd¦  «         n# 1 swxY w Y   ŒÎ|sñ|D ]À}|dz   }t          j                             |ddd|¦  «        }t          j                             |¦  «        rwd}t          j        d	| j        › d
�t          d¬¦  «         || _        |                      |¦  «        }t#          j        t&          |                     d¦  «        ¦  «        | _         nŒÁ|s,d                     |¦  «        }d|›d|› �}t+          |¦  «        ‚t          t-          |¦  «        |¦  «        }t#          j        t"          j        |                     d¦  «        ¦  «        }|�­|}d„ |                     di ¦  «                             ¦   «         D ¦   «         }| j        rD| j        |vr;|r9d                     |¦  «        }d| j        ›d| j        ›d|› �}t+          |¦  «        ‚|S )zWFinds a list of template names where each successive template name is the base templateNFTr$  rµ   r¶   r˜   r/  z5.x template name passed 'z1'. Use 'lab' or 'classic' for new template usage.rY   rZ   r>  r	  z$No template sub-directory with name z  found in the following paths:
	c                ó   — g | ]	\  }}|¯|‘Œ
S rt   rt   )Ú.0Úmimetyper„   s      rA   ú
<listcomp>z7TemplateExporter.get_template_names.<locals>.<listcomp>¡  s#   € ÐdÐdÐdÑ"3 (¨GÐ\cÐd�XÐdÐdÐdrC   rB  zUnsupported mimetype z for template z, mimetypes supported are: 
	)r0  r•   r2  rŸ   rš   r›   rÊ   r&  r'  rR   r(  r)  r\   r]   r^   r�   rD  ÚtÚcastr>   r  rÆ   rQ   ÚAnyrO   r½   )rf   r6  r5  r>  Úmerged_confr  Úfound_at_least_oner7  Útemplate_dirÚ	conf_filer-  r8  Úcompatibility_fileÚcompatibility_pathr  r_   rB  Úsupported_mimetypess                     rA   r1  z#TemplateExporter.get_template_namesn  sC  € àˆØ×-Ò-Ñ/Ô/ˆ	Ø$(Ô$6ˆØ(*ˆØÑ'Ø×!Ò! -Ñ0Ô0Ð0Ø%'ˆDØ!&ÐØ Ô8ð Dð D�Ý!œwŸ|š|¨H°mÑDÔD�Ý”7—>’> ,Ñ/Ô/ð .Ø)-Ð&ÝœGŸLšL¨°{ÑCÔC�	Ý”7—>’> )Ñ,Ô,ð DÝ˜i™œð D¨AÝ/µ´	¸!±´¸dÑCÔC˜ðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Døà%ð Dð D�Ý!œwŸ|š|¨H°kÀ;ÐP]Ñ^Ô^�Ý”7—>’> ,Ñ/Ô/ð .Ø)-Ð&ÝœGŸLšL¨°{ÑCÔC�	Ý”7—>’> )Ñ,Ô,ð DÝ˜i™œð D¨AÝ/µ´	¸!±´¸dÑCÔC˜ðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Døà%ð *à )ð ð �HØ)6¸Ñ)?Ð&Ý)+¬¯ªØ  +¨{¸OÐM_ñ*ô *Ð&õ ”w—~’~Ð&8Ñ9Ô9ð 
Ø-1Ð*Ý œØ~¸Ô9KÐ~Ð~Ð~Ý.Ø'(ðñ ô ð ð
 .@˜Ô*Ø#×HÒHÈÑWÔW˜Ý-.¬VµC¸¿ºÀ/Ñ9RÔ9RÑ-SÔ-S˜Ô*Ø˜ð
ð *ð *Ø"ŸKšK¨	Ñ2Ô2�EØ{ÀÐ{Ð{ÐtyÐ{Ð{�CÝ$ S™/œ/Ð)Ý*­4°©:¬:°{ÑCÔCˆKÝœF¥1¤5¨$¯(ª(°?Ñ*CÔ*CÑDÔDˆMðW Ñ'ðX ˆØdÐd°t·x²xÀÈRÑ7PÔ7P×7VÒ7VÑ7XÔ7XÐdÑdÔdˆ	ØÔð 	" DÔ$8À	Ð$IÐ$IÈiÐ$IØ"(§+¢+¨iÑ"8Ô"8Ðð [¨$Ô*>ð  [ð  [ÐPTÔPbð  [ð  [ð  FYð  [ð  [ˆCÝ˜S‘/”/Ð!ØÐs$   Ã#DÄD	Ä
D	Æ$#GÇG	ÇG	c                ó
  — g }t           rX|                     t          j                             t          j                             t          dddd¦  «        ¦  «        ¦  «         |                     t          ¦   «         ¦  «         |S )zGet the prefix root dirs.z..ÚshareÚjupyter)	ÚDEV_MODEr2  rš   r›   r¤   rÊ   ÚROOTÚextendr   )rf   r5  s     rA   r0  z%TemplateExporter.get_prefix_root_dirs¨  si   € ð ˆ	Ýð 	bØ×Ò�RœWŸ_š_­R¬W¯\ª\½$ÀÀdÈGÐU^Ñ-_Ô-_Ñ`Ô`ÑaÔaÐaØ×Ò�™œÑ(Ô(Ð(ØÐrC   c                ó^   •— t          ¦   «                              |¦  «        }t          |d<   |S )Nr`   )r‡   Ú_init_resourcesr`   )rf   rÎ   r�   s     €rA   r[  z TemplateExporter._init_resources²  s*   ø€ Ý‘G”G×+Ò+¨IÑ6Ô6ˆ	Ý",ˆ	�,ÑØÐrC   r:   )rÍ   r>   rÎ   rÏ   rÂ   rÐ   rÑ   rÒ   )rÕ   rÐ   rÎ   rÏ   rÂ   rÐ   rÑ   rÒ   )rØ   r   rÎ   rÏ   rÂ   rÐ   rÑ   rÒ   )TN)Jrp   rq   rr   rs   ÚformatrÊ   r  r  Úkeysrx   r{   Úpropertyrl   r   r€   rk   rˆ   r   Útagr•   r�   r­   r   r  r¯   rÅ   r   r¡   r   r¨   r   r¬   r°   r   rË   rŸ   r¦   r´   r«   r   r3  r¹   rë   rî   rì   rï   rí   rç   rè   ré   rê   rº   Ú__annotations__r   r   r»   r¾   rg   r}   rÔ   r×   rå   rú   r  r‚   r  r  r;  ÚclassmethodrD  r1  r0  r[  Ú__classcell__)r�   s   @rA   rv   rv   ‹   s«  ø€ € € € € € ðð ð  ð	ˆ�Š˜t j§o¢o°f°f¸_×=QÒ=QÑ=SÔ=SÑ6TÔ6TÑ&UÔ&UÑUˆÑVÔVÐVàð ð Ðð%ð %ð %ð %ð ð%ð %ñ „Xð%ð
 Ðð*ð *ð *ð *ð ð(ð (ñ „Xð(ð
 ðð ð ð ñ „Xðð �GÐ!>Ð?Ñ?Ô?×CÒCØ dð Dñ ô €Mð �G˜D¨TÐ8ZÐ[Ñ[Ô[×_Ò_Ø dð `ñ ô €Mð �7˜2Ð$9Ð:Ñ:Ô:×>Ò>ÐSWÐ>ÑXÔX€Là�4˜Ð$KÐLÑLÔL×PÒPØ ð Qñ ô €Lð ÐØ"Ðà€XˆoÑÔðð ñ Ôðð €Wˆ_ÑÔðð ñ Ôðð& €Wˆ_ÑÔðð ñ Ôðð
 €Wˆ^ÑÔð*ð *ñ Ôð*ð
 �T˜3˜%‘[”[—_’_¨DÀd�_ÑKÔK€NØ"˜d 7 7¡9¤9™oœo×1Ò1¸ÐSWÐ1ÑXÔXÐØ˜4  ¡	¤	™?œ?×.Ò.°dÐPTÐ.ÑUÔUÐà€WÐ&Ñ'Ô'ðð ñ (Ô'ðð !˜™œŸš¨dÈ˜ÑMÔMÐà˜$Øˆ�[ +Ñ.Ô.Ð5aðñ ô ç	‚c˜d€cÑ#Ô#ð ð €WÐ!Ñ"Ô"ð#ð #ñ #Ô"ð#ð
 �DØÐdðñ ô ç	‚c�€cÑÔð ð  ˜4ØÐaðñ ô ç	‚c�€cÑÔð ð �TØØ^ðñ ô ÷ 
‚c�€cÑÔð ð
 !˜DØÐbðñ ô ç	‚c�€cÑÔð ð  ˜4ØØbðñ ô ÷ 
‚c�€cÑÔð ð
 ˜ØÐ^ðñ ô ç	‚c�€cÑÔð ð �tØÐbðñ ô ç	‚c�€cÑÔð ð �$ØÐ]ðñ ô ç	‚c�€cÑÔð ð �dØÐaðñ ô ç	‚c�€cÑÔð ð "& ð.ð"ñ "ô "÷ 
‚c˜d€cÑ#Ô#ð ð $ð $ð $ñ $ð
 ˆdððñ ô ÷ 
‚c�¨4€cÑ0Ô0ð ð
 �DØˆ‰	Œ	Ð\ðñ ô ç	‚c�€cÑÔð ð €Wˆ_ÑÔð*ð *ñ Ôð*ð`ð `ð `ð `ð `ð `ð*<ð <ð <ð4 CGð@ð @ð @ð @ð @ð @ð @ð HLð?ð ?ð ?ð ?ð ?ð ?ð ?ð FJð!!ð !!ð !!ð !!ð !!ð !!ð !!ðF.ð .ð .ð`Kð Kð Kð
'ð 
'ð 
'ðð ð ð>9ð 9ð 9ð 9ð 9ð$ð ð ð €WÐÑÔð&Dð &Dð &Dñ Ôð&DðP ðð ñ „[ðð8ð 8ð 8ðtð ð ðð ð ð ð ð ð ð ð rC   rv   )Urs   Ú
__future__r   r<   r(  rš   ÚtypingrJ  r  r\   Úpathlibr   Újinja2r   r   r   r   r	   r
   Újupyter_core.pathsr   Únbformatr   Ú	traitletsr   r   r   r   r   r   r   r   Útraitlets.configr   Útraitlets.utils.importstringr   rµ   r   Úexporterr   r  r›   ÚdirnameÚ__file__rX  r&  rÊ   rW  r   r   r   r   ÚDataTypeFilterr    ÚHighlight2HTMLÚHighlight2Latexr#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   ÚdumpsrK   rL   rM   r  rR   r`   rb   rv   rt   rC   rA   ú<module>rs     sZ  ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ,Ð +Ð +Ð +Ð +Ð +Ø !Ð !Ð !Ð !Ð !Ð !Ø VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VØ #Ð #Ð #Ð #Ð #Ð #Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4à Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð ð .Ð.Ð à	„w‡‚�xÑ Ô €ØŒ7�>Š>˜"œ'Ÿ,š, t¨\Ñ:Ô:Ñ;Ô;€ð&ØˆgŒnð&à�WÔ*ð&ð ˜Ô2ð&ð �Ô"ð	&ð
 ˜Ô.ð&ð �Ô"ð&ð �gÔ,ð&ð �wÔ.ð&ð �gÔ,ð&ð �'Ô$ð&ð �gÔ,ð&ð �GÔ(ð&ð �WÔ*ð&ð �'Ô$ð&ð �WÔ*ð&ð  ˜'Ô4ð!&ð" �Ô"ð#&ð &ð$ �'Ô$ð%&ð& �'Ô$ð'&ð( �Ô"ð)&ð* �GÔ(ð+&ð, �gÔ,ð-&ð. �Ô ð/&ð0 �7Ô&ð1&ð2 �'Ô$ð3&ð4 ˜7Ô6ð5&ð6 �GÔ(ð7&ð8 �gÔ,ð9&ð: �$”*ð;&ð> Ð0Ð0ð?&ð@ ÐIÐIðA&ðB Ð9Ð9ðC&ðF �'Ô$ðG&ðH ˜gÔ<ðI&ð &ðJ �7Ô&ðK&ð &€ðTð ð ð,9ð 9ð 9ð
,ð ,ð ,ð ,ð ,˜jñ ,ô ,ð ,ð8jð jð jð jð j�xñ jô jð jð jð jrC   