接口抽象类

Anylearn接口的抽象类,所有集成此类的子类都需要实现BaseObject的抽象方法。

class anylearn.interfaces.base.BaseObject(id: Optional[str] = None, load_detail=False)[源代码]

基类:abc.ABC

具体资源信息配置

__init__(id: Optional[str] = None, load_detail=False)[源代码]
参数
  • id – 对象的ID

  • load_detail – 初始化对象时是否加载详情

_check_fields(required=[])[源代码]

对象检查属性是否存在

_create()[源代码]

创建对象,如果子类创建方法与此有较大差异可以重写此方法

_fields = {'payload': {'create': [], 'update': []}, 'required': {'create': [], 'update': []}}

所有子类中需定制 _fields 的字段内容以满足创建/更新所需要的字段

创建/更新对象时:

  • 必须包含且不能为空的字段 _fields['required']

  • 所有字段 _fields['payload']

abstract _namespace()[源代码]
  • 子类的命名空间,调用此方法以获取子类的名称用于异常信息输出等,以 User 为例, _namespace 可以为 user

  • 子类需实现此抽象方法

_update()[源代码]

更新对象,如果子类更新方法与此有较大差异可以重写此方法

_url_create()[源代码]

创建对象url,如果子类创建对象接口名称不是 add ,可以重写此方法来定制接口名称

_url_delete()[源代码]

删除对象url,如果子类删除对象接口名称不是 delete ,可以重写此方法来定制接口名称

_url_update()[源代码]

更新对象url,如果子类更新对象接口名称不是 update ,可以重写此方法来定制接口名称

delete(force: bool = False)[源代码]

删除对象

  • 对象属性 id 应为非空

返回

True or False

返回类型

bool

abstract get_detail()[源代码]

获取对象详情,子类需实现此抽象方法

abstract classmethod get_list() → list[源代码]

获取对象列表,子类需实现此抽象方法

save()[源代码]

创建或更新对象

  • 对象包含非空属性 id 时为更新,否则为创建

  • 创建对象时必须包含且不能为空的字段: _fields['required']['create']

  • 创建对象时包含的所有字段: _fields['payload']['create']

  • 更新对象时必须包含且不能为空的字段: _fields['required']['update']

  • 更新对象时包含的所有字段: _fields['payload']['update']

返回

True or False

返回类型

bool