a
    ze{                     @   s<   d dl Z dddZi Zdd Zdd Zdd
dZdd ZdS )    Nzxml.dom.minidomzxml.dom.DOMImplementation)ZminidomZ4DOMc                 C   s   |t | < d S )N)
registered)namefactory r   $/usr/lib/python3.9/xml/dom/domreg.pyregisterDOMImplementation   s    	r   c                 C   s$   |D ]\}}|  ||s dS qdS )Nr      )Z
hasFeature)domfeaturesfvr   r   r   _good_enough    s    r   r   c              	   C   s   dd l }d }t| }|r2t|i i dg}| S | r@t|   S tjjsbd|j	v rbt|j	d dS t
|trtt|}t D ]}| }t||r||  S q|t D ]<}zt|d}W n ty   Y qY n0 t||r|  S qtdd S )Nr   getDOMImplementationZ
PYTHON_DOM)r   z$no suitable DOM implementation found)oswell_known_implementationsget
__import__r   r   sysflagsignore_environmentenviron
isinstancestr_parse_feature_stringvaluesr   keys	ExceptionImportError)r   r
   r   Zcreatormodr	   r   r   r   r   '   s0    







r   c                 C   s   g }|   }d}t|}||k r|| }|d dv rBtd|f |d }d }||k rv|| }|d dv rv|d }|}|||f qt|S )Nr   
0123456789zbad feature name: %rr   )splitlen
ValueErrorappendtuple)sr
   partsilengthZfeatureversionr   r   r   r   r   R   s"    r   )Nr   )r   r   r   r   r   r   r   r   r   r   r   <module>	   s   
+