a
    Lcòf’  ã                   @   s4   d Z ddlZddlZddlmZ G dd„ deƒZdS )zH
Email backend that writes messages to console instead of sending them.
é    N)ÚBaseEmailBackendc                       s,   e Zd Z‡ fdd„Zdd„ Zdd„ Z‡  ZS )ÚEmailBackendc                    s0   |  dtj¡| _t ¡ | _tƒ j|i |¤Ž d S )NÚstream)	ÚpopÚsysÚstdoutr   Ú	threadingÚRLockÚ_lockÚsuperÚ__init__)ÚselfÚargsÚkwargs©Ú	__class__© ú^/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/django/core/mail/backends/console.pyr      s    
zEmailBackend.__init__c                 C   s^   |  ¡ }| ¡ }| ¡ r$| ¡  ¡ nd}| |¡}| j d| ¡ | j d¡ | j d¡ d S )Nzutf-8z%s
zO-------------------------------------------------------------------------------Ú
)ÚmessageÚas_bytesÚget_charsetÚget_output_charsetÚdecoder   Úwrite)r   r   ÚmsgZmsg_dataÚcharsetr   r   r   Úwrite_message   s    ÿ
zEmailBackend.write_messagec              	   C   s�   |sdS d}| j �j z>|  ¡ }|D ] }|  |¡ | j ¡  |d7 }q"|rP|  ¡  W n tyl   | jsh‚ Y n0 W d  ƒ n1 s‚0    Y  |S )z6Write all messages to the stream in a thread-safe way.Nr   é   )r
   Úopenr   r   ÚflushÚcloseÚ	ExceptionZfail_silently)r   Zemail_messagesZ	msg_countZstream_createdr   r   r   r   Úsend_messages   s     


&zEmailBackend.send_messages)Ú__name__Ú
__module__Ú__qualname__r   r   r#   Ú__classcell__r   r   r   r   r   
   s   r   )Ú__doc__r   r   Zdjango.core.mail.backends.baser   r   r   r   r   r   Ú<module>   s   