????

Your IP : 3.149.237.146


Current Path : /lib/python3.6/site-packages/defusedxml/__pycache__/
Upload File :
Current File : //lib/python3.6/site-packages/defusedxml/__pycache__/lxml.cpython-36.pyc

3

T�\Y�@s�dZddlmZmZddlZddlZddlmZddl	m
Z
mZmZej
ddkZdZejZejd	ed
d�Gdd
�d
ej�ZGdd�dej�Ze�ZejZddd�Zddd�Zddd�ZeZdd�ZdS)zkDEPRECATED Example code for lxml.etree protection

The code has NO protection against decompression bombs.
�)�print_function�absolute_importN)�etree�)�DTDForbidden�EntitiesForbidden�NotSupportedError�z
lxml.etreezOdefusedxml.lxml is no longer supported and will be removed in a future release.�)�category�
stacklevelcs�eZdZdZfZejZdd�Z�fdd�Z	d�fdd	�	Z
d�fd
d�	Zd�fdd
�	Zd�fdd�	Z
�fdd�Zd�fdd�	Z�ZS)�RestrictedElementzJA restricted Element class that filters out instances of some classes
    ccs*|j}x|D]}t||�rq|VqWdS)N)�	blacklist�
isinstance)�self�iteratorrZchild�r�/usr/lib/python3.6/lxml.py�_filter)s


zRestrictedElement._filtercstt|�j�}|j|�S)N)�superr
�__iter__r)rr)�	__class__rrr0szRestrictedElement.__iter__NFcstt|�j||d�}|j|�S)N)�tag�reversed)rr
�iterchildrenr)rrrr)rrrr4szRestrictedElement.iterchildrencs tt|�j|d|i�}|j|�S)Nr)rr
�iterr)rr�tagsr)rrrr8szRestrictedElement.itercs tt|�j|d|i�}|j|�S)Nr)rr
�iterdescendantsr)rrrr)rrrr<sz!RestrictedElement.iterdescendantscstt|�j||d�}|j|�S)N)r�	preceding)rr
�itersiblingsr)rrrr)rrrr@szRestrictedElement.itersiblingscstt|�j�}t|j|��S)N)rr
r�listr)rr)rrr�getchildrenDszRestrictedElement.getchildrencstt|�j|�}|j|�S)N)rr
�getiteratorr)rrr)rrrr"HszRestrictedElement.getiterator)NF)N)N)NF)N)�__name__�
__module__�__qualname__�__doc__�	__slots__�_etreeZ_Entityrrrrrrrr!r"�
__classcell__rr)rrr
!sr
c@s4eZdZdZddiZeZdd�Zdd�Zdd	�Z	d
S)�GlobalParserTLSz5Thread local context for custom parser instances
    Zresolve_entitiesFcCs8tjf|j�}|j}|jdk	r4tj|d�}|j|�|S)N)�element)r(Z	XMLParser�
parser_config�
element_classZElementDefaultClassLookupZset_element_class_lookup)r�parserr-�lookuprrr�createDefaultParserYs

z#GlobalParserTLS.createDefaultParsercCs
||_dS)N)�_default_parser)rr.rrr�setDefaultParserasz GlobalParserTLS.setDefaultParsercCs*t|dd�}|dkr&|j�}|j|�|S)Nr1)�getattrr0r2)rr.rrr�getDefaultParserds

z GlobalParserTLS.getDefaultParserN)
r#r$r%r&r,r
r-r0r2r4rrrrr*Msr*FTc	Cs�|j}|jr4|r"t|j|j|j��|r4tr4td��|r�xF|j|jfD]6}|dkrTqFx&|j	�D]}t
|j|jdddd��q^WqFWdS)z�Check docinfo of an element tree for DTD and entity declarations

    The check for entity declarations needs lxml 3 or newer. lxml 2.x does
    not support dtd.iterentities().
    z3Unable to check for entity declarations in lxml 2.xN)
�docinfoZdoctyperZ
system_urlZ	public_id�LXML3rZinternalDTDZexternalDTDZiterentitiesr�nameZcontent)�elementtree�
forbid_dtd�forbid_entitiesr5ZdtdZentityrrr�
check_docinfops
r;cCs.|dkrt�}tj|||d�}t|||�|S)N)�base_url)r4r(�parser;)�sourcer.r<r9r:r8rrrr=�s
r=cCs6|dkrt�}tj|||d�}|j�}t|||�|S)N)r<)r4r(�
fromstringZgetroottreer;)�textr.r<r9r:Zrootelementr8rrrr?�sr?cOstd��dS)Nz*defused lxml.etree.iterparse not available)r)�args�kwargsrrr�	iterparse�srC)FT)NNFT)NNFT)r&Z
__future__rrZ	threading�warningsZlxmlrr(�commonrrrZLXML_VERSIONr6Z
__origin__Ztostring�warn�DeprecationWarningZElementBaser
Zlocalr*Z_parser_tlsr4r;r=r?ZXMLrCrrrr�<module>	s*,