%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python3/dist-packages/pygments/formatters/__pycache__/
Upload File :
Create Path :
Current File : //usr/lib/python3/dist-packages/pygments/formatters/__pycache__/svg.cpython-312.pyc

�

|�e���V�dZddlmZddlmZddlmZmZdgZd�Z	iZ
Gd�de�Zy)	z�
    pygments.formatters.svg
    ~~~~~~~~~~~~~~~~~~~~~~~

    Formatter for SVG output.

    :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�)�	Formatter)�Comment)�get_bool_opt�get_int_opt�SvgFormatterc��|jdd�jdd�jdd�jdd�jd	d
�S)z<Escape &, <, > as well as single and double quotes for HTML.�&z&amp;�<z&lt;�>z&gt;�"z&quot;�'z&#39;)�replace)�texts �9/usr/lib/python3/dist-packages/pygments/formatters/svg.py�escape_htmlrsE���<�<��W�%����V�$����V�$����X�&����W�%�	&�c�2�eZdZdZdZdgZdgZd�Zd�Zd�Z	y)	ra&	
    Format tokens as an SVG graphics file.  This formatter is still experimental.
    Each line of code is a ``<text>`` element with explicit ``x`` and ``y``
    coordinates containing ``<tspan>`` elements with the individual token styles.

    By default, this formatter outputs a full SVG document including doctype
    declaration and the ``<svg>`` root element.

    .. versionadded:: 0.9

    Additional options accepted:

    `nowrap`
        Don't wrap the SVG ``<text>`` elements in ``<svg><g>`` elements and
        don't add a XML declaration and a doctype.  If true, the `fontfamily`
        and `fontsize` options are ignored.  Defaults to ``False``.

    `fontfamily`
        The value to give the wrapping ``<g>`` element's ``font-family``
        attribute, defaults to ``"monospace"``.

    `fontsize`
        The value to give the wrapping ``<g>`` element's ``font-size``
        attribute, defaults to ``"14px"``.

    `linenos`
        If ``True``, add line numbers (default: ``False``).

    `linenostart`
        The line number for the first line (default: ``1``).

    `linenostep`
        If set to a number n > 1, only every nth line number is printed.
        
    `linenowidth`
        Maximum width devoted to line numbers (default: ``3*ystep``, sufficient
        for up to 4-digit line numbers. Increase width for longer code blocks).  
        
    `xoffset`
        Starting offset in X direction, defaults to ``0``.

    `yoffset`
        Starting offset in Y direction, defaults to the font size if it is given
        in pixels, or ``20`` else.  (This is necessary since text coordinates
        refer to the text baseline, not the top edge.)

    `ystep`
        Offset to add to the Y coordinate for each subsequent line.  This should
        roughly be the text size plus 5.  It defaults to that value if the text
        size is given in pixels, or ``25`` else.

    `spacehack`
        Convert spaces in the source to ``&#160;``, which are non-breaking
        spaces.  SVG provides the ``xml:space`` attribute to control how
        whitespace inside tags is handled, in theory, the ``preserve`` value
        could be used to keep all whitespace as-is.  However, many current SVG
        viewers don't obey that rule, so this option is provided as a workaround
        and defaults to ``True``.
    �SVG�svgz*.svgc��tj|fi|��t|dd�|_|j	dd�|_|j	dd�|_t|dd�|_|jj�}|jd	�r|dd
j�}	t|�}t|d|�|_t|d
|dz�|_
t|dd�|_t|dd�|_t|dd�|_t|dd�|_t|dd|jz�|_i|_y#d}Y��xYw)N�nowrapF�
fontfamily�	monospace�fontsize�14px�xoffsetr�px�����yoffset�ystep��	spacehackT�linenos�linenostart��
linenostep�linenowidth�)r�__init__rr�getrrrr�strip�endswith�intr r!r#r$r%r'r(�_stylecache)�self�options�fs�int_fss    rr*zSvgFormatter.__init__]s)�����4�+�7�+�"�7�H�e�<���!�+�+�l�K�@������J��7��
�"�7�I�q�9���
�]�]�
 �
 �
