a
    ù!fµ
  ã                   @   s,   d dl Z d dlZd dlZG dd„ deƒZdS )é    Nc                   @   sp   e Zd ZU ejed< eed< eed< eed< de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ÚdataÚ
line_breakÚboundaryÚ
chunk_sizeé  )r   c                 C   s$   t  ¡ | _d| _|  ¡ | _|| _d S )Nz
)ÚioÚBytesIOr   r   Ú_initialize_boundaryr   r   )Úselfr   © r   ú`/var/www/html/python-backend/venv/lib/python3.9/site-packages/stripe/multipart_data_generator.pyÚ__init__   s    

zMultipartDataGenerator.__init__c                 C   s*  t tj |¡ƒ}| ¡ D ]
\}}|d u r,q|  |  ¡ ¡ |  | j¡ t|dƒrÔd}t|dƒrht	|j
ƒ}|  d¡ |  |¡ |  d¡ |  |¡ |  d¡ |  | j¡ |  d¡ |  | j¡ |  | j¡ |  |¡ nD|  d¡ |  |¡ |  d¡ |  | j¡ |  | j¡ |  t	|ƒ¡ |  | j¡ qd S )NÚreadZblobÚnamez&Content-Disposition: form-data; name="z"; filename="ú"z&Content-Type: application/octet-stream)ÚdictÚstripeZapi_requestorZ_api_encodeÚitemsÚ_writeÚparam_headerr   ÚhasattrÚstrr   Ú_write_file)r   ÚparamsÚkeyÚvalueÚfilenamer   r   r   Ú
add_params   s:    
ÿ











z!MultipartDataGenerator.add_paramsc                 C   s
   d| j  S )Nz--%s)r   ©r   r   r   r   r   =   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_data@   s    z$MultipartDataGenerator.get_post_datac                 C   sP   t |tƒrt|ƒ}n,t |tƒr,t|dd}ntdjt|ƒdƒ‚| j |¡ d S )Nzutf-8)Úencodingzunexpected type: {value_type})Z
value_type)	Ú
isinstanceÚbytesÚ	bytearrayr   Ú	TypeErrorÚformatÚtyper   Úwrite)r   r   Úarrayr   r   r   r   E   s    


ÿzMultipartDataGenerator._writec                 C   s"   |  | j¡}|sq|  |¡ q d S )N)r   r   r   )r   ÚfÚfile_contentsr   r   r   r   Q   s    z"MultipartDataGenerator._write_filec                 C   s   t  dd¡S )Nr   l            )ÚrandomÚrandintr   r   r   r   r
   X   s    z+MultipartDataGenerator._initialize_boundaryN)r   )Ú__name__Ú
__module__Ú__qualname__r   r	   Ú__annotations__r   Úintr   r   r   r!   r   r   r
   r   r   r   r   r      s   

*r   )r-   r   r   Úobjectr   r   r   r   r   Ú<module>   s   