o
    R+ i'                     @   s^   d Z ddlZddlZddlZddlmZ ddlmZmZm	Z	 ddl
mZ G dd dejZdS )z.
This module provides a client class for OOS.
    N)bce_v1_signer)handlerbce_http_clienthttp_methods)bce_base_clientc                   @   s   e Zd ZdZdZe ddZd"ddZd"dd	Z			d#d
dZ
d$ddZd$ddZd$ddZd"ddZd"ddZd%ddZd"ddZi dg dfddZd"d d!ZdS )&	OosClientz
    OOS base sdk client
    s   /api/logic/ooss   application/json;charset=utf-8)s   x-bce-request-ids   content-typeNc                 C   s   t j| | d S N)r   BceBaseClient__init__)selfconfig r   l/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/baidubce/services/oos/oos_client.pyr
   &   s   zOosClient.__init__c                 C   s(   |d u r| j S t| j }|| |S r   )r   copyZmerge_non_none_values)r   r   Z
new_configr   r   r   _merge_config)   s
   
zOosClient._merge_configc              
   C   s>   |  |}|d u rtj}t|tjtj|g|tj	| |||S r   )
r   r   Z
parse_jsonr   send_requestr   signZparse_errorr   prefix)r   Zhttp_methodpathbodyheadersparamsr   Zbody_parserr   r   r   _send_request1   s   
zOosClient._send_request Tc                 C   0   d}||||d}| j tj|t|tj|dS )a  
        Create oos template.

        This site may help you: https://cloud.baidu.com/doc/OOS/s/lli1cjcjh

        :param name:
            Template name.
        :type name: string

        :param operators:
            Include template operators to execute.
        :type operators: OperatorModel array

        :param description:
            Template description.
        :type description: string

        :param linear:
            Operator execute linearly.
        :type linear: bool

        :param config:
        :type config: baidubce.BceClientConfiguration

        :return:
        :rtype baidubce.bce_response.BceResponse
           /v2/templatedescriptionname	operatorslinearr   r   r   r   r   POSTjsondumpsr   r   r   r   r   r   r    r   r   r   r   r   r   create_template<      zOosClient.create_templatec                 C   r   )a  
        Check oos template.

        This site may help you: https://cloud.baidu.com/doc/OOS/s/lli1cjcjh

        :param name:
            Template name.
        :type name: string

        :param operators:
            Include template operators to execute.
        :type operators: OperatorModel array

        :param description:
            Template description.
        :type description: string

        :param linear:
            Operator execute linearly.
        :type linear: bool

        :param config:
        :type config: baidubce.BceClientConfiguration

        :return:
        :rtype baidubce.bce_response.BceResponse
        s   /v2/template/checkr   r!   r"   r&   r   r   r   check_templateb   r(   zOosClient.check_templatec           	      C   s2   d}|||||d}| j tj|t|tj|dS )a  
        Update oos template.

        This site may help you: https://cloud.baidu.com/doc/OOS/s/lli1cjcjh

        :param template_id:
            Template id.
        :type template_id: string

        :param name:
            Template name.
        :type name: string

        :param operators:
            Include template operators to execute.
        :type operators: OperatorModel array

        :param description:
            Template description.
        :type description: string

        :param linear:
            Operator execute linearly.
        :type linear: bool

        :param config:
        :type config: baidubce.BceClientConfiguration

        :return:
        :rtype baidubce.bce_response.BceResponse
        r   )idr   r   r   r    r!   )r   r   PUTr$   r%   r   r   )	r   template_idr   r   r   r    r   r   r   r   r   r   update_template   s    zOosClient.update_templatec                 C   $   d}d|i}| j tj||tj|dS )ak  
        Delete oos template by template id.

        This site may help you: https://cloud.baidu.com/doc/OOS/s/lli1cjcjh

        :param template_id:
            Template id.
        :type template_id: string

        :param config:
        :type config: baidubce.BceClientConfiguration

        :return:
        :rtype baidubce.bce_response.BceResponse
        r   r*   r   r   r   )r   r   DELETEr   r   )r   r,   r   r   r   r   r   r   delete_template      zOosClient.delete_templatec                 C   r.   )aa  
        Get template detail by template name.

        This site may help you: https://cloud.baidu.com/doc/OOS/s/lli1cjcjh

        :param name:
            Template name.
        :type name: string

        :param config:
        :type config: baidubce.BceClientConfiguration

        :return:
        :rtype baidubce.bce_response.BceResponse
        r   r   r/   r   r   GETr   r   )r   r   r   r   r   r   r   r   get_template_detail   r2   zOosClient.get_template_detail
createTimeFc                 C   s0   d}||||d}| j tj|t|tj|dS )aF  
        Get template list.

        This site may help you: https://cloud.baidu.com/doc/OOS/s/lli1cjcjh

        :param page_no:
            Page number.
        :type page_no: int

        :param page_size:
            Page size.
        :type page_size: int

        :param sort:
            Template list sort by.
        :type sort: string

        :param ascending:
            ascend or not.
        :type ascending: bool

        :param config:
        :type config: baidubce.BceClientConfiguration

        :return:
        :rtype baidubce.bce_response.BceResponse
        s   /v2/template/list)sort	ascendingpageNopageSizer!   r"   )r   page_no	page_sizer7   r8   r   r   r   r   r   r   get_template_list   r(   zOosClient.get_template_listc                 C   s,   d}||d}| j tj|t|tj|dS )a  
        Get operator list.

        This site may help you: https://cloud.baidu.com/doc/OOS/s/Oli1pd1bq

        :param page_no:
            Page number.
        :type page_no: int

        :param page_size:
            Page size.
        :type page_size: int

        :param config:
        :type config: baidubce.BceClientConfiguration

        :return:
        :rtype baidubce.bce_response.BceResponse
        s   /v1/operator/list)r9   r:   r!   r"   )r   r;   r<   r   r   r   r   r   r   get_operator_list  s   zOosClient.get_operator_listc                 C   s0   d}||||d}| j tj|t|tj|dS )a  
        Create oos execution by template.

        This site may help you: https://cloud.baidu.com/doc/OOS/s/fli1q43ih

        :param template:
            Template to execute.
        :type template: TemplateModel

        :param properties:
            Template execute global parameters.
        :type properties: dict

        :param description:
            Template description.
        :type description: string

        :param tags:
            Execution binding tags.
        :type tags: TagModel array

        :param config:
        :type config: baidubce.BceClientConfiguration

        :return:
        :rtype baidubce.bce_response.BceResponse
           /v2/execution)template
propertiesr   tagsr!   r"   )r   r@   rA   r   rB   r   r   r   r   r   r   create_execution!  r(   zOosClient.create_executionc                 C   r.   )ap  
        Get execution detail by execution id.

        This site may help you: https://cloud.baidu.com/doc/OOS/s/fli1q43ih

        :param execution_id:
            Execution id.
        :type execution_id: string

        :param config:
        :type config: baidubce.BceClientConfiguration

        :return:
        :rtype baidubce.bce_response.BceResponse
        r?   r*   r/   r3   )r   Zexecution_idr   r   r   r   r   r   get_execution_detailG  r2   zOosClient.get_execution_detailr   )NNNNN)r   TN)r6   FN)__name__
__module____qualname____doc__r   uuiduuid4r   r
   r   r   r'   r)   r-   r1   r5   r=   r>   rC   rD   r   r   r   r   r      s(    

	


&
&
+


&&r   )rH   r   r$   rI   Zbaidubce.authr   Zbaidubce.httpr   r   r   Zbaidubcer   r	   r   r   r   r   r   <module>   s   