Metadata (元数据)¶
Metadata 模型代表项目的动态元数据信息,包含分类、选项和默认值等。
获取元数据¶
通过 Project.metadata() 方法获取项目的所有元数据:
for metadata in project.metadata():
print(f"{metadata.category} - {metadata.name}")
print(f" 类型: {metadata.category_type}")
print(f" 选项数: {len(metadata.options)}")
for option in metadata.options:
print(f" {option.key}: {option.value}")
属性¶
| 属性 | 类型 | 说明 |
|---|---|---|
category |
str |
元数据分类 |
name |
str |
元数据名称 |
options |
list[MetadataOption] |
可选值列表 |
default |
ValueType | None |
默认值 |
actual_values_count |
int |
实际使用的值数量 |
category_type |
MetadataCategoryType |
分类类型(单选/多选) |
is_dynamic |
bool |
是否为动态元数据 |
MetadataOption¶
元数据选项。
| 属性 | 类型 | 说明 |
|---|---|---|
key |
str |
选项键 |
value |
ValueType |
选项值 |
ValueType
ValueType 定义为 str | int | float | bool | List[str] | List[int] | List[float] | List[bool],支持多种基本类型。
MetadataCategoryType¶
元数据分类类型枚举,详见 枚举与类型。
| 值 | 说明 |
|---|---|
single |
单选 |
multi |
多选 |
使用示例¶
from aimage.search.models.type import MetadataCategoryType
for metadata in project.metadata():
if metadata.category_type == MetadataCategoryType.MULTI:
print(f"[多选] {metadata.name}")
else:
print(f"[单选] {metadata.name}")
if metadata.default is not None:
print(f" 默认值: {metadata.default}")
print(f" 实际使用数: {metadata.actual_values_count}")
for opt in metadata.options:
print(f" - {opt.key} = {opt.value}")