sanitize_data_item
函数源码
sanitized_item: AnnoItem | None = sanitize_data_item(data_item: AnnoItem | AnnoMark)
针对某一标记数据项,进行完全清理。
数据清理将会确保:
- 返回的结果是可以标记为
AnnoItem的字典。 - 值为
None的文字标注会移除。 - 标记数据的边界框总是含有正值的宽和高(负值的宽或高表示起始点反向)。
 - 若数据项中未提供ID,会随机生成一个6个字符长的ID。
 
别名
该函数可以按以下方式之一获取
import dash_picture_annotation as dpa
dpa.sanitize_data_item
dpa.utilities.sanitize_data_item
参数
输入
| 参数 | 类型 | 必选 | |
|---|---|---|---|
data_item | AnnoItem | AnnoMark | 要清理的标记数据项。若data_item只包含位置信息,则会为其添加ID。 | 
输出
| 参数 | 类型 | |
|---|---|---|
sanitized_item | AnnoItem | 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"}))
{'id': '1f0ef8',
 'mark': {'height': 17.7, 'type': 'RECT', 'width': 0, 'x': 17.7, 'y': 0}}
{'id': '2b672d',
 'mark': {'height': 17.7, 'type': 'RECT', 'width': 0, 'x': 17.7, 'y': 0.0}}
{'comment': 'test',
 'id': 'efbef4',
 'mark': {'height': 17.7, 'type': 'RECT', 'width': 0, 'x': -17.7, 'y': -17.7}}