Ñò ŸªJc @ s& d Z d d k l Z d d k Z y$ d d k l Z d d k l Z Wn3 e j o' d d k l Z d d k l Z n Xy e Wn# e j o d d k l Z n Xd Z e d Z e d Z d e i f d „ ƒ YZ d d „ Z d d d „ Z d „ Z d d d „ Z d d d d „ Z d S( s 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. iÿÿÿÿ( t etreeN( t urljoin( t urlopen( t Sets! {http://www.w3.org/2001/XInclude}t includet fallbackt FatalIncludeErrorc B s e Z RS( ( t __name__t __module__( ( ( s9 /usr/lib64/python2.6/site-packages/lxml/ElementInclude.pyR M s c C so t | d ƒ } | d j o t i | ƒ i ƒ } n- | i ƒ } | p d } n | i | ƒ } | i ƒ | S( Nt rbt xmls utf-8( t openR t parset getroott readt decodet close( t hrefR t encodingt filet data( ( s9 /usr/lib64/python2.6/site-packages/lxml/ElementInclude.pyt default_loader] s c C s | d j o t i | | ƒ i ƒ } nc d | j o t | ƒ } n t | d ƒ } | i ƒ } | i ƒ | p d } n | i | ƒ } | S( NR s ://R s utf-8( R R R R R R R R ( R R R t parserR t f( ( s9 /usr/lib64/python2.6/site-packages/lxml/ElementInclude.pyt _lxml_default_loaderm s c s d d ‡ f d † } | S( Nc s ˆ | | | ƒ S( N( ( R R R R ( t loader( s9 /usr/lib64/python2.6/site-packages/lxml/ElementInclude.pyt load€ s ( t None( R R ( ( R s9 /usr/lib64/python2.6/site-packages/lxml/ElementInclude.pyt _wrap_et_loader s c C sš | d j oV t | d ƒ o | } | i ƒ } n | i ƒ } t | d ƒ o | i i } qƒ n! t | d ƒ o | i ƒ } n t | | d | ƒd S( NR t docinfot base_url( R t hasattrR t getroottreeR t URLt _include( t elemR R t tree( ( s9 /usr/lib64/python2.6/site-packages/lxml/ElementInclude.pyR ‘ s c C sÜ | d j o t | ƒ } n t } | d j o t ƒ } n | i ƒ i } t | i d ƒ ƒ } xt| D]l} | i t j oït | | i d ƒ ƒ } | i d d ƒ } | i ƒ } | d j oÊ | | j o t d | ƒ ‚ n | i | ƒ | | | d | ƒ} | d j o t d | | f ƒ ‚ n t | | | ƒ } | i o | i p d | i | _ n | d j o | S| i | | ƒ qÔ| d j oÁ | | | d | i d ƒ ƒ} | d j o t d | | f ƒ ‚ n | i ƒ } | d j o | i p d | | _ n8 | d j o | S| i p d | | i p d | _ | i | ƒ qÔt d | ƒ ‚ qh | i t j oD | i ƒ } | d j o' | i t j o t d | i ƒ ‚ qÔqh t d | i ƒ ‚ qh W| S( Ns" {http://www.w3.org/2001/XInclude}*R R R s recursive include of %r detectedR s cannot load %r as %rt t textR s) unknown parse type in xi:include tag (%r)s0 xi:fallback tag must be child of xi:include (%r)s0 Invalid element found in XInclude namespace (%r)( R R R t setR R t listt itert tagt XINCLUDE_INCLUDER t gett getparentR t addR" t tailt replacet getpreviousR&