o
    #j`0                     @   sD   d Z ddlZddlmZ ddlmZ ddlmZ G dd deZdS )z
AIHC dataset client module.
    N)BceResponse)http_methods)AIHCBaseClientc                   @   s   e Zd ZdZ						dddZdd Z					dddZd	d
 Z				dddZ		dddZ	dd Z
dd Z	dddZdS )DatasetClientu   数据集相关接口客户端Nc           	      C   s~   d}ddi}|dur||d< |dur||d< |dur||d< |dur&||d< |dur.||d	< |dur6||d
< | j tj||dS )u  
        获取数据集列表。

        参考文档：https://cloud.baidu.com/doc/AIHC/s/Emc099va4

        Args:
            keyword: 名称关键字（可选，Query参数）
            storageType: 存储类型（可选，Query参数）
            storageInstances: 存储实例列表，英文逗号分隔（可选，Query参数）
            importFormat: 导入格式（可选，Query参数）
            pageNumber: 页码，默认1（可选，Query参数）
            pageSize: 每页数量，不传递该参数默认返回全部（可选，Query参数）

        Returns:
            baidubce.bce_response.BceResponse: 数据集列表及总数

        Raises:
            ValueError: 当必填参数为空时
            TypeError: 当参数类型不匹配时
           /actionDescribeDatasetsNkeywordstorageTypestorageInstancesimportFormat
pageNumberpageSizeparams_send_requestr   GET)	selfr	   r
   r   r   r   r   pathr    r   v/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/baidubce/services/aihc/modules/dataset/dataset_client.pyr      s(   zDatasetClient.DescribeDatasetsc                 C       d}d|d}| j tj||dS )u  
        获取数据集详情。

        参考文档：https://cloud.baidu.com/doc/AIHC/s/Umc0988jj

        Args:
            datasetId: 数据集ID（必填，Query参数）

        Returns:
            baidubce.bce_response.BceResponse: 数据集详情

        Raises:
            ValueError: 当必填参数为空时
            TypeError: 当参数类型不匹配时
        r   DescribeDatasetr   	datasetIdr   r   r   r   r   r   r   r   r   r   M      zDatasetClient.DescribeDatasetc           
      C   s|   d}d|d}i }	|dur||	d< |dur||	d< |dur!||	d< |dur)||	d< |dur1||	d	< | j tj|t|	|d
S )u  
        修改数据集。

        参考文档：https://cloud.baidu.com/doc/AIHC/s/Imc095v8z

        Args:
            datasetId: 数据集ID（必填，Query参数）
            name: 数据集名称（可选，Body参数）
            description: 数据集描述（可选，Body参数）
            visibilityScope: 可见范围（可选，Body参数）
            visibilityUser: 用户权限列表（可选，Body参数，List[dict]）
            visibilityGroup: 用户组权限列表（可选，Body参数，List[dict]）

        Returns:
            baidubce.bce_response.BceResponse: 修改结果

        Raises:
            ValueError: 当必填参数为空时
            TypeError: 当参数类型不匹配时
        r   ModifyDatasetr   NnamedescriptionvisibilityScopevisibilityUservisibilityGroupbodyr   r   r   POSTjsondumps)
r   r   r   r    r!   r"   r#   r   r   r%   r   r   r   r   h   s*   zDatasetClient.ModifyDatasetc                 C   r   )u  
        删除数据集，同时删除所有版本。

        参考文档：https://cloud.baidu.com/doc/AIHC/s/wmc09407x

        Args:
            datasetId: 数据集ID（必填，Query参数）

        Returns:
            baidubce.bce_response.BceResponse: 删除结果

        Raises:
            ValueError: 当必填参数为空时
            TypeError: 当参数类型不匹配时
        r   DeleteDatasetr   r   r   r   r'   r   r   r   r   r*      r   zDatasetClient.DeleteDatasetc                 C   sx   d}ddi}||||||d}|dur||d< |dur||d< |	dur'|	|d< |
