U
    !h%
  ć                   @   s@   d dl mZmZmZ d dlZd dlZd dlZG dd deZdS )é    )Śabsolute_importŚdivisionŚprint_functionNc                   @   sF   e Zd ZdddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dS )ŚMultipartDataGeneratoré  c                 C   s$   t  ” | _d| _|  ” | _|| _d S )Nz
)ŚioŚBytesIOŚdataŚ
line_breakŚ_initialize_boundaryŚboundaryŚ
chunk_size)Śselfr   © r   śb/home/ankuromar296_gmail_com/.local/lib/python3.8/site-packages/telnyx/multipart_data_generator.pyŚ__init__
   s    

zMultipartDataGenerator.__init__c                 C   s  t  |”D ]\}}|d krq
|  |  ” ” |  | j” t|drĘd}t|drZt|j}|  d” |  |” |  d” |  |” |  d” |  | j” |  d” |  | j” |  | j” |  |” n@|  d” |  |” |  d” |  | j” |  | j” |  |” |  | j” q
d S )NŚreadZblobŚnamez&Content-Disposition: form-data; name="z"; filename="ś"z&Content-Type: application/octet-stream)	ŚsixŚ	iteritemsŚ_writeŚparam_headerr
   ŚhasattrŚstrr   Ś_write_file)r   ŚparamsŚkeyŚvalueŚfilenamer   r   r   Ś
add_params   s4    












z!MultipartDataGenerator.add_paramsc                 C   s
   d| j  S )Nz--%s)r   ©r   r   r   r   r   4   s    z#MultipartDataGenerator.param_headerc                 C   s(   |   d| jf ” |   | j” | j ” S )Nz--%s--)r   r   r
   r	   Śgetvaluer!   r   r   r   Śget_post_data7   s    z$MultipartDataGenerator.get_post_datac                 C   sT   t |tjrt|}n.t |tjr0t|dd}ntdjt|d| j 	|” d S )Nzutf-8)Śencodingzunexpected type: {value_type})Z
value_type)
Ś
isinstancer   Śbinary_typeŚ	bytearrayŚ	text_typeŚ	TypeErrorŚformatŚtyper	   Śwrite)r   r   Śarrayr   r   r   r   <   s    
’zMultipartDataGenerator._writec                 C   s"   |  | j”}|sq|  |” q d S )N)r   r   r   )r   ŚfŚfile_contentsr   r   r   r   H   s    z"MultipartDataGenerator._write_filec                 C   s   t  dd”S )Nr   l            )ŚrandomŚrandintr!   r   r   r   r   O   s    z+MultipartDataGenerator._initialize_boundaryN)r   )
Ś__name__Ś
__module__Ś__qualname__r   r    r   r#   r   r   r   r   r   r   r   r   	   s   
$r   )	Ś
__future__r   r   r   r   r0   r   Śobjectr   r   r   r   r   Ś<module>   s   