o
    i	                     @   sb   d dl mZmZ d dlmZ d dlmZ ddlmZm	Z	m
Z
mZmZ ddlmZ G dd	 d	Zd
S )    )ListOptional)QueryParams)RestCatalog   )AnalyticsBucketAnalyticsBucketDeleteResponseAnalyticsBucketsParser
SortColumn	SortOrder   )SyncRequestBuilderc                   @   s   e Zd ZdeddfddZdedefddZ					dd	ee	 d
ee	 dee
 dee dee dee fddZdedefddZdedededefddZdS )SyncStorageAnalyticsClientrequestreturnNc                 C   s
   || _ d S N)_request)selfr    r   V/home/ubuntu/transcripts/venv/lib/python3.10/site-packages/storage3/_sync/analytics.py__init__   s   
z#SyncStorageAnalyticsClient.__init__bucket_namec                 C   s(   d|i}| j jddg|d}t|jS )NnamePOSTbucket)http_methodpathbody)r   sendr   model_validate_jsoncontent)r   r   r   datar   r   r   create   s   z!SyncStorageAnalyticsClient.createlimitoffsetsort_column
sort_ordersearchc           	      C   sN   t |||||d}tdi dd | D }| jjddg|d}t|jS )N)r#   r$   r%   r&   r'   c                 S   s   i | ]\}}|d ur||qS r   r   ).0kvr   r   r   
<dictcomp>)   s    z3SyncStorageAnalyticsClient.list.<locals>.<dictcomp>GETr   )r   r   query_paramsr   )dictr   itemsr   r   r	   validate_jsonr    )	r   r#   r$   r%   r&   r'   paramsfiltered_paramsr!   r   r   r   list   s   zSyncStorageAnalyticsClient.listc                 C   s    | j jdd|gd}t|jS )NDELETEr   )r   r   )r   r   r   r   r    )r   r   r!   r   r   r   delete0   s   z!SyncStorageAnalyticsClient.deletecatalog_nameaccess_key_idsecret_access_keyc              	   C   s^   | j j}| j jjd}| j jd}|sJ dt|f|t||ddt|||ddS )Ns3apiKeyz%apiKey must be passed in the headers.)	warehouseuritokenz"pyiceberg.io.pyarrow.PyArrowFileIOFalse)z
py-io-implzs3.endpointzs3.access-key-idzs3.secret-access-keyzs3.force-virtual-addressing)r   	_base_urlparentjoinpathheadersgetr   str)r   r6   r7   r8   catalog_uris3_endpointservice_keyr   r   r   catalog4   s$   z"SyncStorageAnalyticsClient.catalog)NNNNN)__name__
__module____qualname__r   r   rD   r   r"   r   intr
   r   r   r3   r   r5   r   rH   r   r   r   r   r      s>    
r   N)typingr   r   httpxr   pyiceberg.catalog.restr   typesr   r   r	   r
   r   r   r   r   r   r   r   r   <module>   s    