관리-도구
편집 파일: doctestcompare.cpython-311.pyc
� �܋f�G � �< � d Z ddlmZ ddlZddlZddlZ ddlmZ n# e $ r ddl mZ Y nw xY wg d�Z eZ n# e$ r eefZ Y nw xY wej d dk Z ej d� � Z ej d� � Z ej d � � Zej Zd � Zd� Z ej dd �� � Zd� Z ej d� � Z ej d� � Z G d� de� � Z G d� de � � Z!dd�Z"dd�Z# G d� de$� � Z%d� Z&ddiZ'e(dk rddlZ ej) � � dS dS ) a� lxml-based doctest output comparison. Note: normally, you should just import the `lxml.usedoctest` and `lxml.html.usedoctest` modules from within a doctest, instead of this one:: >>> import lxml.usedoctest # for XML output >>> import lxml.html.usedoctest # for HTML output To use this module directly, you must call ``lxmldoctest.install()``, which will cause doctest to use this in all subsequent calls. This changes the way output is checked and comparisons are made for XML or HTML-like content. XML or HTML content is noticed because the example starts with ``<`` (it's HTML if it starts with ``<html``). You can also use the ``PARSE_HTML`` and ``PARSE_XML`` flags to force parsing. Some rough wildcard-like things are allowed. Whitespace is generally ignored (except in attributes). In text (attributes and text in the body) you can use ``...`` as a wildcard. In an example it also matches any trailing tags in the element, though it does not match leading tags. You may create a tag ``<any>`` or include an ``any`` attribute in the tag. An ``any`` tag matches any tag, while the attribute matches any and all attributes. When a match fails, the reformatted example and gotten text is displayed (indented), and a rough diff-like output is given. Anything marked with ``+`` is in the output but wasn't supposed to be, and similarly ``-`` means its in the example but wasn't in the output. You can disable parsing on one line with ``# doctest:+NOPARSE_MARKUP`` � )�etreeN)�escape)� PARSE_HTML� PARSE_XML�NOPARSE_MARKUP�LXMLOutputChecker�LHTMLOutputChecker�install�temp_install� r r r c �2 � | �d S | � � � S �N)�strip��vs �f/builddir/build/BUILD/cloudlinux-venv-1.0.6/venv/lib64/python3.11/site-packages/lxml/doctestcompare.pyr r ? s � ��y��t��w�w�y�y�� c �8 � t � d| � � S )N� )�_norm_whitespace_re�subr s r �norm_whitespacer E s � ��"�"�3��*�*�*r FT)�recover�remove_blank_textc �6 � t j | t � � S r )r � fromstring�_html_parser��htmls r �html_fromstringr J s � ���D�,�/�/�/r z^<[^>]+ (at|object) z[ \t\n][ \t\n]+c � � e Zd ZdZd� Zd� Zd� Zd� Zd� Zd� Z d� Z d � Zdd�Zdd �Z dd�Zd� Zd� Zd� Zd� Zd� Zdd�ZdS )r ) �param�img�area�br�basefont�input�base�meta�link�colc � � t j S r )r �XML��selfs r �get_default_parserz$LXMLOutputChecker.get_default_parserW s � ��y�r c �Z � t | dd � � }|� | j }|} nt j }| � |||� � }|s || |||� � S ||� � }n# t j $ r Y dS w xY w ||� � }n# t j $ r Y dS w xY w| � ||� � S )N�_temp_override_selfF)�getattr�_temp_call_super_check_output� OutputChecker�check_output� get_parserr �XMLSyntaxError�compare_docs) r/ �want�got�optionflags�alt_self�super_method�parser�want_doc�got_docs r r6 zLXMLOutputChecker.check_outputZ s� � ��4�!6��=�=�����=�L��D�D�(�5�L�����s�K�8�8��� .��<��d�C��.� .� .� ��v�d�|�|�H�H���#� � � ��5�5� ���� ��f�S�k�k�G�G���#� � � ��5�5� ����� � ��7�3�3�3s$ �A �A1�0A1�5B �B�Bc � � d }t |z rd S t |z rt }n�t |z r t j }n�|� � � � � � � d� � r/|� � � � d� � rt }n>| � |� � r)| � |� � r| � � � }|S )Nz<html)r r r r r r- r �lower� startswith�_looks_like_markupr0 )r/ r: r; r<