ryMa/c@sdZddlZddlZddlZddlZddlZddlmZddlm Z ddZ idd Z id d Z id d Z ddZGdddejZGddde jZdddZdS(unA library of useful helper classes to the SAX classes, for the convenience of application and driver writers. iNi(uhandler(u xmlreadercCs3x,|jD]\}}|j||}q W|S(u2Replace substrings of a string using a dictionary.(uitemsureplace(usudukeyuvalue((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu__dict_replace su__dict_replacecCsR|jdd}|jdd}|jdd}|rNt||}n|S(uEscape &, <, and > in a string of data. You can escape other strings of data by passing a dictionary as the optional entities parameter. The keys and values must all be strings; each key will be replaced with its corresponding value. u&u&u>u>uu&u&(ureplaceu__dict_replace(udatauentities((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyuunescape"s uunescapecCs|j}|jidd6dd6dd6t||}d|kr{d|krnd |jdd }qd |}n d |}|S( uEscape and quote an attribute value. Escape &, <, and > in a string of data, then quote it for use as an attribute value. The " character will be escaped as well, if necessary. You can escape other strings of data by passing a dictionary as the optional entities parameter. The keys and values must all be strings; each key will be replaced with its corresponding value. u u u u u u u"u'u"%s"u"u'%s'(ucopyuupdateuescapeureplace(udatauentities((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu quoteattr0s "    u quoteattrcsdkrddl}|jSttjr5SttjtjfrTSttj rGfddd}|}dd|_ nXtj }dd|_ j |_ yj|_j|_Wntk rYnXtj|d|dd d d d d S(Nics/|EeZdZjZfddZdS(u _gettextwriter.._wrappercs t|S(N(ugetattr(uselfuname(uout(u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu __getattr__[su,_gettextwriter.._wrapper.__getattr__N(u__name__u __module__u __qualname__u __class__u __getattr__(u __locals__(uout(u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu_wrapperYs u_wrappercSsdS(N(uNone(((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu^su _gettextwriter..cSsdS(NT(uTrue(((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyucsuencodinguerrorsuxmlcharrefreplaceunewlineu u write_throughT(uNoneusysustdoutu isinstanceuiou TextIOBaseucodecsu StreamWriteruStreamReaderWriteru RawIOBaseucloseuBufferedIOBaseuwritableuwriteuseekableutelluAttributeErroru TextIOWrapperuTrue(uoutuencodingusysu_wrapperubuffer((uoutu5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu_gettextwriterHs.       u_gettextwritercBs|EeZdZdddddZddZdddZdd Zd d Z d d Z ddZ ddZ ddZ ddZddZddZddZddZdS( u XMLGeneratoru iso-8859-1cCs{tjj|t||}|j|_|j|_ig|_|jd|_ g|_ ||_ ||_ d|_dS(NiiF(uhandleruContentHandleru__init__u_gettextwriteruwriteu_writeuflushu_flushu _ns_contextsu_current_contextu_undeclared_ns_mapsu _encodingu_short_empty_elementsuFalseu_pending_start_element(uselfuoutuencodingushort_empty_elements((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu__init__ss      uXMLGenerator.__init__cCsX|drPd|dkr&d|dS|j|d}|rP|d|dSn|dS(u7Builds a qualified name from a (ns_url, localname) pairiu$http://www.w3.org/XML/1998/namespaceuxml:iu:(u_current_context(uselfunameuprefix((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu_qnames  uXMLGenerator._qnamecCs&|jr"|jdd|_ndS(Nu>F(u_pending_start_elementu_writeuFalse(uselfu endElement((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu_finish_pending_start_elements  u*XMLGenerator._finish_pending_start_elementcCs|jd|jdS(Nu$ (u_writeu _encoding(uself((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu startDocuments uXMLGenerator.startDocumentcCs|jdS(N(u_flush(uself((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu endDocumentsuXMLGenerator.endDocumentcCs@|jj|jj||j|<|jj||fdS(N(u _ns_contextsuappendu_current_contextucopyu_undeclared_ns_maps(uselfuprefixuuri((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyustartPrefixMappings uXMLGenerator.startPrefixMappingcCs|jd|_|jd=dS(Niii(u _ns_contextsu_current_context(uselfuprefix((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyuendPrefixMappingsuXMLGenerator.endPrefixMappingcCs{|j|jd|x7|jD])\}}|jd|t|fq(W|jrjd|_n |jddS(NuT(u_finish_pending_start_elementu_writeuitemsu quoteattru_short_empty_elementsuTrueu_pending_start_element(uselfunameuattrsuvalue((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu startElements !  uXMLGenerator.startElementcCs7|jr"|jdd|_n|jd|dS(Nu/>uF(u_pending_start_elementu_writeuFalse(uselfuname((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu endElements   uXMLGenerator.endElementcCs|j|jd|j|xH|jD]=\}}|rZ|jd||fq.|jd|q.Wg|_x@|jD]2\}}|jd|j|t|fqW|jrd|_n |jddS(NuT( u_finish_pending_start_elementu_writeu_qnameu_undeclared_ns_mapsuitemsu quoteattru_short_empty_elementsuTrueu_pending_start_element(uselfunameuqnameuattrsuprefixuuriuvalue((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyustartElementNSs  *  uXMLGenerator.startElementNScCs@|jr"|jdd|_n|jd|j|dS(Nu/>uF(u_pending_start_elementu_writeuFalseu_qname(uselfunameuqname((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu endElementNSs   uXMLGenerator.endElementNScCsN|rJ|jt|ts4t||j}n|jt|ndS(N(u_finish_pending_start_elementu isinstanceustru _encodingu_writeuescape(uselfucontent((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu characterss  uXMLGenerator.characterscCsH|rD|jt|ts4t||j}n|j|ndS(N(u_finish_pending_start_elementu isinstanceustru _encodingu_write(uselfucontent((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyuignorableWhitespaces  u XMLGenerator.ignorableWhitespacecCs%|j|jd||fdS(Nu (u_finish_pending_start_elementu_write(uselfutargetudata((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyuprocessingInstructions u"XMLGenerator.processingInstructionNF(u__name__u __module__u __qualname__uNoneuFalseu__init__u_qnameu_finish_pending_start_elementu startDocumentu endDocumentustartPrefixMappinguendPrefixMappingu startElementu endElementustartElementNSu endElementNSu charactersuignorableWhitespaceuprocessingInstruction(u __locals__((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu XMLGeneratorqs          u XMLGeneratorcBsm|EeZdZdZd:ddZddZddZdd Zd d Z d d Z ddZ ddZ ddZ ddZddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Z d:S(;u XMLFilterBaseuYThis class is designed to sit between an XMLReader and the client application's event handlers. By default, it does nothing but pass requests up to the reader and events on to the handlers unmodified, but subclasses can override specific methods to modify the event stream or the configuration requests as they pass through.cCstjj|||_dS(N(u xmlreaderu XMLReaderu__init__u_parent(uselfuparent((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu__init__suXMLFilterBase.__init__cCs|jj|dS(N(u _err_handleruerror(uselfu exception((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyuerrorsuXMLFilterBase.errorcCs|jj|dS(N(u _err_handleru fatalError(uselfu exception((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu fatalErrorsuXMLFilterBase.fatalErrorcCs|jj|dS(N(u _err_handleruwarning(uselfu exception((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyuwarningsuXMLFilterBase.warningcCs|jj|dS(N(u _cont_handlerusetDocumentLocator(uselfulocator((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyusetDocumentLocatorsu XMLFilterBase.setDocumentLocatorcCs|jjdS(N(u _cont_handleru startDocument(uself((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu startDocumentsuXMLFilterBase.startDocumentcCs|jjdS(N(u _cont_handleru endDocument(uself((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu endDocumentsuXMLFilterBase.endDocumentcCs|jj||dS(N(u _cont_handlerustartPrefixMapping(uselfuprefixuuri((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyustartPrefixMappingsu XMLFilterBase.startPrefixMappingcCs|jj|dS(N(u _cont_handleruendPrefixMapping(uselfuprefix((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyuendPrefixMapping suXMLFilterBase.endPrefixMappingcCs|jj||dS(N(u _cont_handleru startElement(uselfunameuattrs((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu startElement suXMLFilterBase.startElementcCs|jj|dS(N(u _cont_handleru endElement(uselfuname((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu endElementsuXMLFilterBase.endElementcCs|jj|||dS(N(u _cont_handlerustartElementNS(uselfunameuqnameuattrs((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyustartElementNSsuXMLFilterBase.startElementNScCs|jj||dS(N(u _cont_handleru endElementNS(uselfunameuqname((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu endElementNSsuXMLFilterBase.endElementNScCs|jj|dS(N(u _cont_handleru characters(uselfucontent((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu characterssuXMLFilterBase.characterscCs|jj|dS(N(u _cont_handleruignorableWhitespace(uselfuchars((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyuignorableWhitespacesu!XMLFilterBase.ignorableWhitespacecCs|jj||dS(N(u _cont_handleruprocessingInstruction(uselfutargetudata((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyuprocessingInstructionsu#XMLFilterBase.processingInstructioncCs|jj|dS(N(u _cont_handleru skippedEntity(uselfuname((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu skippedEntity!suXMLFilterBase.skippedEntitycCs|jj|||dS(N(u _dtd_handleru notationDecl(uselfunameupublicIdusystemId((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu notationDecl&suXMLFilterBase.notationDeclcCs|jj||||dS(N(u _dtd_handleruunparsedEntityDecl(uselfunameupublicIdusystemIdundata((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyuunparsedEntityDecl)su XMLFilterBase.unparsedEntityDeclcCs|jj||S(N(u _ent_handleru resolveEntity(uselfupublicIdusystemId((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu resolveEntity.suXMLFilterBase.resolveEntitycCsT|jj||jj||jj||jj||jj|dS(N(u_parentusetContentHandlerusetErrorHandlerusetEntityResolveru setDTDHandleruparse(uselfusource((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyuparse3s uXMLFilterBase.parsecCs|jj|dS(N(u_parentu setLocale(uselfulocale((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu setLocale:suXMLFilterBase.setLocalecCs|jj|S(N(u_parentu getFeature(uselfuname((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu getFeature=suXMLFilterBase.getFeaturecCs|jj||dS(N(u_parentu setFeature(uselfunameustate((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu setFeature@suXMLFilterBase.setFeaturecCs|jj|S(N(u_parentu getProperty(uselfuname((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu getPropertyCsuXMLFilterBase.getPropertycCs|jj||dS(N(u_parentu setProperty(uselfunameuvalue((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu setPropertyFsuXMLFilterBase.setPropertycCs|jS(N(u_parent(uself((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu getParentKsuXMLFilterBase.getParentcCs ||_dS(N(u_parent(uselfuparent((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu setParentNsuXMLFilterBase.setParentN(!u__name__u __module__u __qualname__u__doc__uNoneu__init__uerroru fatalErroruwarningusetDocumentLocatoru startDocumentu endDocumentustartPrefixMappinguendPrefixMappingu startElementu endElementustartElementNSu endElementNSu charactersuignorableWhitespaceuprocessingInstructionu skippedEntityu notationDecluunparsedEntityDeclu resolveEntityuparseu setLocaleu getFeatureu setFeatureu getPropertyu setPropertyu getParentu setParent(u __locals__((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyu XMLFilterBases:                          u XMLFilterBaseucCs>t|tr!tj|}nSt|drt|}tj}|j|t|drt|j|jqtn|jdkr:|j }t j j t j j|}t j j||}t j j|r|j|t|d}n4|jtjj||tjj|j }|j|n|S(uThis function takes an InputSource and an optional base URL and returns a fully resolved InputSource object ready for reading.ureadunameurbN(u isinstanceustru xmlreaderu InputSourceuhasattru setByteStreamu setSystemIdunameu getByteStreamuNoneu getSystemIduosupathudirnameunormpathujoinuisfileuopenuurllibuparseuurljoinurequestuurlopen(usourceubaseufusysidubaseheadu sysidfilename((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyuprepare_input_sourceSs&    uprepare_input_source(u__doc__uosu urllib.parseuurllibuurllib.requestuioucodecsuuhandleru xmlreaderu__dict_replaceuescapeuunescapeu quoteattru_gettextwriteruContentHandleru XMLGeneratoru XMLReaderu XMLFilterBaseuprepare_input_source(((u5/opt/alt/python33/lib64/python3.3/xml/sax/saxutils.pyus$    )so