B
    è?F[•  ã               @   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	   ú2lib/python3.7/site-packages/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 )Nr	   )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 )N)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 )Nr	   )r   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CodeZMessage)r   r   r   r   r   )r   r   r   r   r	   r	   r
   r   a   s    zError.endElement)NNNN)r   r   r   r   r   r   r   r   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 )N)Ú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 )N)r   )r   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.saxZxmlÚobjectr   r   r   r	   r	   r	   r
   Ú<module>   s   +)