§
    ŽŸj}  ã                   óF   — d Z ddlZddlmZ ddlmZ  G d„ de¦  «        ZdS )zÕThis preprocessor detect cells using a different language through
magic extensions such as `%%R` or `%%octave`. Cell's metadata is marked
so that the appropriate highlighter can be used in the `highlight`
filter.
é    N)ÚDicté   )ÚPreprocessorc                   óž   ‡ — e Zd ZdZ edddddddd	d
dddœ¦  «        Z ed¬¦  «                             d¬¦  «        Zdˆ fd„	Zd„ Z	d„ Z
ˆ xZS )ÚHighlightMagicsPreprocessorzQ
    Detects and tags code cells that use a different languages than Python.
    ÚrÚbashÚcythonÚ
javascriptÚjuliaÚlatexÚoctaveÚperlÚrubyÚshÚsql)z%%Rz%%bashz%%cythonz%%javascriptz%%juliaz%%latexz%%octavez%%perlz%%rubyz%%shz%%sqlz’Syntax highlighting for magic's extension languages. Each item associates a language magic extension such as %%R, with a pygments lexer such as r.)ÚhelpT)ÚconfigNc                 ó  •—  t          ¦   «         j        dd|i|¤Ž | j                             | j        ¦  «         d                     | j                             ¦   «         ¦  «        }t          j        d|› d�¦  «        | _	        dS )zPublic constructorr   ú|z^\s*(z)\s+N© )
ÚsuperÚ__init__Údefault_languagesÚupdateÚ	languagesÚjoinÚkeysÚreÚcompileÚre_magic_language)Úselfr   ÚkwÚany_languageÚ	__class__s       €út/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/nbconvert/preprocessors/highlightmagics.pyr   z$HighlightMagicsPreprocessor.__init__0   sˆ   ø€ ð 	�‰ŒÔÐ-Ð- Ð-¨"Ð-Ð-Ð-ð 	Ô×%Ò% d¤nÑ5Ô5Ð5ð —x’x Ô 6× ;Ò ;Ñ =Ô =Ñ>Ô>ˆÝ!#¤Ð,G°\Ð,GÐ,GÐ,GÑ!HÔ!HˆÔÐÐó    c                 ó~   — | j                              |¦  «        }|r | j        |                     d¦  «                 S dS )a(  
        When a cell uses another language through a magic extension,
        the other language is returned.
        If no language magic is detected, this function returns None.

        Parameters
        ----------
        source: str
            Source code of the cell to highlight
        r   N)r!   Úmatchr   Úgroup)r"   ÚsourceÚms      r&   Úwhich_magic_languagez0HighlightMagicsPreprocessor.which_magic_language=   sA   € ð Ô"×(Ò(¨Ñ0Ô0ˆàð 	6ð Ô)¨!¯'ª'°!©*¬*Ô5Ð5Øˆtr'   c                 ón   — |j         dk    r'|                      |j        ¦  «        }|r||d         d<   ||fS )a¯  
        Tags cells using a magic extension language

        Parameters
        ----------
        cell : NotebookNode cell
            Notebook cell being processed
        resources : dictionary
            Additional resources used in the conversion process.  Allows
            preprocessors to pass variables into the Jinja engine.
        cell_index : int
            Index of the cell being processed (see base.py)
        ÚcodeÚmetadataÚmagics_language)Ú	cell_typer-   r+   )r"   ÚcellÚ	resourcesÚ
cell_indexÚmagic_languages        r&   Úpreprocess_cellz+HighlightMagicsPreprocessor.preprocess_cellQ   sI   € ð  Œ>˜VÒ#Ð#Ø!×6Ò6°t´{ÑCÔCˆNØð EØ6D��ZÔ Ð!2Ñ3Ø�YˆÐr'   )N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Útagr   r   r-   r7   Ú__classcell__)r%   s   @r&   r   r      sÛ   ø€ € € € € ðð ð
 ˜àØØ Ø(ØØØ ØØØØð	
ð 	
ñô Ðð" �ð/ðñ ô ÷ 
‚c�€cÑÔð ðIð Ið Ið Ið Ið Iðð ð ð(ð ð ð ð ð ð r'   r   )r;   r   Ú	traitletsr   Úbaser   r   r   r'   r&   ú<module>r@      s|   ððð ð 
€	€	€	à Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð ðTð Tð Tð Tð T ,ñ Tô Tð Tð Tð Tr'   