o
    i$                     @   s  d Z ddlZddlZddlm  mZ ddlmZ ddlm	Z	 ddl
T i ZdZdZd	Zd
ZdZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG d d! d!eZG d"d# d#eZG d$d% d%eZG d&d' d'eZG d(d) d)eZ G d*d+ d+eZ!G d,d- d-eZ"G d.d/ d/eZ#G d0d1 d1eZ$G d2d3 d3eZ%G d4d5 d5eZ&G d6d7 d7eZ'G d8d9 d9eZ(G d:d; d;eZ)G d<d= d=eZ*G d>d? d?eZ+G d@dA dAeZ,G dBdC dCeZ-G dDdE dEeZ.G dFdG dGe.Z/G dHdI dIe.Z0G dJdK dKe.Z1G dLdM dMe.Z2G dNdO dOe.Z3G dPdQ dQeZ4G dRdS dSeZ5G dTdU dUeZ6G dVdW dWeZ7G dXdY dYeZ8G dZd[ d[eZ9G d\d] d]eZ:G d^d_ d_eZ;G d`da daeZ<G dbdc dceZ=G ddde deeZ>G dfdg dgeZ?G dhdi dieZ@G djdk dkeZAdldm ZBdndo ZCeCeD ]ZDeEeDdpdZFeEeDdqdZGeFdureGdureDeeFeGf< qeHedrrejIejJfZKnejJZKdsdt ZLdudv ZMdS )wu.   
oss2.exceptions
~~~~~~~~~~~~~~

异常类。
    N)expat   )	to_string)*c                   @   s$   e Zd Zdd Zdd Zdd ZdS )OssErrorc                 C   sZ   || _ |td| _|| _|| _| jdd| _| jdd| _| jdd| _|| _	d S )N CodeMessageEC)
statusgetOSS_REQUEST_ID
request_idbodydetailscodemessageecheadersselfr   r   r   r    r   C/home/ubuntu/.local/lib/python3.10/site-packages/oss2/exceptions.py__init__   s   
zOssError.__init__c                 C      d| j t| jd| ji}t|S Nr   r   )r   r   r   r   strr   errorr   r   r   __str__7   
   zOssError.__str__c                 C   r   r    )r   r   r   r   r!   r"   r   r   r   _str_with_body=   r%   zOssError._str_with_bodyN)__name__
