ž ¦ÿfNºc&@sždZddlZddlZddlZddlmZddlZddlZddl m Z ddl Z ddl Z ddl mZyddlZWnek r´dZYnXdd„Zejdd…ZdWZdYZdZZd[Zd\Zd]Zd^Zd_Zd`ZdaZdbZdcZ ddZ!deZ"Gdd„de#ƒZ$Gdd„de$ƒZ%Gdd„de$ƒZ&Gdd„de$ƒZ'e(Z)Z*ed d d ƒZ+e+j,dƒdkrÀd d!„Z-n0e+j,d"ƒdkräd#d!„Z-n d$d!„Z-[+d%d&„Z.Gd'd(„d(ƒZ/d)d*„Z0d+d,„Z1Gd-d.„d.ƒZ2d/d0„Z3e/e2fZ4Gd1d2„d2ƒZ5Gd3d4„d4ƒZ6Gd5d6„d6ƒZ7Gd7d8„d8ƒZ8Gd9d:„d:ƒZ9Gd;d<„d<ƒZ:dZ;Z<Z=dfdfd=d>„Z?ddddfd?d@„Z@dfdfdAdB„ZAdCdD„ZBdEdFdG„ZCGdHdI„dIerHejDneEƒZFGdJdK„dKƒZGGdLdM„dMƒZHGdNdO„dOeHƒZIGdPdQ„dQƒZJeJZKeLdRkršeJdSƒZMyeNeMjOjPƒƒWn2e$k r ZQzeNdTeQƒWYddZQ[QXnXe:eMƒZReRjSƒeRjTd dUƒeRjUd d ƒy"xeRƒD]ZVeNeVƒqMWWqše$k r–ZQzeNdTeQƒWYddZQ[QXqšXndS(gu° An XML-RPC client interface for Python. The marshalling and response parser code can also be used to implement XML-RPC servers. Exported exceptions: Error Base class for client errors ProtocolError Indicates an HTTP protocol error ResponseError Indicates a broken response package Fault Indicates an XML-RPC fault package Exported classes: ServerProxy Represents a logical connection to an XML-RPC server MultiCall Executor of boxcared xmlrpc requests DateTime dateTime wrapper for an ISO 8601 string or time tuple or localtime integer value to generate a "dateTime.iso8601" XML-RPC value Binary binary data wrapper Marshaller Generate an XML-RPC params chunk from a Python data structure Unmarshaller Unmarshal an XML-RPC response from incoming XML event message Transport Handles an HTTP transaction to an XML-RPC server SafeTransport Handles an HTTPS transaction to an XML-RPC server Exported constants: (none) Exported functions: getparser Create instance of the fastest available parser & attach to an unmarshalling object dumps Convert an argument tuple or a Fault instance to an XML-RPC request (or response, if the methodresponse option is used). loads Convert an XML-RPC packet to unmarshalled data plus a method name (None if not present). iN(udatetime(uexpat(uBytesIOcCs4|jddƒ}|jddƒ}|jddƒS(Nu&u&uu>(ureplace(us((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuescape•suescapeiiiii¼iXiô~i~i,~i½i¾iYiZi[cBs&|EeZdZdZdd„ZdS(uErroruBase class for client errors.cCs t|ƒS(N(urepr(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__str__½su Error.__str__N(u__name__u __module__u __qualname__u__doc__u__str__(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuError»suErrorcBs2|EeZdZdZdd„Zdd„ZdS(u ProtocolErroru!Indicates an HTTP protocol error.cCs5tj|ƒ||_||_||_||_dS(N(uErroru__init__uurluerrcodeuerrmsguheaders(uselfuurluerrcodeuerrmsguheaders((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__Ìs     uProtocolError.__init__cCsd|j|j|jfS(Nu(uurluerrcodeuerrmsg(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__repr__ÒsuProtocolError.__repr__N(u__name__u __module__u __qualname__u__doc__u__init__u__repr__(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu ProtocolErrorÊs u ProtocolErrorcBs|EeZdZdZdS(u ResponseErroru$Indicates a broken response package.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu ResponseErrorÝsu ResponseErrorcBs2|EeZdZdZdd„Zdd„ZdS(uFaultu#Indicates an XML-RPC fault package.cKs#tj|ƒ||_||_dS(N(uErroru__init__u faultCodeu faultString(uselfu faultCodeu faultStringuextra((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__ìs  uFault.__init__cCsd|j|jfS(Nu(u faultCodeu faultString(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__repr__ðsuFault.__repr__N(u__name__u __module__u __qualname__u__doc__u__init__u__repr__(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuFaultês uFaultu%Yu0001cCs |jdƒS(Nu%Y%m%dT%H:%M:%S(ustrftime(uvalue((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu_iso8601_format su_iso8601_formatu%4YcCs |jdƒS(Nu%4Y%m%dT%H:%M:%S(ustrftime(uvalue((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu_iso8601_formatscCs|jdƒjdƒS(Nu%Y%m%dT%H:%M:%Si(ustrftimeuzfill(uvalue((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu_iso8601_formatscCspt|tƒrt|ƒSt|ttjfƒs^|dkrLtjƒ}ntj|ƒ}nd|dd…S(Niu%04d%02d%02dT%02d:%02d:%02di(u isinstanceudatetimeu_iso8601_formatutupleutimeu struct_timeu localtime(uvalue((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu _strftimes  u _strftimecBs¹|EeZdZdZddd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„ZdS(uDateTimeu‹DateTime wrapper for an ISO 8601 string or time tuple or localtime integer value to generate 'dateTime.iso8601' XML-RPC value. icCs.t|tƒr||_nt|ƒ|_dS(N(u isinstanceustruvalueu _strftime(uselfuvalue((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__(s uDateTime.__init__cCsãt|tƒr$|j}|j}nµt|tƒrK|j}t|ƒ}nŽt|tƒrl|j}|}nmt|dƒr–|jƒ}|jƒ}nCt|dƒr±|jj pºt |ƒ}t d|jj |fƒ‚||fS(Nu timetupleu __class__uCan't compare %s and %s( u isinstanceuDateTimeuvalueudatetimeu_iso8601_formatustruhasattru timetupleu __class__u__name__utypeu TypeError(uselfuotherusuouotype((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyumake_comparable.s$        uDateTime.make_comparablecCs|j|ƒ\}}||kS(N(umake_comparable(uselfuotherusuo((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__lt__CsuDateTime.__lt__cCs|j|ƒ\}}||kS(N(umake_comparable(uselfuotherusuo((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__le__GsuDateTime.__le__cCs|j|ƒ\}}||kS(N(umake_comparable(uselfuotherusuo((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__gt__KsuDateTime.__gt__cCs|j|ƒ\}}||kS(N(umake_comparable(uselfuotherusuo((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__ge__OsuDateTime.__ge__cCs|j|ƒ\}}||kS(N(umake_comparable(uselfuotherusuo((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__eq__SsuDateTime.__eq__cCs|j|ƒ\}}||kS(N(umake_comparable(uselfuotherusuo((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__ne__WsuDateTime.__ne__cCstj|jdƒS(Nu%Y%m%dT%H:%M:%S(utimeustrptimeuvalue(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu timetuple[suDateTime.timetuplecCs|jS(N(uvalue(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__str__csuDateTime.__str__cCsd|jt|ƒfS(Nu(uvalueuid(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__repr__fsuDateTime.__repr__cCst|ƒjƒ|_dS(N(ustrustripuvalue(uselfudata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyudecodeisuDateTime.decodecCs.|jdƒ|j|jƒ|jdƒdS(Nuu (uwriteuvalue(uselfuout((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuencodels uDateTime.encodeN(u__name__u __module__u __qualname__u__doc__u__init__umake_comparableu__lt__u__le__u__gt__u__ge__u__eq__u__ne__u timetupleu__str__u__repr__udecodeuencode(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuDateTime"s           uDateTimecCstƒ}|j|ƒ|S(N(uDateTimeudecode(udatauvalue((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu _datetimeqs  u _datetimecCstj|dƒS(Nu%Y%m%dT%H:%M:%S(udatetimeustrptime(udata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu_datetime_typewsu_datetime_typecBse|EeZdZdZddd„Zdd„Zdd„Zdd „Zd d „Z d d „Z dS(uBinaryuWrapper for binary data.cCs\|dkrd}n:t|ttfƒsCtd|jjƒ‚nt|ƒ}||_dS(Nsu#expected bytes or bytearray, not %s(uNoneu isinstanceubytesu bytearrayu TypeErroru __class__u__name__udata(uselfudata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__ƒs   uBinary.__init__cCst|jdƒS(Nulatin-1(ustrudata(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__str__’suBinary.__str__cCs(t|tƒr|j}n|j|kS(N(u isinstanceuBinaryudata(uselfuother((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__eq__•s u Binary.__eq__cCs(t|tƒr|j}n|j|kS(N(u isinstanceuBinaryudata(uselfuother((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__ne__šs u Binary.__ne__cCstj|ƒ|_dS(N(ubase64u decodebytesudata(uselfudata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyudecodeŸsu Binary.decodecCsF|jdƒtj|jƒ}|j|jdƒƒ|jdƒdS(Nu uasciiu (uwriteubase64u encodebytesudataudecode(uselfuoutuencoded((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuencode¢s u Binary.encodeN( u__name__u __module__u __qualname__u__doc__uNoneu__init__u__str__u__eq__u__ne__udecodeuencode(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuBinary€s    uBinarycCstƒ}|j|ƒ|S(N(uBinaryudecode(udatauvalue((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu_binary¨s  u_binarycBs8|EeZdZdd„Zdd„Zdd„ZdS(u ExpatParsercCs`tjddƒ|_}||_|j|_|j|_|j |_ d}|j |dƒdS(N( uexpatu ParserCreateuNoneu_parseru_targetustartuStartElementHandleruenduEndElementHandlerudatauCharacterDataHandleruxml(uselfutargetuparseruencoding((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__µs    uExpatParser.__init__cCs|jj|dƒdS(Ni(u_parseruParse(uselfudata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyufeed¾suExpatParser.feedcCs#|jjddƒ|`|`dS(Nui(u_parseruParseu_target(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyucloseÁsuExpatParser.closeN(u__name__u __module__u __qualname__u__init__ufeeduclose(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu ExpatParser³s u ExpatParsercBs`|EeZdZdZdddd„ZiZdd„Zdd„Z dd „Z e ee dƒ u faultCodeu faultStringu u u u u u(uappendu_Marshaller__dumpu isinstanceuFaultu faultCodeu faultStringujoin(uselfuvaluesuoutuwriteudumpuvuresult((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyudumpsäs"          uMarshaller.dumpsc Cs½y|jt|ƒ}Wntk r¨t|dƒsOtdt|ƒƒ‚nxEt|ƒjD]4}||jjƒkr_tdt|ƒƒ‚q_q_W|jd}YnX||||ƒdS(Nu__dict__ucannot marshal %s objectsu_arbitrary_instance(udispatchutypeuKeyErroruhasattru TypeErroru__mro__ukeys(uselfuvalueuwriteufutype_((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__dumpÿs uMarshaller.__dumpcCs&|jstdƒ‚n|dƒdS(Nu0cannot marshal None unless allow_none is enabledu(u allow_noneu TypeError(uselfuvalueuwrite((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyudump_nils uMarshaller.dump_nilcCs.|dƒ||rdpdƒ|dƒdS(Nuu1u0u ((uselfuvalueuwrite((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu dump_bools uMarshaller.dump_boolcCsU|tks|tkr'tdƒ‚n|dƒ|tt|ƒƒƒ|dƒdS(Nuint exceeds XML-RPC limitsu u (uMAXINTuMININTu OverflowErrorustruint(uselfuvalueuwrite((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu dump_longs  uMarshaller.dump_longcCs(|dƒ|t|ƒƒ|dƒdS(Nuu (urepr(uselfuvalueuwrite((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu dump_double(s uMarshaller.dump_doublecCs(|dƒ|||ƒƒ|dƒdS(Nuu ((uselfuvalueuwriteuescape((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu dump_unicode.s uMarshaller.dump_unicodecCs:|dƒtj|ƒ}||jdƒƒ|dƒdS(Nu uasciiu (ubase64u encodebytesudecode(uselfuvalueuwriteuencoded((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu dump_bytes4s uMarshaller.dump_bytescCs€t|ƒ}||jkr*tdƒ‚nd|j|<|j}|dƒx|D]}|||ƒqQW|dƒ|j|=dS(Nu"cannot marshal recursive sequencesu u (uidumemou TypeErroruNoneu_Marshaller__dump(uselfuvalueuwriteuiudumpuv((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu dump_array<s      uMarshaller.dump_arraycCsÒt|ƒ}||jkr*tdƒ‚nd|j|<|j}|dƒxm|jƒD]_\}}|dƒt|tƒs‹tdƒ‚n|d||ƒƒ|||ƒ|dƒqWW|dƒ|j|=dS(Nu%cannot marshal recursive dictionariesu u udictionary key must be stringu%s u u (uidumemou TypeErroruNoneu_Marshaller__dumpuitemsu isinstanceustr(uselfuvalueuwriteuescapeuiudumpukuv((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu dump_structJs       uMarshaller.dump_structcCs(|dƒ|t|ƒƒ|dƒdS(Nuu (u _strftime(uselfuvalueuwrite((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu dump_datetime\s uMarshaller.dump_datetimecCsE|jtkr.||_|j|ƒ|`n|j|j|ƒdS(N(u __class__uWRAPPERSuwriteuencodeu dump_structu__dict__(uselfuvalueuwrite((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu dump_instancebs    uMarshaller.dump_instanceu_arbitrary_instanceNF(#u__name__u __module__u __qualname__u__doc__uNoneuFalseu__init__udispatchudumpsu_Marshaller__dumpudump_nilutypeu dump_booluboolu dump_longuintudump_intu dump_doubleufloatuescapeu dump_unicodeustru dump_bytesubytesu bytearrayu dump_arrayutupleulistu dump_structudictu dump_datetimeudatetimeu dump_instanceuDateTimeuBinary(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu MarshallerÏs<                    u MarshallercBsÂ|EeZdZdZd=d=dd„Zdd„Zdd„Zdd „Zd d „Z d d „Z dd„Z dd„Z iZ dd„Zee du UnmarshalleruUnmarshal an XML-RPC response, based on incoming XML event messages (start, data, end). Call close() to get the resulting data structure. Note that this reader is fairly tolerant, and gladly accepts bogus XML-RPC data without complaining (but not bogus XML). cCsad|_g|_g|_g|_d|_d|_|jj|_|pN||_||_ dS(Nuutf-8( uNoneu_typeu_stacku_marksu_datau _methodnameu _encodinguappendu _use_datetimeu _use_bytes(uselfu use_datetimeuuse_builtin_types((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__‚s      uUnmarshaller.__init__cCsV|jdks|jr$tƒ‚n|jdkrIt|jd‚nt|jƒS(Nufaulti(u_typeuNoneu_marksu ResponseErroruFaultu_stackutuple(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyucloses  uUnmarshaller.closecCs|jS(N(u _methodname(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu getmethodname•suUnmarshaller.getmethodnamecCs ||_dS(N(u _encoding(uselfuencodingu standalone((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuxml›suUnmarshaller.xmlcCsP|dks|dkr4|jjt|jƒƒng|_|dk|_dS(Nuarrayustructuvalue(u_marksuappendulenu_stacku_datau_value(uselfutaguattrs((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyustartŸs uUnmarshaller.startcCs|jj|ƒdS(N(u_datauappend(uselfutext((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyudata¦suUnmarshaller.datac CsCy|j|}Wntk r%YnX||dj|jƒƒSdS(Nu(udispatchuKeyErrorujoinu_data(uselfutaguf((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuend©s  uUnmarshaller.endc Cs7y|j|}Wntk r%YnX|||ƒSdS(N(udispatchuKeyError(uselfutagudatauf((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu end_dispatchµs  uUnmarshaller.end_dispatchcCs|jdƒd|_dS(Ni(uappenduNoneu_value(uselfudata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuend_nilÃs uUnmarshaller.end_nilunilcCsQ|dkr|jdƒn(|dkr8|jdƒn tdƒ‚d|_dS(Nu0u1ubad boolean valueiFT(uappenduFalseuTrueu TypeErroru_value(uselfudata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu end_booleanÈs    uUnmarshaller.end_booleanubooleancCs |jt|ƒƒd|_dS(Ni(uappenduintu_value(uselfudata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuend_intÒsuUnmarshaller.end_intui4ui8uintcCs |jt|ƒƒd|_dS(Ni(uappendufloatu_value(uselfudata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu end_doubleÙsuUnmarshaller.end_doubleudoublecCs8|jr|j|jƒ}n|j|ƒd|_dS(Ni(u _encodingudecodeuappendu_value(uselfudata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu end_stringÞs  uUnmarshaller.end_stringustringunamecCs?|jjƒ}|j|d…g|j|d… a object used to boxcar method calls server should be a ServerProxy object. Methods can be added to the MultiCall using normal method call syntax e.g.: multicall = MultiCall(server_proxy) multicall.add(2,3) multicall.get_address("Guido") To execute the multicall, call the MultiCall object e.g.: add_result, address = multicall() cCs||_g|_dS(N(u_MultiCall__serveru_MultiCall__call_list(uselfuserver((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__Ns uMultiCall.__init__cCsdt|ƒS(Nu(uid(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__repr__RsuMultiCall.__repr__cCst|j|ƒS(N(u_MultiCallMethodu_MultiCall__call_list(uselfuname((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu __getattr__WsuMultiCall.__getattr__cCsTg}x2|jD]'\}}|ji|d6|d6ƒqWt|jjj|ƒƒS(Nu methodNameuparams(u_MultiCall__call_listuappenduMultiCallIteratoru_MultiCall__serverusystemu multicall(uselfumarshalled_listunameuargs((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__call__ZsuMultiCall.__call__N( u__name__u __module__u __qualname__u__doc__u__init__u__repr__u__str__u __getattr__u__call__(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu MultiCall=s    u MultiCallcCs¬trltrl|r$t}tj}n!|r9t}t}n t}t}tdd||t ƒ}t|ƒ}n6t d|d|ƒ}tr–t|ƒ}n t |ƒ}||fS(u¥getparser() -> parser, unmarshaller Create an instance of the fastest available parser, and attach it to an unmarshalling object. Return both objects. u use_datetimeuuse_builtin_typesTF( u FastParseruFastUnmarshalleru_datetime_typeubase64u decodebytesu_binaryu _datetimeuTrueuFalseuFaultu Unmarshalleru ExpatParser(u use_datetimeuuse_builtin_typesu mkdatetimeumkbytesutargetuparser((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu getparserls     u getparsercCsDt|ttfƒs!tdƒ‚t|tƒr9d}n6|rot|tƒrot|ƒdksotdƒ‚n|s~d}ntr“t|ƒ}nt||ƒ}|j|ƒ}|dkrÐdt|ƒ}nd}|rt|tƒsý|j |ƒ}n|d|d|d f}n|r3|d |d f}n|Sd j |ƒS( uÙdata [,options] -> marshalled data Convert an argument tuple or a Fault instance to an XML-RPC request (or response, if the methodresponse option is used). In addition to the data object, the following options can be given as keyword arguments: methodname: the method name for a methodCall packet methodresponse: true to create a methodResponse packet. If this option is used with a tuple, the tuple must be a singleton (i.e. it can contain only one element). encoding: the packet encoding (default is UTF-8) All byte strings in the data structure are assumed to use the packet encoding. Unicode strings are automatically converted, where necessary. u(argument must be tuple or Fault instanceiu"response tuple must be a singletonuutf-8u$ u u u u u u u( u isinstanceutupleuFaultuAssertionErrorulenuFastMarshalleru Marshallerudumpsustruencodeujoin(uparamsu methodnameumethodresponseuencodingu allow_noneumudatau xmlheader((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyudumps“s:! !    udumpscCsHtd|d|ƒ\}}|j|ƒ|jƒ|jƒ|jƒfS(uòdata -> unmarshalled data, method name Convert an XML-RPC packet to unmarshalled data plus a method name (None if not present). If the XML-RPC packet represents a fault condition, this function raises a Fault exception. u use_datetimeuuse_builtin_types(u getparserufeeducloseu getmethodname(udatau use_datetimeuuse_builtin_typesupuu((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuloadsàs   uloadscCsgtst‚ntƒ}tjddd|ddƒ}|j|ƒ|jƒ|jƒ}|jƒ|S(uhdata -> gzip encoded data Encode data using the gzip content encoding as described in RFC 1952 umodeuwbufileobju compressleveli(ugzipuNotImplementedErroruBytesIOuGzipFileuwriteucloseugetvalue(udataufugzfuencoded((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu gzip_encodeös      u gzip_encodei@c CsËtst‚nt|ƒ}tjddd|ƒ}y2|dkrQ|jƒ}n|j|dƒ}Wntk r…tdƒ‚YnX|jƒ|jƒ|dkrÇt|ƒ|krÇtdƒ‚n|S(urgzip encoded data -> unencoded data Decode data using the gzip content encoding as described in RFC 1952 umodeurbufileobjiiu invalid datau#max gzipped payload length exceeded( ugzipuNotImplementedErroruBytesIOuGzipFileureaduIOErroru ValueErrorucloseulen(udatau max_decodeufugzfudecoded((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu gzip_decodes      u gzip_decodecBs2|EeZdZdZdd„Zdd„ZdS(uGzipDecodedResponseuha file-like object to decode a response encoded with the gzip method, as described in RFC 1952. cCsGtst‚nt|jƒƒ|_tjj|ddd|jƒdS(Numodeurbufileobj(ugzipuNotImplementedErroruBytesIOureaduiouGzipFileu__init__(uselfuresponse((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__2s uGzipDecodedResponse.__init__cCs!tjj|ƒ|jjƒdS(N(ugzipuGzipFileucloseuio(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuclose:suGzipDecodedResponse.closeN(u__name__u __module__u __qualname__u__doc__u__init__uclose(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuGzipDecodedResponse.s uGzipDecodedResponsecBs8|EeZdZdd„Zdd„Zdd„ZdS(u_MethodcCs||_||_dS(N(u _Method__sendu _Method__name(uselfusenduname((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__Es u_Method.__init__cCst|jd|j|fƒS(Nu%s.%s(u_Methodu _Method__sendu _Method__name(uselfuname((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu __getattr__Hsu_Method.__getattr__cGs|j|j|ƒS(N(u _Method__sendu _Method__name(uselfuargs((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__call__Jsu_Method.__call__N(u__name__u __module__u __qualname__u__init__u __getattr__u__call__(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu_MethodBs  u_MethodcBsÀ|EeZdZdZdeZdZdZ dddd„Z ddd„Z ddd„Z d d „Zd d „Zd d„Zdd„Zdd„Zdd„Zdd„Zdd„ZdS(u Transportu1Handles an HTTP transaction to an XML-RPC server.uPython-xmlrpc/%scCs(||_||_d|_g|_dS(N(NN(u _use_datetimeu_use_builtin_typesuNoneu _connectionu_extra_headers(uselfu use_datetimeuuse_builtin_types((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__as   uTransport.__init__cCsªx£dD]›}y|j||||ƒSWqtjk r~}z2|sf|jtjtjtjfkrl‚nWYdd}~Xqtjj k r¡|r‚nYqXqWdS(Nii(ii( usingle_requestusocketuerroruerrnou ECONNRESETu ECONNABORTEDuEPIPEuhttpuclientu BadStatusLine(uselfuhostuhandleru request_bodyuverboseuiue((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyurequestqs 'uTransport.requestcCsÑyM|j||||ƒ}|jƒ}|jdkrL||_|j|ƒSWn3tk rd‚Yntk r‚|jƒ‚YnX|jddƒr¢|j ƒnt |||j|j t |j ƒƒƒ‚dS(NiÈucontent-lengthu(u send_requestu getresponseustatusuverboseuparse_responseuFaultu Exceptionucloseu getheaderureadu ProtocolErrorureasonudictu getheaders(uselfuhostuhandleru request_bodyuverboseu http_connuresp((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyusingle_request}s"       uTransport.single_requestcCstd|jd|jƒS(Nu use_datetimeuuse_builtin_types(u getparseru _use_datetimeu_use_builtin_types(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu getparseržsuTransport.getparsercCsªi}t|tƒr$|\}}ntjj|ƒ\}}|r—tjj|ƒ}tj|ƒjdƒ}dj |j ƒƒ}dd|fg}ng}|||fS(Nuutf-8uu AuthorizationuBasic ( u isinstanceutupleuurllibuparseu splituseruunquote_to_bytesubase64u encodebytesudecodeujoinusplit(uselfuhostux509uauthu extra_headers((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu get_host_info­suTransport.get_host_infocCsh|jr'||jdkr'|jdS|j|ƒ\}|_}|tjj|ƒf|_|jdS(Nii(u _connectionu get_host_infou_extra_headersuhttpuclientuHTTPConnection(uselfuhostuchostux509((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyumake_connectionÇs  uTransport.make_connectioncCs.|jdr*|jdjƒd|_ndS(Ni(NN(u _connectionucloseuNone(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyucloseÕs uTransport.closecCsÄ|j|ƒ}|jdd…}|r8|jdƒn|jrmtrm|jd|dd ƒ|jd ƒn|jd|ƒ|jd ƒ|jd|jfƒ|j ||ƒ|j ||ƒ|S( NiuPOSTuskip_accept_encodinguAccept-Encodingugzipu Content-Typeutext/xmlu User-AgentT(uAccept-Encodingugzip(u Content-Typeutext/xml( umake_connectionu_extra_headersuset_debugleveluaccept_gzip_encodingugzipu putrequestuTrueuappendu user_agentu send_headersu send_content(uselfuhostuhandleru request_bodyudebugu connectionuheaders((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu send_requestãs uTransport.send_requestcCs+x$|D]\}}|j||ƒqWdS(N(u putheader(uselfu connectionuheadersukeyuval((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu send_headersúsuTransport.send_headerscCsv|jdk rI|jt|ƒkrItrI|jddƒt|ƒ}n|jdtt|ƒƒƒ|j|ƒdS(NuContent-EncodingugzipuContent-Length(uencode_thresholduNoneulenugzipu putheaderu gzip_encodeustru endheaders(uselfu connectionu request_body((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu send_contentsuTransport.send_contentcCsÏt|dƒr?|jddƒdkr6t|ƒ}qE|}n|}|jƒ\}}xH|jdƒ}|ssPn|jr’tdt|ƒƒn|j|ƒqZ||k r»|j ƒn|j ƒ|j ƒS(Nu getheaderuContent-Encodinguugzipiubody:( uhasattru getheaderuGzipDecodedResponseu getparserureaduverboseuprintureprufeeduclose(uselfuresponseustreamupuuudata((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyuparse_responses"     uTransport.parse_responseNTF(u__name__u __module__u __qualname__u__doc__u __version__u user_agentuTrueuaccept_gzip_encodinguNoneuencode_thresholduFalseu__init__urequestusingle_requestu getparseru get_host_infoumake_connectionucloseu send_requestu send_headersu send_contentuparse_response(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu TransportSs  !      u TransportcBs&|EeZdZdZdd„ZdS(u SafeTransportu2Handles an HTTPS transaction to an XML-RPC server.cCs•|jr'||jdkr'|jdSttjdƒsHtdƒ‚n|j|ƒ\}|_}|tjj|d|p~if|_|jdS(NiiuHTTPSConnectionu1your version of http.client doesn't support HTTPS( u _connectionuhasattruhttpuclientuNotImplementedErroru get_host_infou_extra_headersuHTTPSConnectionuNone(uselfuhostuchostux509((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyumake_connection9s  uSafeTransport.make_connectionN(u__name__u __module__u __qualname__u__doc__umake_connection(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu SafeTransport4su SafeTransportcBsz|EeZdZdZdddddddd„Zdd„Zdd„Zdd „Z e Z d d „Z d d „Z dS(u ServerProxyu…uri [,options] -> a logical connection to an XML-RPC server uri is the connection point on the server, given as scheme://host/target. The standard implementation always supports the "http" scheme. If SSL socket support is available (Python 2.0), it also supports "https". If the target part and the slash preceding it are both omitted, "/RPC2" is assumed. The following options can be given as keyword arguments: transport: a transport factory encoding: the request encoding (default is UTF-8) All 8-bit strings passed to the server proxy are assumed to use the given encoding. c CsÓtjj|ƒ\}}|dkr3tdƒ‚ntjj|ƒ\|_|_|jsfd|_n|dkr¥|dkr‡t} nt } | d|d|ƒ}n||_ |p·d|_ ||_ ||_ dS( Nuhttpuhttpsuunsupported XML-RPC protocolu/RPC2u use_datetimeuuse_builtin_typesuutf-8(uhttpuhttps(uurllibuparseu splittypeuIOErroru splithostu_ServerProxy__hostu_ServerProxy__handleruNoneu SafeTransportu Transportu_ServerProxy__transportu_ServerProxy__encodingu_ServerProxy__verboseu_ServerProxy__allow_none( uselfuuriu transportuencodinguverboseu allow_noneu use_datetimeuuse_builtin_typesutypeuhandler((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__init__ns           uServerProxy.__init__cCs|jjƒdS(N(u_ServerProxy__transportuclose(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__close‡suServerProxy.__closecCswt||d|jd|jƒj|jƒ}|jj|j|j|d|jƒ}t |ƒdkrs|d}n|S(Nuencodingu allow_noneuverboseii( udumpsu_ServerProxy__encodingu_ServerProxy__allow_noneuencodeu_ServerProxy__transporturequestu_ServerProxy__hostu_ServerProxy__handleru_ServerProxy__verboseulen(uselfu methodnameuparamsurequesturesponse((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu __requestŠs   uServerProxy.__requestcCsd|j|jfS(Nu(u_ServerProxy__hostu_ServerProxy__handler(uself((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__repr__œsuServerProxy.__repr__cCst|j|ƒS(N(u_Methodu_ServerProxy__request(uselfuname((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu __getattr__¤suServerProxy.__getattr__cCs=|dkr|jS|dkr&|jStd|fƒ‚dS(u|A workaround to get special attributes on the ServerProxy without interfering with the magic __getattr__ ucloseu transportuAttribute %r not foundN(u_ServerProxy__closeu_ServerProxy__transportuAttributeError(uselfuattr((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu__call__«s   uServerProxy.__call__NF( u__name__u __module__u __qualname__u__doc__uNoneuFalseu__init__u_ServerProxy__closeu_ServerProxy__requestu__repr__u__str__u __getattr__u__call__(u __locals__((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyu ServerProxyXs     u ServerProxyu__main__uhttp://localhost:8000uERRORi liÿÿÿli€iD€ÿÿi¨€ÿÿi ÿÿipÿÿiÔÿÿiD€ÿÿiC€ÿÿiB€ÿÿi¨€ÿÿi§€ÿÿi¦€ÿÿi¥€ÿÿF(Wu__doc__ubase64usysutimeudatetimeu http.clientuhttpu urllib.parseuurllibu xml.parsersuexpatusocketuerrnouiouBytesIOugzipu ImportErroruNoneuescapeuversionu __version__uMAXINTuMININTu PARSE_ERRORu SERVER_ERRORuAPPLICATION_ERRORu SYSTEM_ERRORuTRANSPORT_ERRORuNOT_WELLFORMED_ERRORuUNSUPPORTED_ENCODINGuINVALID_ENCODING_CHARuINVALID_XMLRPCuMETHOD_NOT_FOUNDuINVALID_METHOD_PARAMSuINTERNAL_ERRORu ExceptionuErroru ProtocolErroru ResponseErroruFaultuboolubooleanuBooleanu_day0ustrftimeu_iso8601_formatu _strftimeuDateTimeu _datetimeu_datetime_typeuBinaryu_binaryuWRAPPERSu ExpatParseru Marshalleru Unmarshalleru_MultiCallMethoduMultiCallIteratoru MultiCalluFastMarshalleru FastParseruFastUnmarshalleruFalseu getparserudumpsuloadsu gzip_encodeu gzip_decodeuGzipFileuobjectuGzipDecodedResponseu_Methodu Transportu SafeTransportu ServerProxyuServeru__name__userveruprintu currentTimeugetCurrentTimeuvumultiugetDataupowuadduresponse(((u2/opt/alt/python33/lib64/python3.3/xmlrpc/client.pyus¦              O  (  §¬ '' L %á$_