o Qa@s\ddlmZddlmZmZddlZddlZddlZddl m Z ej dkr*dZ e ZndZ dd lmZzdd lmZWneyKGd d d eZYnwzdd lmZWneycddlmZYnwGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZ GdddeZ!GdddeZ"Gdd d eZ#dS)!)absolute_import)debugerrorN) ExitCodes)rTF)SSLError)CertificateErrorc@ eZdZdS)S3SSLCertificateErrorN__name__ __module__ __qualname__rr//usr/lib/python3/dist-packages/S3/Exceptions.pyr r ) ParseError) ExpatErrorc@s@eZdZd ddZddZddZdd Zd d ZeeeZ d S) S3ExceptioncCstj||_dSN)S3Utils unicodisemessageselfrrrr__init__-szS3Exception.__init__cCstr|Stj|Sr)PY3 __unicode__rr deunicodiserrrr__str__0szS3Exception.__str__cC|jSr)rr"rrrr 8zS3Exception.__unicode__cCr$r_messager"rrr _get_message<r%zS3Exception._get_messagecCs ||_dSrr&rrrr _set_message?s zS3Exception._set_messageN)r) r rrrr#r r(r)propertyrrrrrr,s rc@s0eZdZddZddZddZeddZd S) S3Errorc Cs|d|_|d|_dddd|_td|j|jfd|vr2|dD]}td||d|fq#d|vrz|drzz tj|d}Wn tyQtd Yn)wz |j| |Wnt yy}zt d ||dfWYd}~nd}~ww|jd |_ |jd |_ |jd |_dS)Nstatusreasonr)CodeMessageResourcezS3Error: %s (%s)headerszHttpHeader: %s: %sdatazNot an XML responsez$Error parsing xml: %s. ErrorXML: %sr.r/r0)r,r-inforr BaseUtilsgetTreeFromXml XmlParseErrorupdateparse_error_xml Exceptionrcoderresource)rresponseheadertreeerrrrEs2        zS3Error.__init__cCsLd|j}|dd|jvr|jdp|j7}|jd}|r$|d|7}|S)Nz%d z(%s)r.r/z: %s)r,r3r-get)rretval error_msgrrrr `s "  zS3Error.__unicode__cCs|jdvrtjS|jdvrtjS|jdkrtjS|jdkr tjS|jdkr(tjS|jdkr0tjS|jdkr8tjS|jdvr@tj StjS) N)i-i3)iiiiiiiiiiii)ii) r,rEX_SERVERMOVEDEX_SERVERERROREX_ACCESSDENIED EX_NOTFOUND EX_CONFLICTEX_PRECONDITION EX_SOFTWARE EX_SERVICEr"rrrget_error_codehs"        zS3Error.get_error_codecCsli}|}|jdks|d}|dur2|D]}|jdkr/td|jdt|j|j||j<q|Std)NErrorz.//Errorrz ErrorXML: z: z0Malformed error XML returned from remote server.)tagfindtextrreprS3ResponseError)r>r3 error_nodechildrrrr8|s    zS3Error.parse_error_xmlN)r rrrr rK staticmethodr8rrrrr+Ds r+c@r )CloudFrontErrorNr rrrrrUrrUc@r ) S3UploadErrorNr rrrrrVrrVc@r )S3DownloadErrorNr rrrrrWrrWc@r )S3RequestErrorNr rrrrrXrrXc@r )rQNr rrrrrQrrQc@r )InvalidFileErrorNr rrrrrYrrYc@r )ParameterErrorNr rrrrrZrrZ)$ __future__rloggingrrsys S3.BaseUtilsrS3.Utilsrr version_inforstrunicodesslr S3SSLErrorr r ImportErrorr9xml.etree.ElementTreerr6xml.parsers.expatrrr+rUrVrWrXrQrYrZrrrrs<      H