-í Žc9csdklZlZlZdkZdkZdkZdklZl Z l Z dk l Z  dfd„ƒYZ dfd„ƒYZ+defd „ƒYZed e fd „ƒYZked jo?leƒZmeieid ƒ oneid ƒnndS((ssaxextsssaxlibssaxutilsN(sDocumentHandlers ErrorHandlers ParseHandler(sStacks ObjectBasecsG tZ d„Z d„Zd„Zd„Zd„ZRS(Ncs  g|_dS(N(sselfslist(sself((s./objectparse.pys__init__ scs; x.|iƒD]}|i|||ƒqWdS(N(sattrsskeysskeysselfs handledata(sselfsattrsskey((s./objectparse.pys getattributes s cs dS(N((sselfsattrs((s./objectparse.pysgetelementattributesscs dS(N((sselfstagnamesdata((s./objectparse.pys handledatascs|ii|ƒdS(N(sselfslistsappendsnewobj(sselfsnewobj((s./objectparse.pysadds(s__name__s __module__s__init__s getattributessgetelementattributess handledatasadd(((s./objectparse.pys ObjectBase s     sObjectClassFactorycs/tZd„Z!d„Z%d„ZRS(Ncs dS(N((sself((s./objectparse.pys__init__scs!"#tƒSdS(s3Create the object specified by name or None if noneN(s ObjectBase(sselfsname((s./objectparse.pys CreateObject!scs%&'tƒSdS(sICreate the top level object for the class hierarchy before parsing beginsN(s ObjectBase(sself((s./objectparse.pysCreateTopObject%s(s__name__s __module__s__init__s CreateObjectsCreateTopObject(((s./objectparse.pysObjectClassFactorys   sObjectDocumentHandlercsq+tZ-eƒd„Z7d„Z?d„ZMd„ZQd„ZUd„ZYd„Z ad„Z RS( Ncs-.ti|ƒ/||_0tƒ|_1tƒ|_2|iiƒ|_ 3|i t jo4|ii |i ƒn5d|_ dS(Ni( sDocumentHandlers__init__sselfs myfactorys_ObjectDocumentHandler__factorysStacks$_ObjectDocumentHandler__elementstacks _ObjectDocumentHandler__objstacksCreateTopObjectstopobjsNonespushsdebug(sselfs myfactory((s./objectparse.pys__init__-s csW789|ii|ƒ}:|tjo!;|io<dG|GHnn=|SdS(s/Create appropriate Python object for XML objectsUnprocessed element N(sselfs_ObjectDocumentHandler__factorys CreateObjectsnamesnewobjsNonesdebug(sselfsnamesnewobj((s./objectparse.pys createObject7s  csÚ?@|i|ƒ}A|tjoyBt|iƒdjo&C|iiƒ}D|i |ƒnE|i |ƒF|ii |ƒG|i i dƒn9I|iiƒ}J|i||ƒK|i i dƒdS(Nii(sselfs createObjectsnamesnewobjsNoneslens _ObjectDocumentHandler__objstackspeeksoldgroupsadds getattributessattrsspushs$_ObjectDocumentHandler__elementstacksoldobjsgetelementattributes(sselfsnamesattrssoldobjsoldgroupsnewobj((s./objectparse.pyshandleStartElement?scs0MNti|||ƒO|i||ƒdS(N(sDocumentHandlers startElementsselfsnamesattrsshandleStartElement(sselfsnamesattrs((s./objectparse.pys startElementMscs.QR|iiƒoS|iiƒndS(N(sselfs$_ObjectDocumentHandler__elementstackspops _ObjectDocumentHandler__objstack(sselfsname((s./objectparse.pyshandleEndObjectQscs*UVti||ƒW|i|ƒdS(N(sDocumentHandlers endElementsselfsnameshandleEndObject(sselfsname((s./objectparse.pys endElementUscs…YZti|idƒ}[|io\d||fGHn]t|iƒdjo)^|ii ƒ}_|i ||ƒndS(Nsnames got %s = %si( sstringsjoinsselfs start_tagstagnamesdebugsdataslens _ObjectDocumentHandler__objstackspeeksoldobjs handledata(sselfsdatastagnamesoldobj((s./objectparse.pys handleDataYs  csab|i|ƒdS(N(sselfs handleDatasdata(sselfsdata((s./objectparse.pyshandleCharactersas( s__name__s __module__sObjectClassFactorys__init__s createObjectshandleStartElements startElementshandleEndObjects endElements handleDatashandleCharacters(((s./objectparse.pysObjectDocumentHandler+s       sObjectParseHandlercsetZfd„ZRS(NcsfgtƒSdS(N(sObjectDocumentHandler(sself((s./objectparse.pys MakeHandlerfs(s__name__s __module__s MakeHandler(((s./objectparse.pysObjectParseHandleres s__main__i(sxml.saxssaxextsssaxlibssaxutilsssyssurllibsstringssaxparsesDocumentHandlers ErrorHandlers ParseHandlersstacksStacks ObjectBasesObjectClassFactorysObjectDocumentHandlersObjectParseHandlers__name__s parsehandlers RunAndCatchsargvsexit(sObjectDocumentHandlers ObjectBasesstringsObjectClassFactorysDocumentHandlerssaxextss ErrorHandlers ParseHandlerssysssaxlibsurllibssaxutilssObjectParseHandlers parsehandlersStack((s./objectparse.pys?s: