U
    3ìdo  ã                   @   s(   d dl Zd dlmZ G dd„ deƒZdS )é    N)ÚGrantc                   @   s>   e Zd Zddd„Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ ZdS )ÚBucketLoggingNc                 C   s&   || _ || _|d krg | _n|| _d S ©N)ÚtargetÚprefixÚgrants)Úselfr   r   r   © r	   ú9/tmp/pip-unpacked-wheel-d7dsrkjd/boto/s3/bucketlogging.pyÚ__init__   s
    zBucketLogging.__init__c                 C   st   | j d krdS g }| jD ]B}|jdkr.|j}n|jdkr@|j}n|j}| d||jf ¡ qd| j | jd 	|¡f S )Nz<BucketLoggingStatus: Disabled>ZCanonicalUserÚGroupz%s = %sz!<BucketLoggingStatus: %s/%s (%s)>z, )
r   r   ÚtypeZdisplay_nameÚuriZemail_addressÚappendZ
permissionr   Újoin)r   r   ÚgÚur	   r	   r
   Ú__repr__#   s    



zBucketLogging.__repr__c                 C   s   | j  |¡ d S r   )r   r   )r   Úgrantr	   r	   r
   Ú	add_grant1   s    zBucketLogging.add_grantc                 C   s(   |dkr | j  tƒ ¡ | j d S d S d S )Nr   éÿÿÿÿ)r   r   r   )r   ÚnameÚattrsÚ
connectionr	   r	   r
   ÚstartElement4   s    
zBucketLogging.startElementc                 C   s0   |dkr|| _ n|dkr || _nt| ||ƒ d S )NZTargetBucketZTargetPrefix)r   r   Úsetattr)r   r   Úvaluer   r	   r	   r
   Ú
endElement;   s
    zBucketLogging.endElementc                 C   sŽ   d}|d7 }| j d k	r‚|d7 }|d| j  7 }| jp4d}|dtjj |¡ 7 }| jrz|d7 }| jD ]}|| ¡ 7 }q`|d7 }|d	7 }|d
7 }|S )Nz&<?xml version="1.0" encoding="UTF-8"?>zD<BucketLoggingStatus xmlns="http://doc.s3.amazonaws.com/2006-03-01">z<LoggingEnabled>z<TargetBucket>%s</TargetBucket>Ú z<TargetPrefix>%s</TargetPrefix>z<TargetGrants>z</TargetGrants>z</LoggingEnabled>z</BucketLoggingStatus>)r   r   ÚxmlÚsaxÚsaxutilsÚescaper   Úto_xml)r   Úsr   r   r	   r	   r
   r#   C   s    


zBucketLogging.to_xml)NNN)	Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r#   r	   r	   r	   r
   r      s   
r   )Úxml.sax.saxutilsr   Zboto.s3.aclr   Úobjectr   r	   r	   r	   r
   Ú<module>   s   