HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/html5lib/__pycache__/_utils.cpython-38.pyc
U

63)Z��@s�ddlmZmZmZddlmZddlmZzddlm	m
ZWn&ek
rhddl
m	mZYnXddddd	d
gZz,ed�Zeee�s�ed�Zeee�s�t�Wnd
ZYnXdZGdd�de�Zdd�Zdd�Zdd	�Zdd�ZdS)�)�absolute_import�division�unicode_literals)�
ModuleType)�	text_typeN�
default_etree�MethodDispatcher�isSurrogatePair�surrogatePairToCodepoint�moduleFactoryFactory�supports_lone_surrogatesz"\uD800"z	u"\uD800"FTc@s"eZdZdZddd�Zdd�ZdS)	rapDict with 2 special properties:

    On initiation, keys that are lists, sets or tuples are converted to
    multiple keys so accessing any one of the items in the original
    list-like object returns the matching value

    md = MethodDispatcher({("foo", "bar"):"baz"})
    md["foo"] == "baz"

    A default value which can be set through the default attribute.
    �cCsvg}|D]B\}}t|ttttf�r<|D]}|�||f�q&q|�||f�qt�||�t|�t|�kslt	�d|_
dS�N)�
isinstance�list�tuple�	frozenset�set�append�dict�__init__�len�AssertionError�default)�self�itemsZ_dictEntries�name�value�itemr
r
�1/usr/lib/python3/dist-packages/html5lib/_utils.pyr1szMethodDispatcher.__init__cCst�|||j�Sr)r�getr)r�keyr
r
r�__getitem__@szMethodDispatcher.__getitem__N)r
)�__name__�
__module__�__qualname__�__doc__rr"r
r
r
rr$s
cCsLt|�dkoJt|d�dkoJt|d�dkoJt|d�dkoJt|d�dkS)N�r��i�����i��)r�ord)�datar
r
rr	Gs����cCs,dt|d�ddt|d�d}|S)Nirr(ir)r*)r+)r,Zchar_valr
r
rr
Ms�csi���fdd�}|S)Ncs�ttjtd��rd|j}n
d|j}t|���}z�|||WStk
r�t|�}�|f|�|�}|j�|�d�kr�i�|<d�|kr�i�||<d�||kr�i�|||<|�|||<|YSXdS)N�z_%s_factorys_%s_factoryr�args�kwargs)	rrr#�typerr�KeyError�__dict__�update)Z
baseModuler.r/rZkwargs_tuple�modZobjs��factoryZmoduleCacher
r�
moduleFactoryYs$
z+moduleFactoryFactory.<locals>.moduleFactoryr
)r6r7r
r5rrVscsi���fdd�}|S)Ncs2t|�t|���f}|�kr*�||��|<�|Sr)rr)r.r/r!��cache�funcr
r�wrappedvszmemoize.<locals>.wrappedr
)r:r;r
r8r�memoizessr<)Z
__future__rrr�typesrZsixrZxml.etree.cElementTreeZetreeZcElementTreer�ImportErrorZxml.etree.ElementTreeZElementTree�__all__�evalZ_xrrrrrr	r
rr<r
r
r
r�<module>s0�

#