o
    #j                     @   s   d Z ddlZddlmZ ddlmZmZmZmZm	Z	m
Z
 ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ dd ZG dd dZdS )z2
This module provides a client class for AIHC V2.
    N)wraps)AnyDictOptionalUnionListget_type_hints)	JobClient)DatasetClient)ModelClient)ServiceClient)DevInstanceClient)ResourcePoolClientc                    s   t | | t }t  fdd}||_ j|_t dr$ j|_t dr- j|_t dr6 j	|_	z
t
 }||_W |S  tyN    j|_Y |S w )u   
    创建带有完整类型信息的代理方法
    
    这个函数会：
    1. 获取原始方法的完整签名和类型注解
    2. 创建一个新的代理方法，保持所有类型信息
    3. 确保IDE能够正确识别类型提示
    c                     s    | i |S )uT   
        代理方法，用于调用原始目标方法并保持类型信息
         )argskwargsZoriginal_methodr   c/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/baidubce/services/aihc/aihc_client.pyproxy_method+   s   z/create_typed_proxy_method.<locals>.proxy_method
__module____qualname____name__)getattrinspect	signaturer   __signature____annotations__hasattrr   r   r   r   	Exception)Ztarget_clientmethod_namesigr   Z
type_hintsr   r   r   create_typed_proxy_method   s(   
	




r!   c                   @   s"   e Zd ZdZdddZdd ZdS )
AihcClientu  
    AIHC主客户端，适配V2版本OpenAPI
    
    该客户端提供了对AIHC各个模块功能的统一访问接口，
    包括任务管理、数据集管理、模型管理、在线服务和开发机管理等功能。
    
    使用示例:
        >>> from baidubce.services.aihc.aihc_client import AihcClient
        >>> client = AihcClient(config)
        >>> jobs = client.DescribeJobs(resourcePoolId="xxx")
    Nc                 C   sH   t || _t|| _t|| _t|| _t|| _	t
|| _|   dS )u   
        初始化AIHC V2客户端
        
        Args:
            config: 配置对象
                baidubce.bce_client_configuration.BceClientConfiguration实例
        N)r	   jobr
   datasetr   modelr   servicer   dev_instancer   resource_pool_setup_proxy_methods)selfconfigr   r   r   __init__V   s   





zAihcClient.__init__c                 C   s   g d}g d}g d}g d}g d}g d}|D ]}t | |t| j| q|D ]}t | |t| j| q)|D ]}t | |t| j| q8|D ]}t | |t| j| qG|D ]}t | |t| j| qV|D ]}t | |t| j| qedS )u   
        设置代理方法
        
        为各个子模块的方法创建代理，使主客户端可以直接调用子模块的方法
        )ZDescribeJobsZDescribeJobZ	DeleteJobZ	ModifyJobZDescribeJobEventsZDescribeJobLogsZDescribeJobPodEventsZStopJobZDescribeJobNodesZDescribeJobWebterminalZ	CreateJobZDescribeJobMetrics)	ZDescribeDatasetsZDescribeDatasetZModifyDatasetZDeleteDatasetZCreateDatasetZDescribeDatasetVersionsZDescribeDatasetVersionZDeleteDatasetVersionZCreateDatasetVersion)	ZDescribeModelsZCreateModelZDeleteModelZModifyModelZDescribeModelZDescribeModelVersionsZDescribeModelVersionZCreateModelVersionZDeleteModelVersion)ZDescribeServicesZDescribeServiceZDescribeServiceStatusZCreateServiceZDeleteServiceZModifyServiceZModifyServiceReplicasZUpgradeServiceZDescribeServicePodsZDeleteServicePodZDisableServicePodZModifyServiceNetConfigZDescribeServicePodGroupsZDescribeServiceChangelogsZDescribeServiceChangelog)ZDescribeDevInstancesZDescribeDevInstanceZStartDevInstanceZStopDevInstanceZCreateDevInstanceZDeleteDevInstanceZModifyDevInstanceZDescribeDevInstanceEventsZCreateDevInstanceImagePackJobZDescribeDevInstanceImagePackJobZTimedStopDevInstance)ZDescribeResourcePoolsZDescribeResourcePoolZDescribeResourcePoolOverviewZ!DescribeResourcePoolConfigurationZDescribeQueuesZDescribeQueueN)setattrr!   r#   r$   r%   r&   r'   r(   )r*   Zjob_methodsZdataset_methodsZmodel_methodsZservice_methodsZdev_instance_methodsZresource_pool_methodsr   r   r   r   r)   h   s&   zAihcClient._setup_proxy_methods)N)r   r   r   __doc__r,   r)   r   r   r   r   r"   I   s    
r"   )r.   r   	functoolsr   typingr   r   r   r   r   r   Z-baidubce.services.aihc.modules.job.job_clientr	   Z5baidubce.services.aihc.modules.dataset.dataset_clientr
   Z1baidubce.services.aihc.modules.model.model_clientr   Z5baidubce.services.aihc.modules.service.service_clientr   Z?baidubce.services.aihc.modules.dev_instance.dev_instance_clientr   ZAbaidubce.services.aihc.modules.resource_pool.resource_pool_clientr   r!   r"   r   r   r   r   <module>   s    -