__module____qualname__r   r$   r&   r   r   r   r   r      s    r   c                   @      e Zd Zdd Zdd ZdS )ClientErrorc                 C   s   t | ti d| i  d S )NzClientError: )r   r   OSS_CLIENT_ERROR_STATUSr   r   r   r   r   r   E   s   zClientError.__init__c                 C      |   S Nr&   r   r   r   r   r$   H      zClientError.__str__Nr'   r(   r)   r   r$   r   r   r   r   r+   D       r+   c                   @   r*   )RequestErrorc                 C   s$   t | ti dt| i  || _d S )NzRequestError: )r   r   OSS_REQUEST_ERROR_STATUSr!   	exception)r   er   r   r   r   M   s   
zRequestError.__init__c                 C   r.   r/   r0   r1   r   r   r   r$   Q   r2   zRequestError.__str__Nr3   r   r   r   r   r5   L   s    r5   c                   @   s   e Zd ZdddZdd ZdS )InconsistentErrorr   c                 C   s   t | tt|id| i  d S )NzInconsistentError: )r   r   OSS_INCONSISTENT_ERROR_STATUSr   r   r   r   r   r   r   r   V      zInconsistentError.__init__c                 C   r.   r/   r0   r1   r   r   r   r$   Y   r2   zInconsistentError.__str__N)r   r3   r   r   r   r   r9   U   s    
r9   c                   @   r*   )OpenApiFormatErrorc                 C   s   t | ti |i  d S r/   )r   r   OSS_FORMAT_ERROR_STATUSr-   r   r   r   r   ^   s   zOpenApiFormatError.__init__c                 C   r.   r/   r0   r1   r   r   r   r$   a   r2   zOpenApiFormatError.__str__Nr3   r   r   r   r   r=   ]   r4   r=   c                   @   s   e Zd Zdd ZdS )OpenApiServerErrorc              	   C   s    t | |t|id||d d S )Nr   )r   r   )r   r   r   )r   r   r   r   
error_coder   r   r   r   f   s    zOpenApiServerError.__init__N)r'   r(   r)   r   r   r   r   r   r?   e   s    r?   c                   @   s   e Zd ZdS )ServerErrorN)r'   r(   r)   r   r   r   r   rA   j   s    rA   c                   @      e Zd ZdZdZdS )NotFound  r   Nr'   r(   r)   r   r   r   r   r   r   rC   n       rC   c                   @   rB   )MalformedXml  MalformedXMLNrE   r   r   r   r   rG   s   rF   rG   c                   @      e Zd ZdZd ZdS )InvalidRequestrH   NrE   r   r   r   r   rK   x   rF   rK   c                   @   rJ   )OperationNotSupportedrH   NrE   r   r   r   r   rL   }   rF   rL   c                   @   rJ   )RestoreAlreadyInProgress  NrE   r   r   r   r   rM      rF   rM   c                       $   e Zd ZdZd Z fddZ  ZS )InvalidArgumentrH   c                    s2   t t| |||| |d| _|d| _d S )NArgumentNameArgumentValue)superrP   r   r   namevaluer   	__class__r   r   r      s   zInvalidArgument.__init__r'   r(   r)   r   r   r   __classcell__r   r   rV   r   rP          rP   c                   @   rJ   )InvalidDigestrH   NrE   r   r   r   r   r[      rF   r[   c                   @   rJ   )InvalidObjectNamerH   NrE   r   r   r   r   r\      rF   r\   c                   @   rJ   )NotImplementedrH   NrE   r   r   r   r   r]      rF   r]   c                   @   rJ   )InvalidEncryptionRequestrH   NrE   r   r   r   r   r^      rF   r^   c                   @   rJ   )BucketReplicationAlreadyExistrH   NrE   r   r   r   r   r_      rF   r_   c                   @   rJ   )NoSuchBucketrD   NrE   r   r   r   r   r`      rF   r`   c                   @   rJ   )	NoSuchKeyrD   NrE   r   r   r   r   ra      rF   ra   c                   @   rJ   )NoSuchUploadrD   NrE   r   r   r   r   rb      rF   rb   c                   @   rB   )NoSuchWebsiterD   NoSuchWebsiteConfigurationNrE   r   r   r   r   rc      rF   rc   c                   @   rJ   )NoSuchLifecyclerD   NrE   r   r   r   r   re      rF   re   c                   @   rB   )
NoSuchCorsrD   NoSuchCORSConfigurationNrE   r   r   r   r   rf      rF   rf   c                   @   rJ   )NoSuchLiveChannelrD   NrE   r   r   r   r   rh      rF   rh   c                   @   rJ   )NoSuchBucketPolicyrD   NrE   r   r   r   r   ri      rF   ri   c                   @   rJ   )NoSuchInventoryrD   NrE   r   r   r   r   rj      rF   rj   c                   @   rJ   )NoSuchReplicationRulerD   NrE   r   r   r   r   rk      rF   rk   c                   @   rB   )ConflictrN   r   NrE   r   r   r   r   rl      rF   rl   c                   @   rJ   )BucketNotEmptyrN   NrE   r   r   r   r   rm      rF   rm   c                       rO   )PositionNotEqualToLengthrN   c                    s(   t t| |||| t|t | _d S r/   )rS   rn   r   intOSS_NEXT_APPEND_POSITIONnext_positionr   rV   r   r   r      s   z!PositionNotEqualToLength.__init__rX   r   r   rV   r   rn      rZ   rn   c                   @   rJ   )ObjectNotAppendablerN   NrE   r   r   r   r   rr      rF   rr   c                   @   rJ   )ChannelStillLiverN   NrE   r   r   r   r   rs      rF   rs   c                   @   rJ   )LiveChannelDisabledrN   NrE   r   r   r   r   rt      rF   rt   c                   @   rJ   )PreconditionFailedi  NrE   r   r   r   r   ru      rF   ru   c                   @   rB   )NotModifiedi0  r   NrE   r   r   r   r   rv      rF   rv   c                   @   rJ   )AccessDenied  NrE   r   r   r   r   rw     rF   rw   c                   @   rJ   )NoSuchServerSideEncryptionRulerD   NrE   r   r   r   r   ry     rF   ry   c                   @   rJ   )InvalidEncryptionAlgorithmErrorrH   NrE   r   r   r   r   rz     rF   rz   c                   @   s    e Zd Zd Zdd Zdd ZdS )SelectOperationFailedc                 C   s   || _ || _|| _d S r/   )r   r   r   )r   r   r   r   r   r   r   r     s   
zSelectOperationFailed.__init__c                 C   s   | j | j| jd}t|S )N)r   r   r   )r   r   r   r!   r"   r   r   r   r$     s
   zSelectOperationFailed.__str__N)r'   r(   r)   r   r   r$   r   r   r   r   r{     s    r{   c                   @   r*   )SelectOperationClientErrorc                 C   s   t | td|id| i  d S )Nx-oss-request-idzSelectOperationClientError: )r   r   OSS_SELECT_CLIENT_ERROR_STATUSr;   r   r   r   r     r<   z#SelectOperationClientError.__init__c                 C   s   | j | jd}t|S )N)r}   r   )r   r   r!   r"   r   r   r   r$      s   z"SelectOperationClientError.__str__Nr3   r   r   r   r   r|     r4   r|   c                   @   rJ   )SignatureDoesNotMatchrx   NrE   r   r   r   r   r   %  rF   r   c                   @   rJ   )ObjectAlreadyExistsrH   NrE   r   r   r   r   r   )  rF   r   c                   @   rJ   )PartNotSequentialrH   NrE   r   r   r   r   r   -  rF   r   c                   @   rJ   )NoSuchWORMConfigurationrD   NrE   r   r   r   r   r   1  rF   r   c                   @   rJ   )WORMConfigurationLockedrx   NrE   r   r   r   r   r   5  rF   r   c                   @   rJ   )InvalidWORMConfigurationrH   NrE   r   r   r   r   r   9  rF   r   c                   @   rJ   )'NoSuchTransferAccelerationConfigurationrD   NrE   r   r   r   r   r   =  rF   r   c                 C   s   | j }| j}| d}|s,|dd ur,ztt|d}W n   |}Y t|}nt|}|dd}zt||f }|||||W S  t	yT   t
