
    ,hp!                         d Z ddlmZ 	 ddlmZ ddlmZ dZ
e
dz   Ze
dz   Ze
dz   Zd	Z G d
 dej                        Z G d de      ZddZddZd ZddefdZddedfdZy# e$ r ddlmZ ddl	mZ Y aw xY w)a  
Limited XInclude support for the ElementTree package.

While lxml.etree has full support for XInclude (see
`etree.ElementTree.xinclude()`), this module provides a simpler, pure
Python, ElementTree compatible implementation that supports a simple
form of custom URL resolvers.
    )etree)urljoin)urlopenz!{http://www.w3.org/2001/XInclude}includefallback*   c                       e Zd Zy)FatalIncludeErrorN__name__
__module____qualname__     U/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/lxml/ElementInclude.pyr   r   K       r   r   c                       e Zd Zy)LimitedRecursiveIncludeErrorNr   r   r   r   r   r   O   r   r   r   Nc                     t        | d      }|dk(  r$t        j                  |      j                         }n%|j	                         }|sd}|j                  |      }|j                          |S )Nrbxmlutf-8)openr   parsegetrootreaddecodeclose)hrefr   encodingfiledatas        r   default_loaderr$   `   s[    dD~{{4 ((*yy{H{{8$JJLKr   c                     |dk(  r&t        j                  | |      j                         }|S d| v rt        |       }nt	        | d      }|j                         }|j                          |sd}|j                  |      }|S )Nr   z://r   r   )r   r   r   r   r   r   r   r   )r    r   r!   parserr#   fs         r   _lxml_default_loaderr(   q   sv    ~{{4(002 K D=AT4 Avvx		H{{8$Kr   c                      d fd	}|S )Nc                      | ||      S Nr   )r    r   r!   r&   loaders       r   loadz_wrap_et_loader.<locals>.load   s    dE8,,r   NNr   )r,   r-   s   ` r   _wrap_et_loaderr/      s    -Kr   c                 0   |d}n|dk  rt        d|z        |Rt        | d      r| }| j                         } n| j                         }t        |d      r3|j                  j
                  }nt        | d      r| j                         } t        | |||       y )Nr   z;expected non-negative depth or None for 'max_depth', got %rr   docinfo)
ValueErrorhasattrr   getroottreer2   URL_include)elemr,   base_url	max_depthtrees        r   r   r      s    		QVYbbcc4#D<<>D##%D4#||''H	y	!||~T68Y/r   c           	         |t        |      }nt        }|
t               }| j                         j                  }t        | j                  t                    }|D ]  }|j                  t        k(  rt        ||j                  d            }	|j                  dd      }
|j                         }|
dk(  r|	|v rt        d|	z        |dk(  rt        d|	z         ||	|
|      }|t        d|	d	|
      t        |||	|d
z
  |	h|z        }|j                   r"|j                   xs d|j                   z   |_        ||c S |j#                  ||       |
dk(  r ||	|
|j                  d            }|t        d|	d	|
      |j%                         }||j                   xs d|z   |_        n/||c S |j&                  xs d|z   |j                   xs dz   |_        |j)                  |       t        d|
z        |j                  t*        k(  rA|j                         }||j                  t        k7  st        d|j                  z        t        d|j                  z         | S )Nr    r   r   z recursive include of %r detectedr   z5maximum xinclude depth reached when including file %s)r&   zcannot load z as     textr!   )r!   z)unknown parse type in xi:include tag (%r)z0xi:fallback tag must be child of xi:include (%r)z0Invalid element found in XInclude namespace (%r))r/   r(   setr5   r&   listiterXINCLUDE_ITER_TAGtagXINCLUDE_INCLUDEr   get	getparentr   r   r7   tailreplacegetpreviousr?   removeXINCLUDE_FALLBACK)r8   r,   r9   r:   _parent_hrefsload_includer&   include_elementser    r   parentnoder?   predecessors                  r   r7   r7      sy   &v.+&&F		#$&  455$$8QUU6]3DEE'5)E[[]F~=(+:TA  >6ORVVX X#D%?<+26>   fdIMD6MCYZ66!%bAFF :DI>Kq$'&#D%!%%
:KL<+26>   mmo*(3(8(8(>B$'FK$^K#);;#4""<""MFKa '?%G  UU''[[]F!fjj4D&D'FN  $BQUUJ e4j Kr   r+   r.   )__doc__lxmlr   urlparser   urllib2r   ImportErrorurllib.parseurllib.requestXINCLUDErE   rL   rC   DEFAULT_MAX_INCLUSION_DEPTHLxmlSyntaxErrorr   r   r$   r(   r/   r   r7   r   r   r   <module>r^      s   X '  /i' z) sN    	-- 		#4 	"
"&0 10( 2$Do  '$&'s   A$ $A87A8