3 Õì2aN ã @ sÈ d ddgZ ddlZddlZddlZddlZddlmZ ddlmZm Z ddl mZ dZd Z ejd ƒZejdejƒZG dd „ d ƒZG d d„ deƒZdZG dd„ deƒZeeejd ƒƒZde ZejZdS )Ú GeneratorÚDecodedGeneratorÚBytesGeneratoré N)Údeepcopy)ÚStringIOÚBytesIO)Ú_has_surrogatesÚ_Ú z \r\n|\r|\nz^From c @ s¬ e Zd Zd&ddœdd„Zdd„ Zd'dd „Zd d„ Zdd „ Zdd„ Zdd„ Z dd„ Z dd„ Zdd„ Zdd„ Z e Zdd„ Zdd„ Zdd„ Zd d!„ Zed(d"d#„ƒZed$d%„ ƒZdS ))r N)Úpolicyc C s6 |d kr|d krdn|j }|| _|| _|| _|| _d S )NT)Úmangle_from_Ú_fpÚ _mangle_from_Úmaxheaderlenr )ÚselfÚoutfpr r r © r ú./opt/alt/python36/lib64/python3.6/generator.pyÚ__init__$ s zGenerator.__init__c C s | j j|ƒ d S )N)r Úwrite)r Úsr r r r D s zGenerator.writeFc C sØ | j d kr|j n| j }|d k r*|j|d�}| jd k rB|j| jd�}|j| _| j| jƒ| _d| _| j| jƒ| _| j }|j }zL|| _ ||_ |r¸|j ƒ }|s¨dt jt j ƒ ƒ }| j|| j ƒ | j |ƒ W d || _ ||_ X d S )N)Úlinesep)Úmax_line_lengthÚ zFrom nobody )r Úcloner r Ú_NLÚ_encodeÚ_encoded_NLZ_EMPTYÚ_encoded_EMPTYZget_unixfromÚtimeZctimer Ú_write)r ÚmsgÚunixfromr r Zold_gen_policyZold_msg_policyZufromr r r ÚflattenH s, zGenerator.flattenc C s | j || jd | jd�S )N)r )Ú __class__r r )r Úfpr r r r y s zGenerator.clonec C s t ƒ S )N)r )r r r r Ú_new_buffer� s zGenerator._new_bufferc C s |S )Nr )r r r r r r ‘ s zGenerator._encodec C sX |sd S t j|ƒ}x*|d d… D ]}| j|ƒ | j| jƒ q W |d rT| j|d ƒ d S )Né éÿÿÿÿr( r( )ÚNLCREÚsplitr r )r ÚlinesÚliner r r Ú_write_lines• s zGenerator._write_linesc C s¤ | j }z"d | _| jƒ | _ }| j|ƒ W d || _ | j}| `X |rht|ƒ}|jd|d ƒ |jd|d ƒ t|dd ƒ}|d krˆ| j|ƒ n|| ƒ | j j|j ƒ ƒ d S )Nzcontent-transfer-encodingr zcontent-typer' Ú_write_headers) r Ú _munge_cter&