U
    #i5                     @  sZ   d dl mZ d dlmZ ddlmZmZ ddlmZ ddl	m
Z
 dgZG d	d deZd
S )    )annotations)DEFAULT_TIMEOUT   )AsyncClient__version__   )AsyncStorageBucketAPI)AsyncBucketProxyAsyncStorageClientc                      s   e Zd ZdZedfdddddd fd	d
ZdddddddddZd dddZddddZddddZ	dddddZ
  ZS )r
   z!Manage storage buckets and files.Tstrzdict[str, str]intboolNone)urlheaderstimeoutverifyreturnc                   s6   ddt  i|}| ||||| _t | j d S )Nz
User-Agentzsupabase-py/storage3 v)r   _create_sessionsessionsuper__init__)selfr   r   r   r   	__class__ :/tmp/pip-unpacked-wheel-7lsqp372/storage3/_async/client.pyr      s     zAsyncStorageClient.__init__r   )base_urlr   r   r   r   c                 C  s   t |||t|dddS )NT)r   r   r   r   Zfollow_redirectsZhttp2)r   r   )r   r   r   r   r   r   r   r   r      s    z"AsyncStorageClient._create_session)r   c                   s   | S Nr   r   r   r   r   
__aenter__+   s    zAsyncStorageClient.__aenter__c                   s   |   I d H  d S r   )aclose)r   exc_typeexctbr   r   r   	__aexit__.   s    zAsyncStorageClient.__aexit__c                   s   | j  I d H  d S r   )r   r!   r   r   r   r   r!   1   s    zAsyncStorageClient.acloser	   )idr   c                 C  s   t || jS )zRun a storage file operation.

        Parameters
        ----------
        id
            The unique identifier of the bucket
        )r	   Z_client)r   r&   r   r   r   from_4   s    zAsyncStorageClient.from_)T)__name__
__module____qualname____doc__r   r   r   r    r%   r!   r'   __classcell__r   r   r   r   r
      s    N)
__future__r   Zstorage3.constantsr   utilsr   r   Zbucketr   Zfile_apir	   __all__r
   r   r   r   r   <module>   s   