
    Ng7                        d dl mZmZmZ d dlmZ 	 d dlmZ n# e$ r	 d dl	mZ Y nw xY wd dl
mZmZ er
d dlmc mZ n	 d dlmc mZ n# e$ r d dlmc mZ Y nw xY wg dZ	  ed          Z eee          s ed          Z eee          sJ d	Zn# e$ r d
ZY nw xY w G d de          Z G d de          Zd Zd Zd Zd ZdS )    )absolute_importdivisionunicode_literals)
ModuleType)Mapping)	text_typePY3N)default_etreeMethodDispatcherisSurrogatePairsurrogatePairToCodepointmoduleFactoryFactorysupports_lone_surrogatesz"\uD800"z	u"\uD800"TFc                   (    e Zd ZdZddZd ZddZdS )	r   ap  Dict 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.
     c                 Z   g }|D ]a\  }}t          |t          t          t          t          f          r|D ]}|                    ||f           J|                    ||f           bt                              | |           t          |           t          |          k    sJ d | _	        d S N)

isinstancelisttuple	frozensetsetappenddict__init__lendefault)selfitems_dictEntriesnamevalueitems         K/var/www/html/ai-engine/env/lib/python3.11/site-packages/html5lib/_utils.pyr   zMethodDispatcher.__init__9   s      	3 	3KD%$ui =>> 3  7 7D ''u66667 ##T5M2222dL)))4yyC------    c                 D    t                               | || j                  S r   )r   getr   r   keys     r$   __getitem__zMethodDispatcher.__getitem__E   s    xxc4<000r%   Nc                 "    t          ||           S r   )BoundMethodDispatcher)r   instanceowners      r$   __get__zMethodDispatcher.__get__H   s    $Xt444r%   )r   r   )__name__
__module____qualname____doc__r   r*   r/   r   r%   r$   r   r   ,   sU        
 

 
 
 
1 1 15 5 5 5 5 5r%   r   c                   6    e Zd ZdZd Zd Zd Zd Zd Zd Z	dS )	r,   zAWraps a MethodDispatcher, binding its return values to `instance`c                 "    || _         || _        d S r   )r-   
dispatcher)r   r-   r6   s      r$   r   zBoundMethodDispatcher.__init__N   s     $r%   c                 L    | j         |                             | j                  S r   )r6   r/   r-   r(   s     r$   r*   z!BoundMethodDispatcher.__getitem__R   s!     s#++DM:::r%   c                 (    || j         v r| |         S |S r   r6   )r   r)   r   s      r$   r'   zBoundMethodDispatcher.getW   s    $/!!9Nr%   c                 *    t          | j                  S r   )iterr6   r   s    r$   __iter__zBoundMethodDispatcher.__iter__]   s    DO$$$r%   c                 *    t          | j                  S r   )r   r6   r<   s    r$   __len__zBoundMethodDispatcher.__len__`   s    4?###r%   c                     || j         v S r   r9   r(   s     r$   __contains__z"BoundMethodDispatcher.__contains__c   s    do%%r%   N)
r0   r1   r2   r3   r   r*   r'   r=   r?   rA   r   r%   r$   r,   r,   L   st        KK% % %; ; ;
  % % %$ $ $& & & & &r%   r,   c                     t          |           dk    oct          | d                   dk    oJt          | d                   dk    o1t          | d                   dk    ot          | d                   dk    S )N   r      i        i  )r   ord)datas    r$   r   r   j   sp    IIN >QLLF">'*47||v'=>QLLF">'*47||v'=?r%   c                 t    dt          | d                   dz
  dz  z   t          | d                   dz
  z   }|S )Ni   r   rD   i   rE   rF   )rG   )rH   char_vals     r$   r   r   p   s<    3tAw<<&0E99T!W&(HOr%   c                      i  fd}|S )Nc                    t          t          j        t          d                    rd| j        z  }n
d| j        z  }t	          |                                          }	 |         |         |         S # t          $ r t          |          } | g|R i |}|j                            |           dvri |<   d|         vri |         |<   d|         |         vri |         |         |<   ||         |         |<   |cY S w xY w)N z_%s_factorys   _%s_factoryr!   argskwargs)	r   r   r0   typer   r   KeyError__dict__update)	
baseModulerN   rO   r!   kwargs_tuplemodobjsfactorymoduleCaches	          r$   moduleFactoryz+moduleFactoryFactory.<locals>.moduleFactory|   s@   j)48844 	8 :#66DD!J$77DV\\^^,,	t$T*<88 	 	 	T""C7:777777DL%%%[(($&D![...*,D!$'{406668:D!$'547Kd#L1JJJ	s    A4 4BDDr   )rX   rZ   rY   s   ` @r$   r   r   y   s/    K     . r%   c                      i  fd}|S )Nc                      t          |           t          |                                          f}|vr | i ||<   |         S r   )r   r   )rN   rO   r)   cachefuncs      r$   wrappedzmemoize.<locals>.wrapped   sP    T{{E&,,..112et.v..E#JSzr%   r   )r^   r_   r]   s   ` @r$   memoizer`      s.    E      Nr%   ) 
__future__r   r   r   typesr   collections.abcr   ImportErrorcollectionssixr   r	   xml.etree.ElementTreeetreeElementTreer
   xml.etree.cElementTreecElementTree__all__eval_xr   r   	Exceptionr   r   r,   r   r   r   r`   r   r%   r$   <module>rp      sP   B B B B B B B B B B      $''''''' $ $ $########$         6111111111166666666666 6 6 6555555555556' ' '	$	k		B:b)$$ )T,z"i(((((  $  % % %$%5 5 5 5 5t 5 5 5@& & & & &G & & &<? ? ?    :	 	 	 	 	s/    ''	A	 	AA"0B BB