denkproto 1.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- denkproto/ImageAnalysis_ProtobufMessages_pb2.py +139 -0
- denkproto/ImageAnalysis_ProtobufMessages_pb2.pyi +598 -0
- denkproto/ImageAnalysis_ProtobufMessages_pb2_grpc.py +24 -0
- denkproto/__about__.py +1 -0
- denkproto/__init__.py +0 -0
- denkproto/annotation_comparer_request_pb2.py +40 -0
- denkproto/annotation_comparer_request_pb2.pyi +38 -0
- denkproto/annotation_comparer_request_pb2_grpc.py +24 -0
- denkproto/denkcache_pb2.py +77 -0
- denkproto/denkcache_pb2.pyi +155 -0
- denkproto/denkcache_pb2_grpc.py +398 -0
- denkproto/geometry_pb2.py +45 -0
- denkproto/geometry_pb2.pyi +54 -0
- denkproto/geometry_pb2_grpc.py +24 -0
- denkproto/inference_graph_pb2.py +185 -0
- denkproto/inference_graph_pb2.pyi +272 -0
- denkproto/inference_graph_pb2_grpc.py +24 -0
- denkproto/json/__init__.py +3 -0
- denkproto/json/classification_markup_schema_.py +28 -0
- denkproto/json/geometry_schema.py +71 -0
- denkproto/json/inference_graph_recipe_schema.py +336 -0
- denkproto/json/instance_segmentation_markup_schema.py +35 -0
- denkproto/json/object_detection_markup_schema.py +43 -0
- denkproto/json/ocr_markup_schema.py +48 -0
- denkproto/json/segmentation_markup_schema.py +242 -0
- denkproto/markup_pb2.py +56 -0
- denkproto/markup_pb2.pyi +155 -0
- denkproto/markup_pb2_grpc.py +24 -0
- denkproto/materialized_markup_pb2.py +46 -0
- denkproto/materialized_markup_pb2.pyi +71 -0
- denkproto/materialized_markup_pb2_grpc.py +24 -0
- denkproto/modelfile_v1_pb2.py +57 -0
- denkproto/modelfile_v1_pb2.pyi +216 -0
- denkproto/modelfile_v1_pb2_grpc.py +24 -0
- denkproto/modelfile_v2_pb2.py +154 -0
- denkproto/modelfile_v2_pb2.pyi +307 -0
- denkproto/modelfile_v2_pb2_grpc.py +24 -0
- denkproto/prediction_pb2.py +48 -0
- denkproto/prediction_pb2.pyi +89 -0
- denkproto/prediction_pb2_grpc.py +24 -0
- denkproto/prediction_request_pb2.py +43 -0
- denkproto/prediction_request_pb2.pyi +56 -0
- denkproto/prediction_request_pb2_grpc.py +24 -0
- denkproto/py.typed +0 -0
- denkproto/request_pb2.py +51 -0
- denkproto/request_pb2.pyi +92 -0
- denkproto/request_pb2_grpc.py +24 -0
- denkproto/results_pb2.py +91 -0
- denkproto/results_pb2.pyi +528 -0
- denkproto/results_pb2_grpc.py +24 -0
- denkproto/validate_pb2.py +86 -0
- denkproto/validate_pb2.pyi +494 -0
- denkproto/validate_pb2_grpc.py +24 -0
- denkproto-1.3.0.dist-info/METADATA +5 -0
- denkproto-1.3.0.dist-info/RECORD +56 -0
- denkproto-1.3.0.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: inference_graph.proto
|
|
5
|
+
# Protobuf Python Version: 5.28.1
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
5,
|
|
15
|
+
28,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'inference_graph.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
import denkproto.modelfile_v2_pb2 as modelfile__v2__pb2
|
|
26
|
+
import denkproto.validate_pb2 as validate__pb2
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15inference_graph.proto\x12\x0finference_graph\x1a\x12modelfile-v2.proto\x1a\x0evalidate.proto\"\xa5\x01\n\x0bModelSource\x12-\n\nfrom_proto\x18\x01 \x01(\x0b\x32\x17.modelfile.v2.ModelFileH\x00\x12#\n\x0f\x66rom_network_id\x18\x02 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x12.\n\x1a\x66rom_network_experiment_id\x18\x03 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x42\x12\n\x0bsource_type\x12\x03\xf8\x42\x01\"s\n\x0bSessionInfo\x12H\n\x12\x65xecution_provider\x18\x01 \x01(\x0e\x32\".inference_graph.ExecutionProviderB\x08\xfa\x42\x05\x82\x01\x02\x10\x01\x12\x1a\n\tdevice_id\x18\x02 \x01(\x05\x42\x07\xfa\x42\x04\x1a\x02(\x00\"\xa4\x03\n\x0f\x43onstTensorNode\x12\x15\n\x04name\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12\r\n\x05shape\x18\x02 \x03(\r\x12\x43\n\x0buint64_data\x18\x03 \x01(\x0b\x32,.inference_graph.ConstTensorNode.Uint64ArrayH\x00\x12\x41\n\nint64_data\x18\x04 \x01(\x0b\x32+.inference_graph.ConstTensorNode.Int64ArrayH\x00\x12\x45\n\x0c\x66loat64_data\x18\x05 \x01(\x0b\x32-.inference_graph.ConstTensorNode.Float64ArrayH\x00\x12\x33\n\x10output_port_name\x18\x06 \x01(\tB\x19\xfa\x42\x16r\x14\x10\x01\x32\x10^[a-zA-Z0-9_-]+$\x1a\x1b\n\x0bUint64Array\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\x04\x1a\x1a\n\nInt64Array\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\x12\x1a\x1c\n\x0c\x46loat64Array\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\x01\x42\x10\n\tdata_type\x12\x03\xf8\x42\x01\"\xc4\x02\n\x0fImageResizeNode\x12\x15\n\x04name\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12L\n\ninput_size\x18\x02 \x01(\tB8\xfa\x42\x35r3\x10\x01\x32/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$\x12M\n\x0binput_image\x18\x03 \x01(\tB8\xfa\x42\x35r3\x10\x01\x32/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$\x12\x33\n\x10output_port_name\x18\x04 \x01(\tB\x19\xfa\x42\x16r\x14\x10\x01\x32\x10^[a-zA-Z0-9_-]+$\x12\x37\n\x0csession_info\x18\x05 \x01(\x0b\x32\x1c.inference_graph.SessionInfoH\x00\x88\x01\x01\x42\x0f\n\r_session_info\"\xa3\x05\n\x10ImagePatchesNode\x12\x15\n\x04name\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12M\n\x0binput_image\x18\x02 \x01(\tB8\xfa\x42\x35r3\x10\x01\x32/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$\x12V\n\x14input_bounding_boxes\x18\x03 \x01(\tB8\xfa\x42\x35r3\x10\x01\x32/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$\x12W\n\x11input_target_size\x18\x04 \x01(\x0b\x32\x32.inference_graph.ImagePatchesNode.TargetSizeSourceB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x33\n\x10output_port_name\x18\x05 \x01(\tB\x19\xfa\x42\x16r\x14\x10\x01\x32\x10^[a-zA-Z0-9_-]+$\x12\x37\n\x0csession_info\x18\x07 \x01(\x0b\x32\x1c.inference_graph.SessionInfoH\x00\x88\x01\x01\x1a\xf8\x01\n\x10TargetSizeSource\x12I\n\x05topic\x18\x01 \x01(\tB8\xfa\x42\x35r3\x10\x01\x32/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$H\x00\x12L\n\x04size\x18\x02 \x01(\x0b\x32<.inference_graph.ImagePatchesNode.TargetSizeSource.ImageSizeH\x00\x1a<\n\tImageSize\x12\x17\n\x06height\x18\x01 \x01(\x03\x42\x07\xfa\x42\x04\"\x02(\x01\x12\x16\n\x05width\x18\x02 \x01(\x03\x42\x07\xfa\x42\x04\"\x02(\x01\x42\r\n\x06source\x12\x03\xf8\x42\x01\x42\x0f\n\r_session_info\"v\n\x11VirtualCameraNode\x12\x15\n\x04name\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12\x15\n\x04path\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12\x33\n\x10output_port_name\x18\x03 \x01(\tB\x19\xfa\x42\x16r\x14\x10\x01\x32\x10^[a-zA-Z0-9_-]+$\"\xb3\x02\n\x17ImageClassificationNode\x12\x0c\n\x04name\x18\x01 \x01(\t\x12M\n\x0binput_image\x18\x02 \x01(\tB8\xfa\x42\x35r3\x10\x01\x32/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$\x12<\n\x0cmodel_source\x18\x03 \x01(\x0b\x32\x1c.inference_graph.ModelSourceB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x33\n\x10output_port_name\x18\x04 \x01(\tB\x19\xfa\x42\x16r\x14\x10\x01\x32\x10^[a-zA-Z0-9_-]+$\x12\x37\n\x0csession_info\x18\x05 \x01(\x0b\x32\x1c.inference_graph.SessionInfoH\x00\x88\x01\x01\x42\x0f\n\r_session_info\"\xd2\x02\n\x18ImageObjectDetectionNode\x12\x0c\n\x04name\x18\x01 \x01(\t\x12M\n\x0binput_image\x18\x02 \x01(\tB8\xfa\x42\x35r3\x10\x01\x32/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$\x12<\n\x0cmodel_source\x18\x03 \x01(\x0b\x32\x1c.inference_graph.ModelSourceB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x1c\n\x14scale_bounding_boxes\x18\x04 \x01(\x08\x12\x33\n\x10output_port_name\x18\x05 \x01(\tB\x19\xfa\x42\x16r\x14\x10\x01\x32\x10^[a-zA-Z0-9_-]+$\x12\x37\n\x0csession_info\x18\x06 \x01(\x0b\x32\x1c.inference_graph.SessionInfoH\x00\x88\x01\x01\x42\x0f\n\r_session_info\"\xa8\x02\n\x0cImageOcrNode\x12\x0c\n\x04name\x18\x01 \x01(\t\x12M\n\x0binput_image\x18\x02 \x01(\tB8\xfa\x42\x35r3\x10\x01\x32/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$\x12<\n\x0cmodel_source\x18\x03 \x01(\x0b\x32\x1c.inference_graph.ModelSourceB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x33\n\x10output_port_name\x18\x04 \x01(\tB\x19\xfa\x42\x16r\x14\x10\x01\x32\x10^[a-zA-Z0-9_-]+$\x12\x37\n\x0csession_info\x18\x05 \x01(\x0b\x32\x1c.inference_graph.SessionInfoH\x00\x88\x01\x01\x42\x0f\n\r_session_info\"\xb1\x02\n\x15ImageSegmentationNode\x12\x0c\n\x04name\x18\x01 \x01(\t\x12M\n\x0binput_image\x18\x02 \x01(\tB8\xfa\x42\x35r3\x10\x01\x32/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$\x12<\n\x0cmodel_source\x18\x03 \x01(\x0b\x32\x1c.inference_graph.ModelSourceB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x33\n\x10output_port_name\x18\x04 \x01(\tB\x19\xfa\x42\x16r\x14\x10\x01\x32\x10^[a-zA-Z0-9_-]+$\x12\x37\n\x0csession_info\x18\x05 \x01(\x0b\x32\x1c.inference_graph.SessionInfoH\x00\x88\x01\x01\x42\x0f\n\r_session_info\"\xf7\x02\n\x1dImageInstanceSegmentationNode\x12\x0c\n\x04name\x18\x01 \x01(\t\x12M\n\x0binput_image\x18\x02 \x01(\tB8\xfa\x42\x35r3\x10\x01\x32/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$\x12<\n\x0cmodel_source\x18\x03 \x01(\x0b\x32\x1c.inference_graph.ModelSourceB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x38\n\x15output_bounding_boxes\x18\x04 \x01(\tB\x19\xfa\x42\x16r\x14\x10\x01\x32\x10^[a-zA-Z0-9_-]+$\x12\x37\n\x14output_segmentations\x18\x05 \x01(\tB\x19\xfa\x42\x16r\x14\x10\x01\x32\x10^[a-zA-Z0-9_-]+$\x12\x37\n\x0csession_info\x18\x06 \x01(\x0b\x32\x1c.inference_graph.SessionInfoH\x00\x88\x01\x01\x42\x0f\n\r_session_info\"\xf3\x02\n\x19ImageAnomalyDetectionNode\x12\x0c\n\x04name\x18\x01 \x01(\t\x12M\n\x0binput_image\x18\x02 \x01(\tB8\xfa\x42\x35r3\x10\x01\x32/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$\x12<\n\x0cmodel_source\x18\x03 \x01(\x0b\x32\x1c.inference_graph.ModelSourceB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01\x12\x38\n\x15output_anomaly_scores\x18\x04 \x01(\tB\x19\xfa\x42\x16r\x14\x10\x01\x32\x10^[a-zA-Z0-9_-]+$\x12\x37\n\x14output_segmentations\x18\x05 \x01(\tB\x19\xfa\x42\x16r\x14\x10\x01\x32\x10^[a-zA-Z0-9_-]+$\x12\x37\n\x0csession_info\x18\x06 \x01(\x0b\x32\x1c.inference_graph.SessionInfoH\x00\x88\x01\x01\x42\x0f\n\r_session_info\"\xfd\x04\n\x15\x42oundingBoxFilterNode\x12\x15\n\x04name\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01\x12V\n\x14input_bounding_boxes\x18\x02 \x01(\tB8\xfa\x42\x35r3\x10\x01\x32/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$\x12\x33\n\x10output_port_name\x18\x03 \x01(\tB\x19\xfa\x42\x16r\x14\x10\x01\x32\x10^[a-zA-Z0-9_-]+$\x12Z\n\x15input_score_threshold\x18\x04 \x01(\x0b\x32\x36.inference_graph.BoundingBoxFilterNode.ThresholdSourceH\x00\x88\x01\x01\x12X\n\x13input_iou_threshold\x18\x05 \x01(\x0b\x32\x36.inference_graph.BoundingBoxFilterNode.ThresholdSourceH\x01\x88\x01\x01\x12\x37\n\x0csession_info\x18\x06 \x01(\x0b\x32\x1c.inference_graph.SessionInfoH\x02\x88\x01\x01\x1a\x8d\x01\n\x0fThresholdSource\x12I\n\x05topic\x18\x01 \x01(\tB8\xfa\x42\x35r3\x10\x01\x32/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$H\x00\x12 \n\x05value\x18\x02 \x01(\x02\x42\x0f\xfa\x42\x0c\n\n\x1d\x00\x00\x80?-\x00\x00\x00\x00H\x00\x42\r\n\x06source\x12\x03\xf8\x42\x01\x42\x18\n\x16_input_score_thresholdB\x16\n\x14_input_iou_thresholdB\x0f\n\r_session_info\"\xbb\x06\n\x04Node\x12=\n\x11\x63onst_tensor_node\x18\x01 \x01(\x0b\x32 .inference_graph.ConstTensorNodeH\x00\x12=\n\x11image_resize_node\x18\x02 \x01(\x0b\x32 .inference_graph.ImageResizeNodeH\x00\x12?\n\x12image_patches_node\x18\x03 \x01(\x0b\x32!.inference_graph.ImagePatchesNodeH\x00\x12\x41\n\x13virtual_camera_node\x18\x04 \x01(\x0b\x32\".inference_graph.VirtualCameraNodeH\x00\x12M\n\x19image_classification_node\x18\x05 \x01(\x0b\x32(.inference_graph.ImageClassificationNodeH\x00\x12P\n\x1bimage_object_detection_node\x18\x06 \x01(\x0b\x32).inference_graph.ImageObjectDetectionNodeH\x00\x12\x37\n\x0eimage_ocr_node\x18\x07 \x01(\x0b\x32\x1d.inference_graph.ImageOcrNodeH\x00\x12J\n\x18\x62ounding_box_filter_node\x18\x08 \x01(\x0b\x32&.inference_graph.BoundingBoxFilterNodeH\x00\x12I\n\x17image_segmentation_node\x18\t \x01(\x0b\x32&.inference_graph.ImageSegmentationNodeH\x00\x12Z\n image_instance_segmentation_node\x18\n \x01(\x0b\x32..inference_graph.ImageInstanceSegmentationNodeH\x00\x12R\n\x1cimage_anomaly_detection_node\x18\x0b \x01(\x0b\x32*.inference_graph.ImageAnomalyDetectionNodeH\x00\x42\x10\n\tnode_type\x12\x03\xf8\x42\x01\"_\n\x05Graph\x12$\n\x05nodes\x18\x01 \x03(\x0b\x32\x15.inference_graph.Node\x12\x12\n\ncreated_at\x18\x02 \x01(\x03\x12\x1c\n\nlicense_id\x18\x03 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01*B\n\x11\x45xecutionProvider\x12\x07\n\x03\x43PU\x10\x00\x12\x08\n\x04\x43UDA\x10\x01\x12\x0c\n\x08\x44IRECTML\x10\x02\x12\x0c\n\x08TENSORRT\x10\x03\x42NZ0github.com/DENKweit/denkproto-go/inference_graph\xaa\x02\x19\x44\x45NK.Proto.InferenceGraphb\x06proto3')
|
|
30
|
+
|
|
31
|
+
_globals = globals()
|
|
32
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
33
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'inference_graph_pb2', _globals)
|
|
34
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
35
|
+
_globals['DESCRIPTOR']._loaded_options = None
|
|
36
|
+
_globals['DESCRIPTOR']._serialized_options = b'Z0github.com/DENKweit/denkproto-go/inference_graph\252\002\031DENK.Proto.InferenceGraph'
|
|
37
|
+
_globals['_MODELSOURCE'].oneofs_by_name['source_type']._loaded_options = None
|
|
38
|
+
_globals['_MODELSOURCE'].oneofs_by_name['source_type']._serialized_options = b'\370B\001'
|
|
39
|
+
_globals['_MODELSOURCE'].fields_by_name['from_network_id']._loaded_options = None
|
|
40
|
+
_globals['_MODELSOURCE'].fields_by_name['from_network_id']._serialized_options = b'\372B\005r\003\260\001\001'
|
|
41
|
+
_globals['_MODELSOURCE'].fields_by_name['from_network_experiment_id']._loaded_options = None
|
|
42
|
+
_globals['_MODELSOURCE'].fields_by_name['from_network_experiment_id']._serialized_options = b'\372B\005r\003\260\001\001'
|
|
43
|
+
_globals['_SESSIONINFO'].fields_by_name['execution_provider']._loaded_options = None
|
|
44
|
+
_globals['_SESSIONINFO'].fields_by_name['execution_provider']._serialized_options = b'\372B\005\202\001\002\020\001'
|
|
45
|
+
_globals['_SESSIONINFO'].fields_by_name['device_id']._loaded_options = None
|
|
46
|
+
_globals['_SESSIONINFO'].fields_by_name['device_id']._serialized_options = b'\372B\004\032\002(\000'
|
|
47
|
+
_globals['_CONSTTENSORNODE'].oneofs_by_name['data_type']._loaded_options = None
|
|
48
|
+
_globals['_CONSTTENSORNODE'].oneofs_by_name['data_type']._serialized_options = b'\370B\001'
|
|
49
|
+
_globals['_CONSTTENSORNODE'].fields_by_name['name']._loaded_options = None
|
|
50
|
+
_globals['_CONSTTENSORNODE'].fields_by_name['name']._serialized_options = b'\372B\004r\002\020\001'
|
|
51
|
+
_globals['_CONSTTENSORNODE'].fields_by_name['output_port_name']._loaded_options = None
|
|
52
|
+
_globals['_CONSTTENSORNODE'].fields_by_name['output_port_name']._serialized_options = b'\372B\026r\024\020\0012\020^[a-zA-Z0-9_-]+$'
|
|
53
|
+
_globals['_IMAGERESIZENODE'].fields_by_name['name']._loaded_options = None
|
|
54
|
+
_globals['_IMAGERESIZENODE'].fields_by_name['name']._serialized_options = b'\372B\004r\002\020\001'
|
|
55
|
+
_globals['_IMAGERESIZENODE'].fields_by_name['input_size']._loaded_options = None
|
|
56
|
+
_globals['_IMAGERESIZENODE'].fields_by_name['input_size']._serialized_options = b'\372B5r3\020\0012/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$'
|
|
57
|
+
_globals['_IMAGERESIZENODE'].fields_by_name['input_image']._loaded_options = None
|
|
58
|
+
_globals['_IMAGERESIZENODE'].fields_by_name['input_image']._serialized_options = b'\372B5r3\020\0012/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$'
|
|
59
|
+
_globals['_IMAGERESIZENODE'].fields_by_name['output_port_name']._loaded_options = None
|
|
60
|
+
_globals['_IMAGERESIZENODE'].fields_by_name['output_port_name']._serialized_options = b'\372B\026r\024\020\0012\020^[a-zA-Z0-9_-]+$'
|
|
61
|
+
_globals['_IMAGEPATCHESNODE_TARGETSIZESOURCE_IMAGESIZE'].fields_by_name['height']._loaded_options = None
|
|
62
|
+
_globals['_IMAGEPATCHESNODE_TARGETSIZESOURCE_IMAGESIZE'].fields_by_name['height']._serialized_options = b'\372B\004\"\002(\001'
|
|
63
|
+
_globals['_IMAGEPATCHESNODE_TARGETSIZESOURCE_IMAGESIZE'].fields_by_name['width']._loaded_options = None
|
|
64
|
+
_globals['_IMAGEPATCHESNODE_TARGETSIZESOURCE_IMAGESIZE'].fields_by_name['width']._serialized_options = b'\372B\004\"\002(\001'
|
|
65
|
+
_globals['_IMAGEPATCHESNODE_TARGETSIZESOURCE'].oneofs_by_name['source']._loaded_options = None
|
|
66
|
+
_globals['_IMAGEPATCHESNODE_TARGETSIZESOURCE'].oneofs_by_name['source']._serialized_options = b'\370B\001'
|
|
67
|
+
_globals['_IMAGEPATCHESNODE_TARGETSIZESOURCE'].fields_by_name['topic']._loaded_options = None
|
|
68
|
+
_globals['_IMAGEPATCHESNODE_TARGETSIZESOURCE'].fields_by_name['topic']._serialized_options = b'\372B5r3\020\0012/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$'
|
|
69
|
+
_globals['_IMAGEPATCHESNODE'].fields_by_name['name']._loaded_options = None
|
|
70
|
+
_globals['_IMAGEPATCHESNODE'].fields_by_name['name']._serialized_options = b'\372B\004r\002\020\001'
|
|
71
|
+
_globals['_IMAGEPATCHESNODE'].fields_by_name['input_image']._loaded_options = None
|
|
72
|
+
_globals['_IMAGEPATCHESNODE'].fields_by_name['input_image']._serialized_options = b'\372B5r3\020\0012/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$'
|
|
73
|
+
_globals['_IMAGEPATCHESNODE'].fields_by_name['input_bounding_boxes']._loaded_options = None
|
|
74
|
+
_globals['_IMAGEPATCHESNODE'].fields_by_name['input_bounding_boxes']._serialized_options = b'\372B5r3\020\0012/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$'
|
|
75
|
+
_globals['_IMAGEPATCHESNODE'].fields_by_name['input_target_size']._loaded_options = None
|
|
76
|
+
_globals['_IMAGEPATCHESNODE'].fields_by_name['input_target_size']._serialized_options = b'\372B\005\212\001\002\020\001'
|
|
77
|
+
_globals['_IMAGEPATCHESNODE'].fields_by_name['output_port_name']._loaded_options = None
|
|
78
|
+
_globals['_IMAGEPATCHESNODE'].fields_by_name['output_port_name']._serialized_options = b'\372B\026r\024\020\0012\020^[a-zA-Z0-9_-]+$'
|
|
79
|
+
_globals['_VIRTUALCAMERANODE'].fields_by_name['name']._loaded_options = None
|
|
80
|
+
_globals['_VIRTUALCAMERANODE'].fields_by_name['name']._serialized_options = b'\372B\004r\002\020\001'
|
|
81
|
+
_globals['_VIRTUALCAMERANODE'].fields_by_name['path']._loaded_options = None
|
|
82
|
+
_globals['_VIRTUALCAMERANODE'].fields_by_name['path']._serialized_options = b'\372B\004r\002\020\001'
|
|
83
|
+
_globals['_VIRTUALCAMERANODE'].fields_by_name['output_port_name']._loaded_options = None
|
|
84
|
+
_globals['_VIRTUALCAMERANODE'].fields_by_name['output_port_name']._serialized_options = b'\372B\026r\024\020\0012\020^[a-zA-Z0-9_-]+$'
|
|
85
|
+
_globals['_IMAGECLASSIFICATIONNODE'].fields_by_name['input_image']._loaded_options = None
|
|
86
|
+
_globals['_IMAGECLASSIFICATIONNODE'].fields_by_name['input_image']._serialized_options = b'\372B5r3\020\0012/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$'
|
|
87
|
+
_globals['_IMAGECLASSIFICATIONNODE'].fields_by_name['model_source']._loaded_options = None
|
|
88
|
+
_globals['_IMAGECLASSIFICATIONNODE'].fields_by_name['model_source']._serialized_options = b'\372B\005\212\001\002\020\001'
|
|
89
|
+
_globals['_IMAGECLASSIFICATIONNODE'].fields_by_name['output_port_name']._loaded_options = None
|
|
90
|
+
_globals['_IMAGECLASSIFICATIONNODE'].fields_by_name['output_port_name']._serialized_options = b'\372B\026r\024\020\0012\020^[a-zA-Z0-9_-]+$'
|
|
91
|
+
_globals['_IMAGEOBJECTDETECTIONNODE'].fields_by_name['input_image']._loaded_options = None
|
|
92
|
+
_globals['_IMAGEOBJECTDETECTIONNODE'].fields_by_name['input_image']._serialized_options = b'\372B5r3\020\0012/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$'
|
|
93
|
+
_globals['_IMAGEOBJECTDETECTIONNODE'].fields_by_name['model_source']._loaded_options = None
|
|
94
|
+
_globals['_IMAGEOBJECTDETECTIONNODE'].fields_by_name['model_source']._serialized_options = b'\372B\005\212\001\002\020\001'
|
|
95
|
+
_globals['_IMAGEOBJECTDETECTIONNODE'].fields_by_name['output_port_name']._loaded_options = None
|
|
96
|
+
_globals['_IMAGEOBJECTDETECTIONNODE'].fields_by_name['output_port_name']._serialized_options = b'\372B\026r\024\020\0012\020^[a-zA-Z0-9_-]+$'
|
|
97
|
+
_globals['_IMAGEOCRNODE'].fields_by_name['input_image']._loaded_options = None
|
|
98
|
+
_globals['_IMAGEOCRNODE'].fields_by_name['input_image']._serialized_options = b'\372B5r3\020\0012/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$'
|
|
99
|
+
_globals['_IMAGEOCRNODE'].fields_by_name['model_source']._loaded_options = None
|
|
100
|
+
_globals['_IMAGEOCRNODE'].fields_by_name['model_source']._serialized_options = b'\372B\005\212\001\002\020\001'
|
|
101
|
+
_globals['_IMAGEOCRNODE'].fields_by_name['output_port_name']._loaded_options = None
|
|
102
|
+
_globals['_IMAGEOCRNODE'].fields_by_name['output_port_name']._serialized_options = b'\372B\026r\024\020\0012\020^[a-zA-Z0-9_-]+$'
|
|
103
|
+
_globals['_IMAGESEGMENTATIONNODE'].fields_by_name['input_image']._loaded_options = None
|
|
104
|
+
_globals['_IMAGESEGMENTATIONNODE'].fields_by_name['input_image']._serialized_options = b'\372B5r3\020\0012/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$'
|
|
105
|
+
_globals['_IMAGESEGMENTATIONNODE'].fields_by_name['model_source']._loaded_options = None
|
|
106
|
+
_globals['_IMAGESEGMENTATIONNODE'].fields_by_name['model_source']._serialized_options = b'\372B\005\212\001\002\020\001'
|
|
107
|
+
_globals['_IMAGESEGMENTATIONNODE'].fields_by_name['output_port_name']._loaded_options = None
|
|
108
|
+
_globals['_IMAGESEGMENTATIONNODE'].fields_by_name['output_port_name']._serialized_options = b'\372B\026r\024\020\0012\020^[a-zA-Z0-9_-]+$'
|
|
109
|
+
_globals['_IMAGEINSTANCESEGMENTATIONNODE'].fields_by_name['input_image']._loaded_options = None
|
|
110
|
+
_globals['_IMAGEINSTANCESEGMENTATIONNODE'].fields_by_name['input_image']._serialized_options = b'\372B5r3\020\0012/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$'
|
|
111
|
+
_globals['_IMAGEINSTANCESEGMENTATIONNODE'].fields_by_name['model_source']._loaded_options = None
|
|
112
|
+
_globals['_IMAGEINSTANCESEGMENTATIONNODE'].fields_by_name['model_source']._serialized_options = b'\372B\005\212\001\002\020\001'
|
|
113
|
+
_globals['_IMAGEINSTANCESEGMENTATIONNODE'].fields_by_name['output_bounding_boxes']._loaded_options = None
|
|
114
|
+
_globals['_IMAGEINSTANCESEGMENTATIONNODE'].fields_by_name['output_bounding_boxes']._serialized_options = b'\372B\026r\024\020\0012\020^[a-zA-Z0-9_-]+$'
|
|
115
|
+
_globals['_IMAGEINSTANCESEGMENTATIONNODE'].fields_by_name['output_segmentations']._loaded_options = None
|
|
116
|
+
_globals['_IMAGEINSTANCESEGMENTATIONNODE'].fields_by_name['output_segmentations']._serialized_options = b'\372B\026r\024\020\0012\020^[a-zA-Z0-9_-]+$'
|
|
117
|
+
_globals['_IMAGEANOMALYDETECTIONNODE'].fields_by_name['input_image']._loaded_options = None
|
|
118
|
+
_globals['_IMAGEANOMALYDETECTIONNODE'].fields_by_name['input_image']._serialized_options = b'\372B5r3\020\0012/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$'
|
|
119
|
+
_globals['_IMAGEANOMALYDETECTIONNODE'].fields_by_name['model_source']._loaded_options = None
|
|
120
|
+
_globals['_IMAGEANOMALYDETECTIONNODE'].fields_by_name['model_source']._serialized_options = b'\372B\005\212\001\002\020\001'
|
|
121
|
+
_globals['_IMAGEANOMALYDETECTIONNODE'].fields_by_name['output_anomaly_scores']._loaded_options = None
|
|
122
|
+
_globals['_IMAGEANOMALYDETECTIONNODE'].fields_by_name['output_anomaly_scores']._serialized_options = b'\372B\026r\024\020\0012\020^[a-zA-Z0-9_-]+$'
|
|
123
|
+
_globals['_IMAGEANOMALYDETECTIONNODE'].fields_by_name['output_segmentations']._loaded_options = None
|
|
124
|
+
_globals['_IMAGEANOMALYDETECTIONNODE'].fields_by_name['output_segmentations']._serialized_options = b'\372B\026r\024\020\0012\020^[a-zA-Z0-9_-]+$'
|
|
125
|
+
_globals['_BOUNDINGBOXFILTERNODE_THRESHOLDSOURCE'].oneofs_by_name['source']._loaded_options = None
|
|
126
|
+
_globals['_BOUNDINGBOXFILTERNODE_THRESHOLDSOURCE'].oneofs_by_name['source']._serialized_options = b'\370B\001'
|
|
127
|
+
_globals['_BOUNDINGBOXFILTERNODE_THRESHOLDSOURCE'].fields_by_name['topic']._loaded_options = None
|
|
128
|
+
_globals['_BOUNDINGBOXFILTERNODE_THRESHOLDSOURCE'].fields_by_name['topic']._serialized_options = b'\372B5r3\020\0012/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$'
|
|
129
|
+
_globals['_BOUNDINGBOXFILTERNODE_THRESHOLDSOURCE'].fields_by_name['value']._loaded_options = None
|
|
130
|
+
_globals['_BOUNDINGBOXFILTERNODE_THRESHOLDSOURCE'].fields_by_name['value']._serialized_options = b'\372B\014\n\n\035\000\000\200?-\000\000\000\000'
|
|
131
|
+
_globals['_BOUNDINGBOXFILTERNODE'].fields_by_name['name']._loaded_options = None
|
|
132
|
+
_globals['_BOUNDINGBOXFILTERNODE'].fields_by_name['name']._serialized_options = b'\372B\004r\002\020\001'
|
|
133
|
+
_globals['_BOUNDINGBOXFILTERNODE'].fields_by_name['input_bounding_boxes']._loaded_options = None
|
|
134
|
+
_globals['_BOUNDINGBOXFILTERNODE'].fields_by_name['input_bounding_boxes']._serialized_options = b'\372B5r3\020\0012/^[a-zA-Z0-9_]+\\/[a-zA-Z0-9_]+([?]timeout=\\d+)?$'
|
|
135
|
+
_globals['_BOUNDINGBOXFILTERNODE'].fields_by_name['output_port_name']._loaded_options = None
|
|
136
|
+
_globals['_BOUNDINGBOXFILTERNODE'].fields_by_name['output_port_name']._serialized_options = b'\372B\026r\024\020\0012\020^[a-zA-Z0-9_-]+$'
|
|
137
|
+
_globals['_NODE'].oneofs_by_name['node_type']._loaded_options = None
|
|
138
|
+
_globals['_NODE'].oneofs_by_name['node_type']._serialized_options = b'\370B\001'
|
|
139
|
+
_globals['_GRAPH'].fields_by_name['license_id']._loaded_options = None
|
|
140
|
+
_globals['_GRAPH'].fields_by_name['license_id']._serialized_options = b'\372B\005r\003\260\001\001'
|
|
141
|
+
_globals['_EXECUTIONPROVIDER']._serialized_start=5488
|
|
142
|
+
_globals['_EXECUTIONPROVIDER']._serialized_end=5554
|
|
143
|
+
_globals['_MODELSOURCE']._serialized_start=79
|
|
144
|
+
_globals['_MODELSOURCE']._serialized_end=244
|
|
145
|
+
_globals['_SESSIONINFO']._serialized_start=246
|
|
146
|
+
_globals['_SESSIONINFO']._serialized_end=361
|
|
147
|
+
_globals['_CONSTTENSORNODE']._serialized_start=364
|
|
148
|
+
_globals['_CONSTTENSORNODE']._serialized_end=784
|
|
149
|
+
_globals['_CONSTTENSORNODE_UINT64ARRAY']._serialized_start=681
|
|
150
|
+
_globals['_CONSTTENSORNODE_UINT64ARRAY']._serialized_end=708
|
|
151
|
+
_globals['_CONSTTENSORNODE_INT64ARRAY']._serialized_start=710
|
|
152
|
+
_globals['_CONSTTENSORNODE_INT64ARRAY']._serialized_end=736
|
|
153
|
+
_globals['_CONSTTENSORNODE_FLOAT64ARRAY']._serialized_start=738
|
|
154
|
+
_globals['_CONSTTENSORNODE_FLOAT64ARRAY']._serialized_end=766
|
|
155
|
+
_globals['_IMAGERESIZENODE']._serialized_start=787
|
|
156
|
+
_globals['_IMAGERESIZENODE']._serialized_end=1111
|
|
157
|
+
_globals['_IMAGEPATCHESNODE']._serialized_start=1114
|
|
158
|
+
_globals['_IMAGEPATCHESNODE']._serialized_end=1789
|
|
159
|
+
_globals['_IMAGEPATCHESNODE_TARGETSIZESOURCE']._serialized_start=1524
|
|
160
|
+
_globals['_IMAGEPATCHESNODE_TARGETSIZESOURCE']._serialized_end=1772
|
|
161
|
+
_globals['_IMAGEPATCHESNODE_TARGETSIZESOURCE_IMAGESIZE']._serialized_start=1697
|
|
162
|
+
_globals['_IMAGEPATCHESNODE_TARGETSIZESOURCE_IMAGESIZE']._serialized_end=1757
|
|
163
|
+
_globals['_VIRTUALCAMERANODE']._serialized_start=1791
|
|
164
|
+
_globals['_VIRTUALCAMERANODE']._serialized_end=1909
|
|
165
|
+
_globals['_IMAGECLASSIFICATIONNODE']._serialized_start=1912
|
|
166
|
+
_globals['_IMAGECLASSIFICATIONNODE']._serialized_end=2219
|
|
167
|
+
_globals['_IMAGEOBJECTDETECTIONNODE']._serialized_start=2222
|
|
168
|
+
_globals['_IMAGEOBJECTDETECTIONNODE']._serialized_end=2560
|
|
169
|
+
_globals['_IMAGEOCRNODE']._serialized_start=2563
|
|
170
|
+
_globals['_IMAGEOCRNODE']._serialized_end=2859
|
|
171
|
+
_globals['_IMAGESEGMENTATIONNODE']._serialized_start=2862
|
|
172
|
+
_globals['_IMAGESEGMENTATIONNODE']._serialized_end=3167
|
|
173
|
+
_globals['_IMAGEINSTANCESEGMENTATIONNODE']._serialized_start=3170
|
|
174
|
+
_globals['_IMAGEINSTANCESEGMENTATIONNODE']._serialized_end=3545
|
|
175
|
+
_globals['_IMAGEANOMALYDETECTIONNODE']._serialized_start=3548
|
|
176
|
+
_globals['_IMAGEANOMALYDETECTIONNODE']._serialized_end=3919
|
|
177
|
+
_globals['_BOUNDINGBOXFILTERNODE']._serialized_start=3922
|
|
178
|
+
_globals['_BOUNDINGBOXFILTERNODE']._serialized_end=4559
|
|
179
|
+
_globals['_BOUNDINGBOXFILTERNODE_THRESHOLDSOURCE']._serialized_start=4351
|
|
180
|
+
_globals['_BOUNDINGBOXFILTERNODE_THRESHOLDSOURCE']._serialized_end=4492
|
|
181
|
+
_globals['_NODE']._serialized_start=4562
|
|
182
|
+
_globals['_NODE']._serialized_end=5389
|
|
183
|
+
_globals['_GRAPH']._serialized_start=5391
|
|
184
|
+
_globals['_GRAPH']._serialized_end=5486
|
|
185
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import modelfile_v2_pb2 as _modelfile_v2_pb2
|
|
2
|
+
import validate_pb2 as _validate_pb2
|
|
3
|
+
from google.protobuf.internal import containers as _containers
|
|
4
|
+
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
|
|
5
|
+
from google.protobuf import descriptor as _descriptor
|
|
6
|
+
from google.protobuf import message as _message
|
|
7
|
+
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
|
|
8
|
+
|
|
9
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
|
10
|
+
|
|
11
|
+
class ExecutionProvider(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
12
|
+
__slots__ = ()
|
|
13
|
+
CPU: _ClassVar[ExecutionProvider]
|
|
14
|
+
CUDA: _ClassVar[ExecutionProvider]
|
|
15
|
+
DIRECTML: _ClassVar[ExecutionProvider]
|
|
16
|
+
TENSORRT: _ClassVar[ExecutionProvider]
|
|
17
|
+
CPU: ExecutionProvider
|
|
18
|
+
CUDA: ExecutionProvider
|
|
19
|
+
DIRECTML: ExecutionProvider
|
|
20
|
+
TENSORRT: ExecutionProvider
|
|
21
|
+
|
|
22
|
+
class ModelSource(_message.Message):
|
|
23
|
+
__slots__ = ("from_proto", "from_network_id", "from_network_experiment_id")
|
|
24
|
+
FROM_PROTO_FIELD_NUMBER: _ClassVar[int]
|
|
25
|
+
FROM_NETWORK_ID_FIELD_NUMBER: _ClassVar[int]
|
|
26
|
+
FROM_NETWORK_EXPERIMENT_ID_FIELD_NUMBER: _ClassVar[int]
|
|
27
|
+
from_proto: _modelfile_v2_pb2.ModelFile
|
|
28
|
+
from_network_id: str
|
|
29
|
+
from_network_experiment_id: str
|
|
30
|
+
def __init__(self, from_proto: _Optional[_Union[_modelfile_v2_pb2.ModelFile, _Mapping]] = ..., from_network_id: _Optional[str] = ..., from_network_experiment_id: _Optional[str] = ...) -> None: ...
|
|
31
|
+
|
|
32
|
+
class SessionInfo(_message.Message):
|
|
33
|
+
__slots__ = ("execution_provider", "device_id")
|
|
34
|
+
EXECUTION_PROVIDER_FIELD_NUMBER: _ClassVar[int]
|
|
35
|
+
DEVICE_ID_FIELD_NUMBER: _ClassVar[int]
|
|
36
|
+
execution_provider: ExecutionProvider
|
|
37
|
+
device_id: int
|
|
38
|
+
def __init__(self, execution_provider: _Optional[_Union[ExecutionProvider, str]] = ..., device_id: _Optional[int] = ...) -> None: ...
|
|
39
|
+
|
|
40
|
+
class ConstTensorNode(_message.Message):
|
|
41
|
+
__slots__ = ("name", "shape", "uint64_data", "int64_data", "float64_data", "output_port_name")
|
|
42
|
+
class Uint64Array(_message.Message):
|
|
43
|
+
__slots__ = ("data",)
|
|
44
|
+
DATA_FIELD_NUMBER: _ClassVar[int]
|
|
45
|
+
data: _containers.RepeatedScalarFieldContainer[int]
|
|
46
|
+
def __init__(self, data: _Optional[_Iterable[int]] = ...) -> None: ...
|
|
47
|
+
class Int64Array(_message.Message):
|
|
48
|
+
__slots__ = ("data",)
|
|
49
|
+
DATA_FIELD_NUMBER: _ClassVar[int]
|
|
50
|
+
data: _containers.RepeatedScalarFieldContainer[int]
|
|
51
|
+
def __init__(self, data: _Optional[_Iterable[int]] = ...) -> None: ...
|
|
52
|
+
class Float64Array(_message.Message):
|
|
53
|
+
__slots__ = ("data",)
|
|
54
|
+
DATA_FIELD_NUMBER: _ClassVar[int]
|
|
55
|
+
data: _containers.RepeatedScalarFieldContainer[float]
|
|
56
|
+
def __init__(self, data: _Optional[_Iterable[float]] = ...) -> None: ...
|
|
57
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
58
|
+
SHAPE_FIELD_NUMBER: _ClassVar[int]
|
|
59
|
+
UINT64_DATA_FIELD_NUMBER: _ClassVar[int]
|
|
60
|
+
INT64_DATA_FIELD_NUMBER: _ClassVar[int]
|
|
61
|
+
FLOAT64_DATA_FIELD_NUMBER: _ClassVar[int]
|
|
62
|
+
OUTPUT_PORT_NAME_FIELD_NUMBER: _ClassVar[int]
|
|
63
|
+
name: str
|
|
64
|
+
shape: _containers.RepeatedScalarFieldContainer[int]
|
|
65
|
+
uint64_data: ConstTensorNode.Uint64Array
|
|
66
|
+
int64_data: ConstTensorNode.Int64Array
|
|
67
|
+
float64_data: ConstTensorNode.Float64Array
|
|
68
|
+
output_port_name: str
|
|
69
|
+
def __init__(self, name: _Optional[str] = ..., shape: _Optional[_Iterable[int]] = ..., uint64_data: _Optional[_Union[ConstTensorNode.Uint64Array, _Mapping]] = ..., int64_data: _Optional[_Union[ConstTensorNode.Int64Array, _Mapping]] = ..., float64_data: _Optional[_Union[ConstTensorNode.Float64Array, _Mapping]] = ..., output_port_name: _Optional[str] = ...) -> None: ...
|
|
70
|
+
|
|
71
|
+
class ImageResizeNode(_message.Message):
|
|
72
|
+
__slots__ = ("name", "input_size", "input_image", "output_port_name", "session_info")
|
|
73
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
74
|
+
INPUT_SIZE_FIELD_NUMBER: _ClassVar[int]
|
|
75
|
+
INPUT_IMAGE_FIELD_NUMBER: _ClassVar[int]
|
|
76
|
+
OUTPUT_PORT_NAME_FIELD_NUMBER: _ClassVar[int]
|
|
77
|
+
SESSION_INFO_FIELD_NUMBER: _ClassVar[int]
|
|
78
|
+
name: str
|
|
79
|
+
input_size: str
|
|
80
|
+
input_image: str
|
|
81
|
+
output_port_name: str
|
|
82
|
+
session_info: SessionInfo
|
|
83
|
+
def __init__(self, name: _Optional[str] = ..., input_size: _Optional[str] = ..., input_image: _Optional[str] = ..., output_port_name: _Optional[str] = ..., session_info: _Optional[_Union[SessionInfo, _Mapping]] = ...) -> None: ...
|
|
84
|
+
|
|
85
|
+
class ImagePatchesNode(_message.Message):
|
|
86
|
+
__slots__ = ("name", "input_image", "input_bounding_boxes", "input_target_size", "output_port_name", "session_info")
|
|
87
|
+
class TargetSizeSource(_message.Message):
|
|
88
|
+
__slots__ = ("topic", "size")
|
|
89
|
+
class ImageSize(_message.Message):
|
|
90
|
+
__slots__ = ("height", "width")
|
|
91
|
+
HEIGHT_FIELD_NUMBER: _ClassVar[int]
|
|
92
|
+
WIDTH_FIELD_NUMBER: _ClassVar[int]
|
|
93
|
+
height: int
|
|
94
|
+
width: int
|
|
95
|
+
def __init__(self, height: _Optional[int] = ..., width: _Optional[int] = ...) -> None: ...
|
|
96
|
+
TOPIC_FIELD_NUMBER: _ClassVar[int]
|
|
97
|
+
SIZE_FIELD_NUMBER: _ClassVar[int]
|
|
98
|
+
topic: str
|
|
99
|
+
size: ImagePatchesNode.TargetSizeSource.ImageSize
|
|
100
|
+
def __init__(self, topic: _Optional[str] = ..., size: _Optional[_Union[ImagePatchesNode.TargetSizeSource.ImageSize, _Mapping]] = ...) -> None: ...
|
|
101
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
102
|
+
INPUT_IMAGE_FIELD_NUMBER: _ClassVar[int]
|
|
103
|
+
INPUT_BOUNDING_BOXES_FIELD_NUMBER: _ClassVar[int]
|
|
104
|
+
INPUT_TARGET_SIZE_FIELD_NUMBER: _ClassVar[int]
|
|
105
|
+
OUTPUT_PORT_NAME_FIELD_NUMBER: _ClassVar[int]
|
|
106
|
+
SESSION_INFO_FIELD_NUMBER: _ClassVar[int]
|
|
107
|
+
name: str
|
|
108
|
+
input_image: str
|
|
109
|
+
input_bounding_boxes: str
|
|
110
|
+
input_target_size: ImagePatchesNode.TargetSizeSource
|
|
111
|
+
output_port_name: str
|
|
112
|
+
session_info: SessionInfo
|
|
113
|
+
def __init__(self, name: _Optional[str] = ..., input_image: _Optional[str] = ..., input_bounding_boxes: _Optional[str] = ..., input_target_size: _Optional[_Union[ImagePatchesNode.TargetSizeSource, _Mapping]] = ..., output_port_name: _Optional[str] = ..., session_info: _Optional[_Union[SessionInfo, _Mapping]] = ...) -> None: ...
|
|
114
|
+
|
|
115
|
+
class VirtualCameraNode(_message.Message):
|
|
116
|
+
__slots__ = ("name", "path", "output_port_name")
|
|
117
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
118
|
+
PATH_FIELD_NUMBER: _ClassVar[int]
|
|
119
|
+
OUTPUT_PORT_NAME_FIELD_NUMBER: _ClassVar[int]
|
|
120
|
+
name: str
|
|
121
|
+
path: str
|
|
122
|
+
output_port_name: str
|
|
123
|
+
def __init__(self, name: _Optional[str] = ..., path: _Optional[str] = ..., output_port_name: _Optional[str] = ...) -> None: ...
|
|
124
|
+
|
|
125
|
+
class ImageClassificationNode(_message.Message):
|
|
126
|
+
__slots__ = ("name", "input_image", "model_source", "output_port_name", "session_info")
|
|
127
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
128
|
+
INPUT_IMAGE_FIELD_NUMBER: _ClassVar[int]
|
|
129
|
+
MODEL_SOURCE_FIELD_NUMBER: _ClassVar[int]
|
|
130
|
+
OUTPUT_PORT_NAME_FIELD_NUMBER: _ClassVar[int]
|
|
131
|
+
SESSION_INFO_FIELD_NUMBER: _ClassVar[int]
|
|
132
|
+
name: str
|
|
133
|
+
input_image: str
|
|
134
|
+
model_source: ModelSource
|
|
135
|
+
output_port_name: str
|
|
136
|
+
session_info: SessionInfo
|
|
137
|
+
def __init__(self, name: _Optional[str] = ..., input_image: _Optional[str] = ..., model_source: _Optional[_Union[ModelSource, _Mapping]] = ..., output_port_name: _Optional[str] = ..., session_info: _Optional[_Union[SessionInfo, _Mapping]] = ...) -> None: ...
|
|
138
|
+
|
|
139
|
+
class ImageObjectDetectionNode(_message.Message):
|
|
140
|
+
__slots__ = ("name", "input_image", "model_source", "scale_bounding_boxes", "output_port_name", "session_info")
|
|
141
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
142
|
+
INPUT_IMAGE_FIELD_NUMBER: _ClassVar[int]
|
|
143
|
+
MODEL_SOURCE_FIELD_NUMBER: _ClassVar[int]
|
|
144
|
+
SCALE_BOUNDING_BOXES_FIELD_NUMBER: _ClassVar[int]
|
|
145
|
+
OUTPUT_PORT_NAME_FIELD_NUMBER: _ClassVar[int]
|
|
146
|
+
SESSION_INFO_FIELD_NUMBER: _ClassVar[int]
|
|
147
|
+
name: str
|
|
148
|
+
input_image: str
|
|
149
|
+
model_source: ModelSource
|
|
150
|
+
scale_bounding_boxes: bool
|
|
151
|
+
output_port_name: str
|
|
152
|
+
session_info: SessionInfo
|
|
153
|
+
def __init__(self, name: _Optional[str] = ..., input_image: _Optional[str] = ..., model_source: _Optional[_Union[ModelSource, _Mapping]] = ..., scale_bounding_boxes: bool = ..., output_port_name: _Optional[str] = ..., session_info: _Optional[_Union[SessionInfo, _Mapping]] = ...) -> None: ...
|
|
154
|
+
|
|
155
|
+
class ImageOcrNode(_message.Message):
|
|
156
|
+
__slots__ = ("name", "input_image", "model_source", "output_port_name", "session_info")
|
|
157
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
158
|
+
INPUT_IMAGE_FIELD_NUMBER: _ClassVar[int]
|
|
159
|
+
MODEL_SOURCE_FIELD_NUMBER: _ClassVar[int]
|
|
160
|
+
OUTPUT_PORT_NAME_FIELD_NUMBER: _ClassVar[int]
|
|
161
|
+
SESSION_INFO_FIELD_NUMBER: _ClassVar[int]
|
|
162
|
+
name: str
|
|
163
|
+
input_image: str
|
|
164
|
+
model_source: ModelSource
|
|
165
|
+
output_port_name: str
|
|
166
|
+
session_info: SessionInfo
|
|
167
|
+
def __init__(self, name: _Optional[str] = ..., input_image: _Optional[str] = ..., model_source: _Optional[_Union[ModelSource, _Mapping]] = ..., output_port_name: _Optional[str] = ..., session_info: _Optional[_Union[SessionInfo, _Mapping]] = ...) -> None: ...
|
|
168
|
+
|
|
169
|
+
class ImageSegmentationNode(_message.Message):
|
|
170
|
+
__slots__ = ("name", "input_image", "model_source", "output_port_name", "session_info")
|
|
171
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
172
|
+
INPUT_IMAGE_FIELD_NUMBER: _ClassVar[int]
|
|
173
|
+
MODEL_SOURCE_FIELD_NUMBER: _ClassVar[int]
|
|
174
|
+
OUTPUT_PORT_NAME_FIELD_NUMBER: _ClassVar[int]
|
|
175
|
+
SESSION_INFO_FIELD_NUMBER: _ClassVar[int]
|
|
176
|
+
name: str
|
|
177
|
+
input_image: str
|
|
178
|
+
model_source: ModelSource
|
|
179
|
+
output_port_name: str
|
|
180
|
+
session_info: SessionInfo
|
|
181
|
+
def __init__(self, name: _Optional[str] = ..., input_image: _Optional[str] = ..., model_source: _Optional[_Union[ModelSource, _Mapping]] = ..., output_port_name: _Optional[str] = ..., session_info: _Optional[_Union[SessionInfo, _Mapping]] = ...) -> None: ...
|
|
182
|
+
|
|
183
|
+
class ImageInstanceSegmentationNode(_message.Message):
|
|
184
|
+
__slots__ = ("name", "input_image", "model_source", "output_bounding_boxes", "output_segmentations", "session_info")
|
|
185
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
186
|
+
INPUT_IMAGE_FIELD_NUMBER: _ClassVar[int]
|
|
187
|
+
MODEL_SOURCE_FIELD_NUMBER: _ClassVar[int]
|
|
188
|
+
OUTPUT_BOUNDING_BOXES_FIELD_NUMBER: _ClassVar[int]
|
|
189
|
+
OUTPUT_SEGMENTATIONS_FIELD_NUMBER: _ClassVar[int]
|
|
190
|
+
SESSION_INFO_FIELD_NUMBER: _ClassVar[int]
|
|
191
|
+
name: str
|
|
192
|
+
input_image: str
|
|
193
|
+
model_source: ModelSource
|
|
194
|
+
output_bounding_boxes: str
|
|
195
|
+
output_segmentations: str
|
|
196
|
+
session_info: SessionInfo
|
|
197
|
+
def __init__(self, name: _Optional[str] = ..., input_image: _Optional[str] = ..., model_source: _Optional[_Union[ModelSource, _Mapping]] = ..., output_bounding_boxes: _Optional[str] = ..., output_segmentations: _Optional[str] = ..., session_info: _Optional[_Union[SessionInfo, _Mapping]] = ...) -> None: ...
|
|
198
|
+
|
|
199
|
+
class ImageAnomalyDetectionNode(_message.Message):
|
|
200
|
+
__slots__ = ("name", "input_image", "model_source", "output_anomaly_scores", "output_segmentations", "session_info")
|
|
201
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
202
|
+
INPUT_IMAGE_FIELD_NUMBER: _ClassVar[int]
|
|
203
|
+
MODEL_SOURCE_FIELD_NUMBER: _ClassVar[int]
|
|
204
|
+
OUTPUT_ANOMALY_SCORES_FIELD_NUMBER: _ClassVar[int]
|
|
205
|
+
OUTPUT_SEGMENTATIONS_FIELD_NUMBER: _ClassVar[int]
|
|
206
|
+
SESSION_INFO_FIELD_NUMBER: _ClassVar[int]
|
|
207
|
+
name: str
|
|
208
|
+
input_image: str
|
|
209
|
+
model_source: ModelSource
|
|
210
|
+
output_anomaly_scores: str
|
|
211
|
+
output_segmentations: str
|
|
212
|
+
session_info: SessionInfo
|
|
213
|
+
def __init__(self, name: _Optional[str] = ..., input_image: _Optional[str] = ..., model_source: _Optional[_Union[ModelSource, _Mapping]] = ..., output_anomaly_scores: _Optional[str] = ..., output_segmentations: _Optional[str] = ..., session_info: _Optional[_Union[SessionInfo, _Mapping]] = ...) -> None: ...
|
|
214
|
+
|
|
215
|
+
class BoundingBoxFilterNode(_message.Message):
|
|
216
|
+
__slots__ = ("name", "input_bounding_boxes", "output_port_name", "input_score_threshold", "input_iou_threshold", "session_info")
|
|
217
|
+
class ThresholdSource(_message.Message):
|
|
218
|
+
__slots__ = ("topic", "value")
|
|
219
|
+
TOPIC_FIELD_NUMBER: _ClassVar[int]
|
|
220
|
+
VALUE_FIELD_NUMBER: _ClassVar[int]
|
|
221
|
+
topic: str
|
|
222
|
+
value: float
|
|
223
|
+
def __init__(self, topic: _Optional[str] = ..., value: _Optional[float] = ...) -> None: ...
|
|
224
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
225
|
+
INPUT_BOUNDING_BOXES_FIELD_NUMBER: _ClassVar[int]
|
|
226
|
+
OUTPUT_PORT_NAME_FIELD_NUMBER: _ClassVar[int]
|
|
227
|
+
INPUT_SCORE_THRESHOLD_FIELD_NUMBER: _ClassVar[int]
|
|
228
|
+
INPUT_IOU_THRESHOLD_FIELD_NUMBER: _ClassVar[int]
|
|
229
|
+
SESSION_INFO_FIELD_NUMBER: _ClassVar[int]
|
|
230
|
+
name: str
|
|
231
|
+
input_bounding_boxes: str
|
|
232
|
+
output_port_name: str
|
|
233
|
+
input_score_threshold: BoundingBoxFilterNode.ThresholdSource
|
|
234
|
+
input_iou_threshold: BoundingBoxFilterNode.ThresholdSource
|
|
235
|
+
session_info: SessionInfo
|
|
236
|
+
def __init__(self, name: _Optional[str] = ..., input_bounding_boxes: _Optional[str] = ..., output_port_name: _Optional[str] = ..., input_score_threshold: _Optional[_Union[BoundingBoxFilterNode.ThresholdSource, _Mapping]] = ..., input_iou_threshold: _Optional[_Union[BoundingBoxFilterNode.ThresholdSource, _Mapping]] = ..., session_info: _Optional[_Union[SessionInfo, _Mapping]] = ...) -> None: ...
|
|
237
|
+
|
|
238
|
+
class Node(_message.Message):
|
|
239
|
+
__slots__ = ("const_tensor_node", "image_resize_node", "image_patches_node", "virtual_camera_node", "image_classification_node", "image_object_detection_node", "image_ocr_node", "bounding_box_filter_node", "image_segmentation_node", "image_instance_segmentation_node", "image_anomaly_detection_node")
|
|
240
|
+
CONST_TENSOR_NODE_FIELD_NUMBER: _ClassVar[int]
|
|
241
|
+
IMAGE_RESIZE_NODE_FIELD_NUMBER: _ClassVar[int]
|
|
242
|
+
IMAGE_PATCHES_NODE_FIELD_NUMBER: _ClassVar[int]
|
|
243
|
+
VIRTUAL_CAMERA_NODE_FIELD_NUMBER: _ClassVar[int]
|
|
244
|
+
IMAGE_CLASSIFICATION_NODE_FIELD_NUMBER: _ClassVar[int]
|
|
245
|
+
IMAGE_OBJECT_DETECTION_NODE_FIELD_NUMBER: _ClassVar[int]
|
|
246
|
+
IMAGE_OCR_NODE_FIELD_NUMBER: _ClassVar[int]
|
|
247
|
+
BOUNDING_BOX_FILTER_NODE_FIELD_NUMBER: _ClassVar[int]
|
|
248
|
+
IMAGE_SEGMENTATION_NODE_FIELD_NUMBER: _ClassVar[int]
|
|
249
|
+
IMAGE_INSTANCE_SEGMENTATION_NODE_FIELD_NUMBER: _ClassVar[int]
|
|
250
|
+
IMAGE_ANOMALY_DETECTION_NODE_FIELD_NUMBER: _ClassVar[int]
|
|
251
|
+
const_tensor_node: ConstTensorNode
|
|
252
|
+
image_resize_node: ImageResizeNode
|
|
253
|
+
image_patches_node: ImagePatchesNode
|
|
254
|
+
virtual_camera_node: VirtualCameraNode
|
|
255
|
+
image_classification_node: ImageClassificationNode
|
|
256
|
+
image_object_detection_node: ImageObjectDetectionNode
|
|
257
|
+
image_ocr_node: ImageOcrNode
|
|
258
|
+
bounding_box_filter_node: BoundingBoxFilterNode
|
|
259
|
+
image_segmentation_node: ImageSegmentationNode
|
|
260
|
+
image_instance_segmentation_node: ImageInstanceSegmentationNode
|
|
261
|
+
image_anomaly_detection_node: ImageAnomalyDetectionNode
|
|
262
|
+
def __init__(self, const_tensor_node: _Optional[_Union[ConstTensorNode, _Mapping]] = ..., image_resize_node: _Optional[_Union[ImageResizeNode, _Mapping]] = ..., image_patches_node: _Optional[_Union[ImagePatchesNode, _Mapping]] = ..., virtual_camera_node: _Optional[_Union[VirtualCameraNode, _Mapping]] = ..., image_classification_node: _Optional[_Union[ImageClassificationNode, _Mapping]] = ..., image_object_detection_node: _Optional[_Union[ImageObjectDetectionNode, _Mapping]] = ..., image_ocr_node: _Optional[_Union[ImageOcrNode, _Mapping]] = ..., bounding_box_filter_node: _Optional[_Union[BoundingBoxFilterNode, _Mapping]] = ..., image_segmentation_node: _Optional[_Union[ImageSegmentationNode, _Mapping]] = ..., image_instance_segmentation_node: _Optional[_Union[ImageInstanceSegmentationNode, _Mapping]] = ..., image_anomaly_detection_node: _Optional[_Union[ImageAnomalyDetectionNode, _Mapping]] = ...) -> None: ...
|
|
263
|
+
|
|
264
|
+
class Graph(_message.Message):
|
|
265
|
+
__slots__ = ("nodes", "created_at", "license_id")
|
|
266
|
+
NODES_FIELD_NUMBER: _ClassVar[int]
|
|
267
|
+
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
|
268
|
+
LICENSE_ID_FIELD_NUMBER: _ClassVar[int]
|
|
269
|
+
nodes: _containers.RepeatedCompositeFieldContainer[Node]
|
|
270
|
+
created_at: int
|
|
271
|
+
license_id: str
|
|
272
|
+
def __init__(self, nodes: _Optional[_Iterable[_Union[Node, _Mapping]]] = ..., created_at: _Optional[int] = ..., license_id: _Optional[str] = ...) -> None: ...
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
|
2
|
+
"""Client and server classes corresponding to protobuf-defined services."""
|
|
3
|
+
import grpc
|
|
4
|
+
import warnings
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
GRPC_GENERATED_VERSION = '1.68.0'
|
|
8
|
+
GRPC_VERSION = grpc.__version__
|
|
9
|
+
_version_not_supported = False
|
|
10
|
+
|
|
11
|
+
try:
|
|
12
|
+
from grpc._utilities import first_version_is_lower
|
|
13
|
+
_version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
|
|
14
|
+
except ImportError:
|
|
15
|
+
_version_not_supported = True
|
|
16
|
+
|
|
17
|
+
if _version_not_supported:
|
|
18
|
+
raise RuntimeError(
|
|
19
|
+
f'The grpc package installed is at version {GRPC_VERSION},'
|
|
20
|
+
+ f' but the generated code in inference_graph_pb2_grpc.py depends on'
|
|
21
|
+
+ f' grpcio>={GRPC_GENERATED_VERSION}.'
|
|
22
|
+
+ f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
|
|
23
|
+
+ f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
|
|
24
|
+
)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: classification_markup.schema..json
|
|
3
|
+
# timestamp: 2025-11-18T09:31:57+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import Annotated
|
|
8
|
+
from uuid import UUID
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Annotation(BaseModel):
|
|
14
|
+
model_config = ConfigDict(
|
|
15
|
+
extra='forbid',
|
|
16
|
+
)
|
|
17
|
+
id: UUID
|
|
18
|
+
label_id: UUID
|
|
19
|
+
value: Annotated[float, Field(ge=0.0, le=1.0)]
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class ClassificationMarkup(BaseModel):
|
|
23
|
+
model_config = ConfigDict(
|
|
24
|
+
extra='forbid',
|
|
25
|
+
)
|
|
26
|
+
height: Annotated[int, Field(ge=0)]
|
|
27
|
+
width: Annotated[int, Field(ge=0)]
|
|
28
|
+
annotations: list[Annotation]
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: geometry.schema.json
|
|
3
|
+
# timestamp: 2025-11-18T09:31:57+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import Annotated, Any, Optional
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field, RootModel
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class CommonGeometryTypes(RootModel[Any]):
|
|
13
|
+
root: Annotated[
|
|
14
|
+
Any,
|
|
15
|
+
Field(
|
|
16
|
+
description='Shared geometry definitions used across multiple schemas',
|
|
17
|
+
title='Common Geometry Types',
|
|
18
|
+
),
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class BoundingBox(BaseModel):
|
|
23
|
+
model_config = ConfigDict(
|
|
24
|
+
extra='forbid',
|
|
25
|
+
)
|
|
26
|
+
top_left_x: Annotated[float, Field(ge=0.0, le=1.0)]
|
|
27
|
+
top_left_y: Annotated[float, Field(ge=0.0, le=1.0)]
|
|
28
|
+
bottom_right_x: Annotated[float, Field(ge=0.0, le=1.0)]
|
|
29
|
+
bottom_right_y: Annotated[float, Field(ge=0.0, le=1.0)]
|
|
30
|
+
angle: Annotated[Optional[float], Field(description='Optional rotation angle')] = (
|
|
31
|
+
None
|
|
32
|
+
)
|
|
33
|
+
full_orientation: Annotated[
|
|
34
|
+
Optional[bool], Field(description='Optional full orientation flag')
|
|
35
|
+
] = None
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class Point(BaseModel):
|
|
39
|
+
model_config = ConfigDict(
|
|
40
|
+
extra='forbid',
|
|
41
|
+
)
|
|
42
|
+
x: Annotated[float, Field(ge=0.0, le=1.0)]
|
|
43
|
+
y: Annotated[float, Field(ge=0.0, le=1.0)]
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class PolygonRing(BaseModel):
|
|
47
|
+
model_config = ConfigDict(
|
|
48
|
+
extra='forbid',
|
|
49
|
+
)
|
|
50
|
+
hierarchy: Annotated[
|
|
51
|
+
int,
|
|
52
|
+
Field(
|
|
53
|
+
description='Nesting level: 0=outer, 1=hole in level 0, 2=poly in level 1 hole, etc. Even levels are filled areas, odd levels are holes.',
|
|
54
|
+
ge=0,
|
|
55
|
+
),
|
|
56
|
+
]
|
|
57
|
+
points: Annotated[
|
|
58
|
+
list[Point], Field(description='Vertices of the ring.', min_length=3)
|
|
59
|
+
]
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
class PolygonAnnotation(BaseModel):
|
|
63
|
+
model_config = ConfigDict(
|
|
64
|
+
extra='forbid',
|
|
65
|
+
)
|
|
66
|
+
rings: Annotated[
|
|
67
|
+
list[PolygonRing],
|
|
68
|
+
Field(
|
|
69
|
+
description='Array of polygon rings. The hierarchy field within each ring determines nesting and fill/hole status.'
|
|
70
|
+
),
|
|
71
|
+
]
|