跳到主要内容

sanitize_data_item

函数源码

sanitized_item: AnnoItem | None = sanitize_data_item(data_item: AnnoItem | AnnoMark)

针对某一标记数据项,进行完全清理。

数据清理将会确保:

  1. 返回的结果是可以标记为AnnoItem的字典。
  2. 值为None的文字标注会移除。
  3. 标记数据的边界框总是含有正值的宽和高(负值的宽或高表示起始点反向)。
  4. 若数据项中未提供ID,会随机生成一个6个字符长的ID。

别名

该函数可以按以下方式之一获取

import dash_picture_annotation as dpa


dpa.sanitize_data_item
dpa.utilities.sanitize_data_item

参数

输入

参数类型必选
说明
data_itemAnnoItem | AnnoMark要清理的标记数据项。若data_item只包含位置信息,则会为其添加ID。

输出

参数类型
说明
sanitized_itemAnnoItem | None数据项经过清理后的副本。若给定数据无法清理,则返回None

范例

清理一个数据项

sanitize_data_item.py
import pprint
import dash_picture_annotation as dpa


mark = lambda pos: {"x": pos, "y": 0, "width": 0, "height": pos, "type": "RECT"}
mark_eq = lambda pos: {"x": pos, "y": pos, "width": 0, "height": -pos, "type": "RECT"}

pprint.pprint(dpa.sanitize_data_item(mark(17.7)))
pprint.pprint(dpa.sanitize_data_item(mark_eq(17.7)))
pprint.pprint(dpa.sanitize_data_item({"mark": mark(-17.7), "comment": "test"}))