"��
�;�;�t��2�c�r�7�=�=�?�b�	���W�F�#�7�I�v�>��� ��'�6�A�:�>��
�%�g�{�D�A���#�G�I�e�<���&�w�}�Q�?���%�g�l�1�=���&�w�}�a��
�
�l�K�������	��F�s�(E	�	Ec
�x�|j}|j}|js�|jr|j	d|jz�n|j	d�|j	d�|j	d�|j	d|j
�d|j�d��|j}|j}|jt�}|}|jrT||zdk(r+|j	d	||jz�d
|�d|�d|�d
�	�||j|jzz
}|dz
}|j	d	|�d
|�d��|D�]0\}	}
|j|	�}|xrd|zdzxsd}|xrdxsd}
t|
�}
|jr |
j!�j#dd�}
|
j%d�}|ddD]�}|j	||z|
z�||jz
}|j	d�|jr3||zdk(r+|j	d	||jz�d
|�d|�d|�d
�	�|dz
}|j	d	|�d
|�d����|j	||dz|
z���3|j	d
�|js|j	d�yy)z�
        Format ``tokensource``, an iterable of ``(tokentype, tokenstring)``
        tuples and write it into ``outfile``.

        For our implementation we put all lines in their own 'line group'.
        z$<?xml version="1.0" encoding="%s"?>
z<?xml version="1.0"?>
zk<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
z)<svg xmlns="http://www.w3.org/2000/svg">
z<g font-family="z
" font-size="z">
rz	<text x="z" y="z" z text-anchor="end">z</text>r&z" xml:space="preserve">z<tspanr�z</tspan>� z&#160;�
N���z</text>
z" text-anchor="end" z</g></svg>
)rr r�encoding�writerrr%r'�
_get_stylerr$r(r!rr#�
expandtabsr�split)r0�tokensource�outfile�x�y�counter�counter_step�
counter_style�line_x�ttype�value�style�tspan�tspanend�parts�parts                r�format_unencodedzSvgFormatter.format_unencodedrs���
�L�L���L�L���{�{��}�}��
�
�E�"�m�m�,�-��
�
�7�8��M�M�*�
+�
�M�M�F�G��M�M��?�?�D�M�M�;�
<��"�"����������0�
����<�<���%��*��
�
��t�'�'�'��-��A�B��d�&�&����3�3�F��q�L�G��
�
�V�Q�O�P�'�	8�L�E�5��O�O�E�*�E��4�h��.��4�:��E��+��1�r�H���&�E��~�~��(�(�*�2�2�3��A���K�K��%�E��c�r�
�	
[���
�
�e�d�l�X�5�6��T�Z�Z����
�
�k�*��<�<�G�l�$:�a�$?��M�M��4�+�+�+�A�m�G�#E�F��1����
�
�PV�WX�Y�Z�	
[�
�M�M�%�%��)�+�h�6�7�%	8�&	�
�
�i� ��{�{��M�M�.�)�rc�j�||jvr|j|S|}|jj|�s(|j}|jj|�s�(|jj	|�}d}|drd|dzdz}|dr|dz
}|dr|dz
}||j|<|S)	Nr5�colorz fill="#r�boldz font-weight="bold"�italicz font-style="italic")r/rH�styles_token�parent�style_for_token)r0�	tokentype�
otokentyperG�results     rr;zSvgFormatter._get_style�s�����(�(�(��#�#�I�.�.��
��*�*�)�)�)�4�!�(�(�I��*�*�)�)�)�4��
�
�*�*�9�5������>��%��.�0�3�6�F���=��+�+�F���?��,�,�F�'-�����$��
rN)
�__name__�
__module__�__qualname__�__doc__�name�aliases�	filenamesr*rMr;�rrrrs-��:�v�D��g�G��	�I��*9*�vrN)r[�pygments.formatterr�pygments.tokenr�
pygments.utilrr�__all__r�class2stylerr_rr�<module>res7���)�"�3��
��&���_�9�_r

Zerion Mini Shell 1.0