o
    #j                     @   s   d Z ddlmZ G dd deZG dd deZG dd deZG d	d
 d
eZG dd deZG dd deZ	G dd deZ
G dd deZG dd deZdS )z
AIHC job model module.
    )Optionalc                       *   e Zd ZdZdedef fddZ  ZS )Labelu   
    训练任务标签
    keyvaluec                    "   t t|   || d< || d< dS )ut   
        初始化训练任务标签

        Args:
            key: 标签键
            value: 标签值
        r   r   N)superr   __init__)selfr   r   	__class__ m/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/baidubce/services/aihc/modules/job/job_model.pyr	         zLabel.__init____name__
__module____qualname____doc__strr	   __classcell__r   r   r   r   r      s    r   c                       s&   e Zd ZdZdef fddZ  ZS )Optionu%   
    数据卷挂载选项信息
    readOnlyc                    s   t t|   || d< dS )u}   
        初始化数据卷挂载选项

        Args:
            readOnly: 是否以只读模式挂载到容器中
        r   N)r   r   r	   )r
   r   r   r   r   r	   *   s   zOption.__init__r   r   r   r   r   r   %   s    r   c                       sD   e Zd ZdZ		d
dedededee dee f
 fdd	Z  ZS )
DatasourceuQ   
    训练任务数据源配置
    支持类型：pfs/hostPath/dataset/bos
    Ntypename	mountPath
sourcePathoptionsc                    sN   t t|   || d< || d< || d< |dur|| d< |dur%|| d< dS dS )u  
        初始化数据源配置

        Args:
            type: 数据源类型，枚举值：pfs/hostPath/dataset/bos
            name: 数据源名称（pfs类型时为实例id，bos类型可为空）
            mountPath: 容器内挂载路径
            sourcePath: 源路径（pfs时为存储路径，hostpath时为宿主机路径）(可选)
            options: 数据源参数（可选）
        r   r   r   Nr   r   )r   r   r	   )r
   r   r   r   r   r   r   r   r   r	   ;   s   zDatasource.__init__NN)	r   r   r   r   r   r   dictr	   r   r   r   r   r   r   5   s    
r   c                       s4   e Zd ZdZddee dee f fddZ  ZS )TensorboardConfigu!   
    tensorboard相关配置
    NenablelogPqthc                    6   t t|   |dur|| d< |dur|| d< dS dS )u   
        初始化tensorboard配置

        Args:
            enable: 是否开启Tensorboard（可选）
            logPqth: 训练任务Tensorboard日志（可选）
        Nr"   ZlogPath)r   r!   r	   )r
   r"   r#   r   r   r   r	   [      zTensorboardConfig.__init__r   )	r   r   r   r   r   boolr   r	   r   r   r   r   r   r!   W   s    (r!   c                       st   e Zd ZdZ								ddee dee dee dee dee dee d	ee d
ee f fddZ  ZS )AlertConfigu   
    告警相关配置
    NalertIds
instanceId	alertName
alertItemsfor_descriptionnotifyRuleIdseverityc	           	         s   t    |dur|| d< |dur|| d< |dur|| d< |dur%|| d< |dur-|| d< |dur5|| d< |dur=|| d< |durG|| d	< dS dS )
u'   
        初始化告警配置
        Nr(   r)   r*   r+   forr-   r.   r/   )r   r	   )	r
   r(   r)   r*   r+   r,   r-   r.   r/   r   r   r   r	   o   s$   
zAlertConfig.__init__)NNNNNNNN)r   r   r   r   r   r   r	   r   r   r   r   r   r'   j   s6    	r'   c                       sV   e Zd ZdZ					d
dee dee dee dee dee f
 fdd	Z  Z	S )JobSpecu"   
    创建训练任务配置
    NimageConfig	resourcesenvs
enableRDMAhostNetworkc                    sv   t t|   || d< || d< |dur|| d< |dur|| d< |dur'|| d< |dur/|| d< |dur9|| d< dS dS )	u  
        初始化训练任务配置

        Args:
            image: 镜像名称
            replicas: 副本数量
            imageConfig: 镜像配置（可选）
            resources: 资源配置（可选）
            envs: 环境变量（可选）
            enableRDMA: 是否启用RDMA（可选）
            hostNetwork: 是否使用主机网络（可选）
        imagereplicasNr2   r3   r4   r5   r6   )r   r1   r	   )r
   r7   r8   r2   r3   r4   r5   r6   r   r   r   r	      s   zJobSpec.__init__)NNNNN)
r   r   r   r   r   r    listr&   r	   r   r   r   r   r   r1      s$    r1   c                       s    e Zd ZdZ fddZ  ZS )ImageConfigu   
    任务镜像配置，仅私有镜像时需要配置。
    被创建训练任务接口引用。
    :param username: 私有镜像仓库用户名
    :param password: 私有镜像仓库密码
    c                    r   )u   
        初始化镜像配置

        Args:
            username: 私有镜像仓库用户名
            password: 私有镜像仓库密码
        usernamepasswordN)r   r:   r	   )r
   r;   r<   r   r   r   r	      r   zImageConfig.__init__r   r   r   r   r	   r   r   r   r   r   r:      s    r:   c                       r   )ResourceuZ  
    任务资源配置
    被如下接口引用：创建训练任务

    资源名称示例（具体以平台最新文档为准）：
    - baidu.com/a800_80g_cgpu：GPU型号（需按百度资源描述符填写）
    - cpu：CPU配额，单位核
    - memory：内存配额，单位GB
    - sharedMemory：共享内存配额，单位GB
    r   quantityc                    r   )u  
        初始化资源配置

        Args:
            name: 资源名称，示例值：
                - baidu.com/a800_80g_cgpu：GPU型号
                - cpu：CPU配额
                - memory：内存配额
                - sharedMemory：共享内存配额
            quantity: 资源量，字符串类型
                示例："8"（表示8核CPU/8GB内存等）
        r   r?   N)r   r>   r	   )r
   r   r?   r   r   r   r	      s   zResource.__init__r   r   r   r   r   r>      s    r>   c                       s"   e Zd ZdZd fdd	Z  ZS )Envu   
    环境变量信息，被创建训练任务、查询训练任务详情接口引用。
    Attributes:
        name: 标签名（可选）
        value: 标签值（可选）
    Nc                    r$   )u   
        初始化环境变量

        Args:
            name: 环境变量名（可选）
            value: 环境变量值（可选）
        Nr   r   )r   r@   r	   )r
   r   r   r   r   r   r	      r%   zEnv.__init__r   r=   r   r   r   r   r@      s    r@   N)r   typingr   r    r   r   r   r!   r'   r1   r:   r>   r@   r   r   r   r   <module>   s   "&)