dur/|
|d	< | j tj|t||d
S )u  
        创建数据集。

        参考文档：https://cloud.baidu.com/doc/AIHC/s/Dmc091fap

        Args:
            name: 数据集名称（必填，Body参数）
            storageType: 存储类型（必填，Body参数）
            storageInstance: 存储实例ID（必填，Body参数）
            importFormat: 导入格式（必填，Body参数）
            visibilityScope: 可见范围（必填，Body参数）
            initVersionEntry: 初始版本信息（必填，Body参数，dict）
            description: 数据集描述（可选，Body参数）
            owner: 拥有者ID（可选，Body参数）
            visibilityUser: 用户权限列表（可选，Body参数，List[dict]）
            visibilityGroup: 用户组权限列表（可选，Body参数，List[dict]）

        Returns:
            baidubce.bce_response.BceResponse: 创建结果

        Raises:
            ValueError: 当必填参数为空时
            TypeError: 当参数类型不匹配时
        r   r   CreateDataset)r   r
   storageInstancer   r!   initVersionEntryNr    ownerr"   r#   r$   r&   )r   r   r
   r-   r   r!   r.   r    r/   r"   r#   r   r   r%   r   r   r   r,      s0   %zDatasetClient.CreateDatasetc                 C   s@   d}d|d}|dur||d< |dur||d< | j tj||dS )u  
        获取数据集版本列表。

        参考文档：https://cloud.baidu.com/doc/AIHC/s/Tmc09d4k0

        Args：
        datasetId: 数据集ID（必填，Query参数）
        pageNumber: 页码，默认1（可选，Query参数）
        pageSize: 每页数量，默认10（可选，Query参数）

        Returns:
            baidubce.bce_response.BceResponse：数据集版本列表及总数

        Raises:
            ValueError: 当必填参数为空时
            TypeError: 当参数类型不匹配时
        r   DescribeDatasetVersionsr   Nr   r   r   r   )r   r   r   r   r   r   r   r   r   r0      s   z%DatasetClient.DescribeDatasetVersionsc                 C   "   d}d||d}| j tj||dS )u  
        获取数据集版本详情。

        参考文档：https://cloud.baidu.com/doc/AIHC/s/Dmc09bpj1

        Args:
            datasetId: 数据集ID（必填，Query参数）
            versionId: 数据集版本ID（必填，Query参数）

        Returns:
            baidubce.bce_response.BceResponse: 数据集版本详情

        Raises:
            ValueError: 当必填参数为空时
            TypeError: 当参数类型不匹配时
        r   DescribeDatasetVersionr   r   	versionIdr   r   r   r   r4   r   r   r   r   r   r2        z$DatasetClient.DescribeDatasetVersionc                 C   r1   )u  
        删除数据集版本。

        参考文档：https://cloud.baidu.com/doc/AIHC/s/Omc09gd0f

        Args:
            datasetId: 数据集ID（必填，Query参数）
            versionId: 数据集版本ID（必填，Query参数）

        Returns:
            baidubce.bce_response.BceResponse: 删除结果

        Raises:
            ValueError: 当必填参数为空时
            TypeError: 当参数类型不匹配时
        r   DeleteDatasetVersionr3   r   r+   r5   r   r   r   r7   ;  r6   z"DatasetClient.DeleteDatasetVersionc                 C   sB   d}d|d}||d}|dur||d< | j tj|t||dS )u?  
        创建数据集版本。

        参考文档：https://cloud.baidu.com/doc/AIHC/s/hmc09en7q

        Args:
            datasetId: 数据集ID（必填，Query参数）
            storagePath: 存储路径（必填，Body参数）
            mountPath: 默认挂载路径（必填，Body参数）
            description: 版本描述（可选，Body参数）

        Returns:
            baidubce.bce_response.BceResponse: 创建结果

        Raises:
            ValueError: 当必填参数为空时
            TypeError: 当参数类型不匹配时
        r   CreateDatasetVersionr   )storagePath	mountPathNr    r$   r&   )r   r   r9   r:   r    r   r   r%   r   r   r   r8   X  s   z"DatasetClient.CreateDatasetVersion)NNNNNN)NNNNN)NNNN)NN)N)__name__
__module____qualname____doc__r   r   r   r*   r,   r0   r2   r7   r8   r   r   r   r   r      s:    
4
4#
C
'"r   )	r>   r(   Zbaidubce.bce_responser   Zbaidubce.httpr   Z,baidubce.services.aihc.base.aihc_base_clientr   r   r   r   r   r   <module>   s   