o
    #j                     @   sV   d Z ddlZddlmZ ddlmZ ddlmZmZ ddl	m
Z
 G dd dejZdS )	z
AIHC base client module.
    N)bce_base_client)bce_v1_signer)handlerbce_http_client)aihc_handlerc                   @   s^   e Zd ZdZdZdddZdddZ		ddd	Z					dd
dZ					dddZ	dS )AIHCBaseClientu5   
    AIHC基础客户端类，提供公共方法
    s   v2Nc                 C   s   t j| | dS )u   
        初始化AIHC基础客户端

        Args:
            config: 配置对象，baidubce.bce_client_configuration.BceClientConfiguration实例
        N)r   BceBaseClient__init__)selfconfig r   m/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/baidubce/services/aihc/base/aihc_base_client.pyr	      s   zAIHCBaseClient.__init__c                 C   s(   |du r| j S t| j }|| |S )u   
        合并配置对象

        Args:
            config: 要合并的配置对象，如果为None则返回当前配置

        Returns:
            baidubce.bce_client_configuration.BceClientConfiguration: 合并后的配置对象
        N)r   copyZmerge_non_none_values)r
   r   Z
new_configr   r   r   _merge_config(   s
   

zAIHCBaseClient._merge_configc              
   C   `   |  |}|du rtj}|du rtjdd}n	tj|d< d|d< t|tjt	j
|g|||||S )u  
        发送HTTP请求

        Args:
            http_method: HTTP方法
            path: 请求路径
            body: 请求体（可选）
            headers: 请求头（可选）
            params: 请求参数（可选）
            config: 配置对象（可选）
            body_parser: 响应体解析器（可选）

        Returns:
            baidubce.bce_response.BceResponse: 响应对象
        N   application/json   version   Content-Typer   r   r   r   
parse_jsonr   versionr   send_requestr   signr   parse_errorr
   Zhttp_methodpathbodyheadersparamsr   Zbody_parserr   r   r   _send_request9   s   


zAIHCBaseClient._send_requestc              
   C   r   )u  
        发送任务相关HTTP请求

        Args:
            http_method: HTTP方法
            path: 请求路径
            body: 请求体（可选）
            headers: 请求头（可选）
            params: 请求参数（可选）
            config: 配置对象（可选）
            body_parser: 响应体解析器（可选）

        Returns:
            baidubce.bce_response.BceResponse: 响应对象
        Nr   )   X-API-Versionr   r!   r   r   r   r   r   r   _send_job_request\      


z AIHCBaseClient._send_job_requestc              
   C   r   )u  
        适配资源池接口，发送请求时使用bce_v1_signer.resource_pool_sign方法签名

        Args:
            http_method: HTTP方法
            path: 请求路径
            body: 请求体（可选）
            headers: 请求头（可选）
            params: 请求参数（可选）
            config: 配置对象（可选）
            body_parser: 响应体解析器（可选）

        Returns:
            baidubce.bce_response.BceResponse: 响应对象
        Nr   r   r   r   )r   r   r   r   r   r   r   r   Zresource_pool_signr   r   r   r   r   r   _send_resource_pool_request   r#   z*AIHCBaseClient._send_resource_pool_request)N)NNNNN)
__name__
__module____qualname____doc__r   r	   r   r    r"   r$   r   r   r   r   r      s(    

	
'
.r   )r(   r   Zbaidubcer   Zbaidubce.authr   Zbaidubce.httpr   r   Zbaidubce.services.aihcr   r   r   r   r   r   r   <module>   s   