i7iVdZddlmZddlmZddlmZmZdgZdZ iZ GddeZ y) z pygments.formatters.svg ~~~~~~~~~~~~~~~~~~~~~~~ Formatter for SVG output. :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. ) Formatter)Comment) get_bool_opt get_int_opt SvgFormatterc|jddjddjddjddjd d S) z as well as single and double quotes for HTML.&z&z>"z"'z')replace)texts `/mnt/ssd/data/python-lab/ChefSystem/venv/lib/python3.12/site-packages/pygments/formatters/svg.py escape_htmlrsE <<W %V$V$X&W% &c2eZdZdZdZdgZdgZdZdZdZ y) ra Format tokens as an SVG graphics file. This formatter is still experimental. Each line of code is a ```` element with explicit ``x`` and ``y`` coordinates containing ```` elements with the individual token styles. By default, this formatter outputs a full SVG document including doctype declaration and the ```` root element. .. versionadded:: 0.9 Additional options accepted: `nowrap` Don't wrap the SVG ```` elements in ```` 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 ```` element's ``font-family`` attribute, defaults to ``"monospace"``. `fontsize` The value to give the wrapping ```` 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 `` ``, 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``. SVGsvgz*.svgc�������������� ������t��������j������������������|�fi�|�t��������|dd������|�_��������|j ������������������dd������|�_��������|j ������������������dd������|�_��������t��������|dd������|�_��������|�j ������������������j�������������������������}|j������������������d ������r|d�d �j�������������������������} �t��������|������}t��������|d |������|�_ ��������t��������|d |dz���������|�_��������t��������|dd������|�_��������t��������|dd������|�_��������t��������|dd������|�_��������t��������|dd������|�_��������t��������|dd|�j������������������z��������|�_��������i�|�_��������y�#�t��������$�r�d }Y�w�xY�w)NnowrapF fontfamily monospacefontsize14pxxoffsetr���px���yoffsetystep��� spacehackTlinenos linenostart��� linenostep linenowidth���)r���__init__r���r���getr���r���r���r���stripendswithint ValueErrorr ���r!���r#���r$���r%���r'���r(��� _stylecache)selfoptionsfsint_fss��� r���r*���zSvgFormatter.__init__]���s4���4+7+"7He< !++lK@ J7 "7Iq9 ]] " ;;t CRB WF�#7Iv>  '6A:> %g{DA#GIe< &w}Q?%gl1=&w}a lK�� F s���( E � EEc����������� ������z���|�j�������������������}|�j������������������}|�j������������������s|�j������������������r |j ������������������d|�j�������������������d�������n|j ������������������d�������|j ������������������d�������|j ������������������d�������|j ������������������d|�j �������������������d|�j �������������������d�������|�j������������������}|�j������������������}|�j������������������t��������������}|}|�j������������������rT||z��d k(��r+|j ������������������d ||�j������������������z����d |�d |�d |�d �������||�j������������������|�j������������������z���z ��}|dz ��}|j ������������������d |�d |�d�������|D�]0��\��} } |�j������������������| ������} | xr�d| z���dz���xs�d} | xr�dxs�d} t��������| ������} |�j������������������r | j!�������������������������j#������������������dd������} | j%������������������d������}|dd�D�]��}|j ������������������| |z���| z����������||�j������������������z ��}|j ������������������d�������|�j������������������r3||z��d k(��r+|j ������������������d ||�j������������������z����d |�d|�d|�d �������|dz ��}|j ������������������d |�d |�d��������|j ������������������| |d���z���| z����������3�|j ������������������d�������|�j������������������s|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 z zk z) z r���z zr&���z" xml:space="preserve">z z  Nz z" text-anchor="end" z )rr rencodingwriterrr%r' _get_stylerr$r(r!rr# expandtabsrsplit)r1 tokensourceoutfilexycounter counter_step counter_styleline_xttypevaluestyletspantspanendpartsparts rformat_unencodedzSvgFormatter.format_unencodedss LL LL{{}} >t}}oUST 78 MM* + MMF G MM,T__,=]4==/Y]^ _"" 0  <<%* !D,<,<*<)=U1#R Vijqirryz{ d&&3 3F qLG &qc1HIJ' 8LE5OOE*E4h.4:E+1rH&E~~((*223AKK%Ecr  V edlX56TZZ k*<%.036F = + +F ? , ,F'-$ rN) __name__ __module__ __qualname____doc__namealiases filenamesr*rNr<rrrrs-:v DgG I,5*nrN) r\pygments.formatterrpygments.tokenr pygments.utilrr__all__r class2stylerr`rrrfs7)"3  & \9\r