o
    i
                     @   s0   d dl Z d dlZd dlmZ G dd deZdS )    N)_api_encodec                   @   sp   e Zd ZU ejed< eed< eed< eed< ddef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  c                 C   s$   t  | _d| _|  | _|| _d S )Nz
)ioBytesIOr   r   _initialize_boundaryr   r   )selfr    r   /var/www/snowflake_co_dev_github/snow_flake_back_end_deploy/env/lib/python3.10/site-packages/stripe/_multipart_data_generator.py__init__   s   


zMultipartDataGenerator.__init__c                 C   s&  t t|d}| D ]\}}|d u rq| |   | | j t|drhd}t|dr2t|j}| d | | | d | | | d | | j | d | | j | | j | 	| n"| d | | | d | | j | | j | t| | | j qd S )	NV1readblobnamez&Content-Disposition: form-data; name="z"; filename=""z&Content-Type: application/octet-stream)
dictr   items_writeparam_headerr   hasattrstrr   _write_file)r   paramskeyvaluefilenamer   r   r   
add_params   s8   











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})
value_type)	
isinstancebytes	bytearrayr   	TypeErrorformattyper   write)r   r   arrayr   r   r   r   C   s   


zMultipartDataGenerator._writec                 C   s"   	 | | j}|sd S | | q)N)r   r   r   )r   ffile_contentsr   r   r   r   O   s   
z"MultipartDataGenerator._write_filec                 C   s   t ddS )Nr   l            )randomrandintr!   r   r   r   r   V   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   )r0   r	   stripe._encoder   objectr   r   r   r   r   <module>   s    