|||| Y S w )Ni   z	x-oss-errr   r   )r   r   readr   base64	b64decoder   _parse_error_body_OSS_ERROR_TO_EXCEPTIONKeyErrorrA   )respr   r   r   rU   r   r   klassr   r   r   make_exceptionA  s"   

r   c                 c   s.    |   D ]}|V  t|D ]}|V  qqd S r/   )__subclasses___walk_subclasses)r   subsubsubr   r   r   r   V  s   r   r   r   
ParseErrorc                 C   sV   zt | }|jdkri W S i }|D ]}|j||j< q|W S  ty*   t|  Y S w )NError)ElementTree
fromstringtagtextElementTreeParseError_guess_error_details)r   rootr   childr   r   r   r   l  s   

r   c                 C   s`   i }t | } d| vsd| vr|S td| }|r|d|d< td| }|r.|d|d< |S )Nz<Error>z</Error>z<Code>(.*)</Code>r   r   z<Message>(.*)</Message>r   )r   researchgroup)r   r   mr   r   r   r   z  s   r   )N__doc__r   r   xml.etree.ElementTreeetreer   xml.parsersr   compatr   r   r   r,   r6   r:   r>   r~   	Exceptionr   r+   r5   r9   r=   r?   rA   rC   rG   rK   rL   rM   rP   r[   r\   r]   r^   r_   r`   ra   rb   rc   re   rf   rh   ri   rj   rk   rl   rm   rn   rr   rs   rt   ru   rv   rw   ry   rz   r{   r|   r   r   r   r   r   r   r   r   r   r   getattrr   r   hasattrr   
ExpatErrorr   r   r   r   r   r   r   <module>   s   '	
		