U
    W¨+d•  ã                   @   sH   d dl mZ d dlZG dd„ deƒZG dd„ deƒZG dd„ deƒZdS )	é    )ÚhandlerNc                   @   s2   e Zd ZdZddd„Zdd„ Zdd	„ Zd
d„ ZdS )ÚDeleteda†  
    A successfully deleted object in a multi-object delete request.

    :ivar key: Key name of the object that was deleted.
    
    :ivar version_id: Version id of the object that was deleted.
    
    :ivar delete_marker: If True, indicates the object deleted
        was a DeleteMarker.
        
    :ivar delete_marker_version_id: Version ID of the delete marker
        deleted.
    NFc                 C   s   || _ || _|| _|| _d S ©N)ÚkeyÚ
version_idÚdelete_markerÚdelete_marker_version_id)Úselfr   r   r   r   © r
   ú7/tmp/pip-unpacked-wheel-dlxw5sjy/boto/s3/multidelete.pyÚ__init__'   s    zDeleted.__init__c                 C   s$   | j rd| j| j f S d| j S d S )Nz<Deleted: %s.%s>z<Deleted: %s>)r   r   ©r	   r
   r
   r   Ú__repr__.   s    zDeleted.__repr__c                 C   s   d S r   r
   ©r	   ÚnameÚattrsÚ
connectionr
   r
   r   ÚstartElement4   s    zDeleted.startElementc                 C   s\   |dkr|| _ nH|dkr || _n8|dkr<| ¡ dkrXd| _n|dkrL|| _nt| ||ƒ d S )NÚKeyÚ	VersionIdZDeleteMarkerÚtrueTZDeleteMarkerVersionId)r   r   Úlowerr   r   Úsetattr©r	   r   Úvaluer   r
   r
   r   Ú
endElement7   s    zDeleted.endElement)NNFN©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r
   r
   r
   r   r      s       ÿ
r   c                   @   s2   e Zd ZdZddd„Zdd„ Zdd„ Zd	d
„ ZdS )ÚErrora]  
    An unsuccessful deleted object in a multi-object delete request.

    :ivar key: Key name of the object that was not deleted.
    
    :ivar version_id: Version id of the object that was not deleted.
    
    :ivar code: Status code of the failed delete operation.
        
    :ivar message: Status message of the failed delete operation.
    Nc                 C   s   || _ || _|| _|| _d S r   )r   r   ÚcodeÚmessage)r	   r   r   r"   r#   r
   r
   r   r   P   s    zError.__init__c                 C   s.   | j rd| j| j | jf S d| j| jf S d S )Nz<Error: %s.%s(%s)>z<Error: %s(%s)>)r   r   r"   r   r
   r
   r   r   W   s
    
ÿzError.__repr__c                 C   s   d S r   r
   r   r
   r
   r   r   ^   s    zError.startElementc                 C   sP   |dkr|| _ n<|dkr || _n,|dkr0|| _n|dkr@|| _nt| ||ƒ d S )Nr   r   ZCodeÚMessage)r   r   r"   r#   r   r   r
   r
   r   r   a   s    zError.endElement)NNNNr   r
   r
   r
   r   r!   D   s       ÿ
r!   c                   @   s*   e Zd ZdZd	dd„Zdd„ Zdd„ ZdS )
ÚMultiDeleteResultaL  
    The status returned from a MultiObject Delete request.

    :ivar deleted: A list of successfully deleted objects.  Note that if
        the quiet flag was specified in the request, this list will
        be empty because only error responses would be returned.

    :ivar errors: A list of unsuccessfully deleted objects.
    Nc                 C   s   d | _ g | _g | _d S r   )ÚbucketÚdeletedÚerrors)r	   r&   r
   r
   r   r   x   s    zMultiDeleteResult.__init__c                 C   s@   |dkrt ƒ }| j |¡ |S |dkr<tƒ }| j |¡ |S d S )Nr   r!   )r   r'   Úappendr!   r(   )r	   r   r   r   ÚdÚer
   r
   r   r   }   s    zMultiDeleteResult.startElementc                 C   s   t | ||ƒ d S r   )r   r   r
   r
   r   r   ˆ   s    zMultiDeleteResult.endElement)N)r   r   r   r    r   r   r   r
   r
   r
   r   r%   m   s   

r%   )Zbotor   Zxml.saxÚxmlÚobjectr   r!   r%   r
   r
   r
   r   Ú<module>   s   +)