ž ryMaC9c@s.dZdZddlTddlmZmZddlmZddlmZmZddlm Z ddlm Z m Z dd l Z e j d d …d kr¯ed eƒ‚n[ ydd lmZWn!ek réedeƒ‚Yn#Xeedƒ r edeƒ‚nddlmZmZmZejZejZydd lZWnek rjdd„ZYnXdd lZejZ[[Gdd„dejƒZGdd„dej ejƒZ!dd„Z"e#dkr*dd l$Z%e"ƒZ&e&j'e%j(jj)ƒƒe&j*e%j(j+ƒƒe&j,dƒnd S(u] SAX driver for the pyexpat C module. This driver works with pyexpat.__version__ == '2.22'. u0.20i(u*(ufeature_validationufeature_namespaces(ufeature_namespace_prefixes(ufeature_external_gesufeature_external_pes(ufeature_string_interning(uproperty_xml_stringuproperty_interning_dictNiujavauexpat not available in Java(uexpatuexpat not supportedu ParserCreate(u xmlreaderusaxutilsuhandlercCs|S(N((uo((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyu_mkproxy'su_mkproxycBsV|EeZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd S( u ExpatLocatoru¼Locator for use with the ExpatParser class. This uses a weak reference to the parser object to avoid creating a circular reference between the parser and the content handler. cCst|ƒ|_dS(N(u_mkproxyu_ref(uselfuparser((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyu__init__6suExpatLocator.__init__cCs&|j}|jdkrdS|jjS(N(u_refu_parseruNoneuErrorColumnNumber(uselfuparser((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyugetColumnNumber9s uExpatLocator.getColumnNumbercCs&|j}|jdkrdS|jjS(Ni(u_refu_parseruNoneuErrorLineNumber(uselfuparser((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyu getLineNumber?s uExpatLocator.getLineNumbercCs&|j}|dkrdS|jjƒS(N(u_refuNoneu_sourceu getPublicId(uselfuparser((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyu getPublicIdEs  uExpatLocator.getPublicIdcCs&|j}|dkrdS|jjƒS(N(u_refuNoneu_sourceu getSystemId(uselfuparser((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyu getSystemIdKs  uExpatLocator.getSystemIdN( u__name__u __module__u __qualname__u__doc__u__init__ugetColumnNumberu getLineNumberu getPublicIdu getSystemId(u __locals__((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyu ExpatLocator0s     u ExpatLocatorcBs‹|EeZdZdZddDdd„Zdd „Zd d „Zd d „Zdd„Zdd„Z dd„Z dd„Z ddd„Z dd„Z dd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1„Zd2d3„Zd4d5„Zd6d7„Zd8d9„Zd:d;„Zd<d=„Zd>d?„Z d@dA„Z!dBS(Eu ExpatParseru$SAX driver for the pyexpat C module.iiiicCsetjj||ƒtjƒ|_d|_||_d|_d|_ g|_ d|_ d|_ dS(Nii( u xmlreaderuIncrementalParseru__init__u InputSourceu_sourceuNoneu_parseru _namespacesu_lex_handler_propu_parsingu _entity_stacku _external_gesu _interning(uselfunamespaceHandlingubufsize((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyu__init__Ws      uExpatParser.__init__cCsOtj|ƒ}||_|jƒ|jjt|ƒƒtjj ||ƒdS(u3Parse an XML document from a URL or an InputSource.N( usaxutilsuprepare_input_sourceu_sourceuresetu _cont_handlerusetDocumentLocatoru ExpatLocatoru xmlreaderuIncrementalParseruparse(uselfusource((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyuparseds   uExpatParser.parsecCs/|jƒdk r+|jj|jƒƒndS(N(u getSystemIduNoneu_parseruSetBase(uselfusource((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyu prepareParsermsuExpatParser.prepareParsercCs-tjj||ƒ|jr)|jƒndS(N(u xmlreaderuIncrementalParserusetContentHandleru_parsingu_reset_cont_handler(uselfuhandler((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyusetContentHandlerss uExpatParser.setContentHandlercCsl|tkr|jS|tkr,|jdk S|tttfkrEdS|tkrX|j St d|ƒ‚dS(NiuFeature '%s' not recognized( ufeature_namespacesu _namespacesufeature_string_interningu _interninguNoneufeature_validationufeature_external_pesufeature_namespace_prefixesufeature_external_gesu _external_gesuSAXNotRecognizedException(uselfuname((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyu getFeaturexs      uExpatParser.getFeaturecCs|jrtdƒ‚n|tkr0||_nÐ|tkrH||_n¸|tkr„|rx|jdkri|_qqd|_n||t kr¨|rtdƒ‚qnX|t krÌ|rtdƒ‚qn4|t krð|rtdƒ‚qnt d|ƒ‚dS(Nu!Cannot set features while parsingu!expat does not support validationu/expat does not read external parameter entitiesu(expat does not report namespace prefixesuFeature '%s' not recognized( u_parsinguSAXNotSupportedExceptionufeature_namespacesu _namespacesufeature_external_gesu _external_gesufeature_string_interningu _interninguNoneufeature_validationufeature_external_pesufeature_namespace_prefixesuSAXNotRecognizedException(uselfunameustate((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyu setFeature„s2          uExpatParser.setFeaturecCs|tjkr|jS|tkr)|jS|tkr{|jrlt|jdƒr]|jjƒSt dƒ‚q{t dƒ‚nt d|ƒ‚dS(NuGetInputContextu=This version of expat does not support getting the XML stringu.XML string cannot be returned when not parsinguProperty '%s' not recognized( uhandleruproperty_lexical_handleru_lex_handler_propuproperty_interning_dictu _interninguproperty_xml_stringu_parseruhasattruGetInputContextuSAXNotRecognizedExceptionuSAXNotSupportedException(uselfuname((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyu getProperty¢s      uExpatParser.getPropertycCs||tjkr1||_|jrx|jƒqxnG|tkrI||_n/|tkrhtd|ƒ‚nt d|ƒ‚dS(NuProperty '%s' cannot be setuProperty '%s' not recognized( uhandleruproperty_lexical_handleru_lex_handler_propu_parsingu_reset_lex_handler_propuproperty_interning_dictu _interninguproperty_xml_stringuSAXNotSupportedExceptionuSAXNotRecognizedException(uselfunameuvalue((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyu setProperty´s      uExpatParser.setPropertycCs |js,|jƒd|_|jjƒny|jj||ƒWnVtjk r›}z3ttj |j ƒ||ƒ}|j j |ƒWYdd}~XnXdS(Ni( u_parsinguresetu _cont_handleru startDocumentu_parseruParseuexpatuerroruSAXParseExceptionu ErrorStringucodeu _err_handleru fatalError(uselfudatauisFinalueuexc((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyufeedÄs   uExpatParser.feedcCsk|jr dS|jdddƒ|jjƒd|_d|_|jjƒ}|dk rg|j ƒndS(NuuisFinalii( u _entity_stackufeedu _cont_handleru endDocumentu_parsinguNoneu_parseru_sourceu getByteStreamuclose(uselfubs((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyucloseÕs     uExpatParser.closecCs(|jj|j_|jj|j_dS(N(u _cont_handleruprocessingInstructionu_parseruProcessingInstructionHandleru charactersuCharacterDataHandler(uself((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyu_reset_cont_handlerâsuExpatParser._reset_cont_handlercCsŽ|j}|j}|dkrNd|_d|_d|_d|_d|_n<|j|_|j |_|j |_|j |_|j |_dS(N( u_lex_handler_propu_parseruNoneuCommentHandleruStartCdataSectionHandleruEndCdataSectionHandleruStartDoctypeDeclHandleruEndDoctypeDeclHandlerucommentu startCDATAuendCDATAustart_doctype_decluendDTD(uselfulexuparser((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyu_reset_lex_handler_propçs            u#ExpatParser._reset_lex_handler_propc Csd|jr]tj|jjƒdd|jƒ|_d|j_|j|j_ |j |j_ nBtj|jjƒd|jƒ|_|j |j_ |j |j_ |jƒ|j|j_|j|j_|j|j_|j|j_d|_|jr|jƒn|j|j_y|j|j_Wntk r:YnX|jj tj!ƒd|_"g|_#dS(Nu uinternii($u _namespacesuexpatu ParserCreateu_sourceu getEncodingu _interningu_parserunamespace_prefixesustart_element_nsuStartElementHandleruend_element_nsuEndElementHandleru start_elementu end_elementu_reset_cont_handleruunparsed_entity_decluUnparsedEntityDeclHandleru notation_decluNotationDeclHandlerustart_namespace_decluStartNamespaceDeclHandleruend_namespace_decluEndNamespaceDeclHandleruNoneu_decl_handler_propu_lex_handler_propu_reset_lex_handler_propuexternal_entity_refuExternalEntityRefHandleruskipped_entity_handleruSkippedEntityHandleruAttributeErroruSetParamEntityParsingu*XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONEu_parsingu _entity_stack(uself((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyureset÷s6          uExpatParser.resetcCs|jdkrdS|jjS(N(u_parseruNoneuErrorColumnNumber(uself((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyugetColumnNumbersuExpatParser.getColumnNumbercCs|jdkrdS|jjS(Ni(u_parseruNoneuErrorLineNumber(uself((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyu getLineNumber#suExpatParser.getLineNumbercCs |jjƒS(N(u_sourceu getPublicId(uself((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyu getPublicId(suExpatParser.getPublicIdcCs |jjƒS(N(u_sourceu getSystemId(uself((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyu getSystemId+suExpatParser.getSystemIdcCs|jj|t|ƒƒdS(N(u _cont_handleru startElementuAttributesImpl(uselfunameuattrs((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyu start_element/suExpatParser.start_elementcCs|jj|ƒdS(N(u _cont_handleru endElement(uselfuname((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyu end_element2suExpatParser.end_elementc CsL|jƒ}t|ƒdkr-d|f}n5t|ƒdkrV|d|df}n t|ƒ}i}i}x¸|jƒD]ª\}}|jƒ}t|ƒ} | dkrÀ|} d|f} nQ| dkrûd|d|df} |d|df} n|d} t|ƒ} ||| <| ||         '       "        u ExpatParsercOs t||ŽS(N(u ExpatParser(uargsukwargs((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyu create_parser—su create_parseru__main__u:http://www.ibiblio.org/xml/examples/shakespeare/hamlet.xml(-u__doc__uversionuxml.sax._exceptionsuxml.sax.handlerufeature_validationufeature_namespacesufeature_namespace_prefixesufeature_external_gesufeature_external_pesufeature_string_interninguproperty_xml_stringuproperty_interning_dictusysuplatformuSAXReaderNotAvailableuNoneu xml.parsersuexpatu ImportErroruhasattruxml.saxu xmlreaderusaxutilsuhandleruAttributesImpluAttributesNSImplu_weakrefu_mkproxyuweakrefuproxyuLocatoru ExpatLocatoruIncrementalParseru ExpatParseru create_parseru__name__uxml.sax.saxutilsuxmlupusetContentHandlerusaxu XMLGeneratorusetErrorHandleru ErrorHandleruparse(((u8/opt/alt/python33/lib64/python3.3/xml/sax/expatreader.pyusJ        $ÿD