관리-도구
편집 파일: doctestcompare.cpython-39.opt-1.pyc
a ��a�G � @ sb d Z ddlmZ ddlZddlZddlZzddlmZ W n e yV ddl mZ Y n0 g d�ZzeZ W n ey� eefZ Y n0 ejd dkZe�d�Ze�d�Ze�d �ZejZd d� Zdd � Zejddd�Zdd� Ze�d�Ze�d�ZG dd� de�Z G dd� de �Z!d$dd�Z"d%dd�Z#G dd� de$�Z%dd � Z&d!d"iZ'e(d#k�r^ddlZe�)� 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 C s | d u rd S | � � S d S �N)�strip��v� r �9/usr/lib64/python3.9/site-packages/lxml/doctestcompare.pyr ? s r c C s t �d| �S )N� )�_norm_whitespace_re�subr r r r �norm_whitespaceE s r FT)ZrecoverZremove_blank_textc C s t �| t�S r )r Z fromstring�_html_parser��htmlr r r �html_fromstringJ s r z^<[^>]+ (at|object) z[ \t\n][ \t\n]+c @ s� e Zd ZdZdd� Zdd� Zdd� Zdd � Zd d� Zdd � Z dd� Z dd� Zd'dd�Zd(dd�Z d)dd�Zdd� Zdd� Zdd� Zd d!� Zd"d#� Zd*d$d%�Zd&S )+r ) ZparamZimgZarea�brZbasefont�input�base�meta�link�colc C s t jS r )r �XML��selfr r r �get_default_parserW s z$LXMLOutputChecker.get_default_parserc C s� t | dd �}|d ur | j}|} ntj}| �|||�}|sF|| |||�S z||�}W n tjyh Y dS 0 z||�}W n tjy� Y dS 0 | �||�S )N�_temp_override_selfF)�getattr�_temp_call_super_check_output� OutputChecker�check_output� get_parserr �XMLSyntaxError�compare_docs) r"