nndeploy.dag.base 源代码

import nndeploy._nndeploy_internal as _C

from enum import Enum
from typing import Union
import numpy as np
import json

import nndeploy.base
import nndeploy.device


name_to_node_type = {
    "Input": _C.dag.NodeType.Input,
    "Output": _C.dag.NodeType.Output,
    "Intermediate": _C.dag.NodeType.Intermediate,
}


node_type_to_name = {v: k for k, v in name_to_node_type.items()}


[文档]class NodeType(_C.dag.NodeType): Input = _C.dag.NodeType.Input Output = _C.dag.NodeType.Output Intermediate = _C.dag.NodeType.Intermediate
[文档] @classmethod def from_name(cls, name: str): name_to_node_type = { "Input": cls.Input, "Output": cls.Output, "Intermediate": cls.Intermediate } if name not in name_to_node_type: raise ValueError(f"Unsupported node type: {name}") else: return cls(name_to_node_type[name])
name_to_io_type = { "kIOTypeNone": _C.dag.IOType.kIOTypeNone, "Bool": _C.dag.IOType.Bool, "Num": _C.dag.IOType.Num, "String": _C.dag.IOType.String, "Text": _C.dag.IOType.Text, "Json": _C.dag.IOType.Json, "Xml": _C.dag.IOType.Xml, "Csv": _C.dag.IOType.Csv, "Yaml": _C.dag.IOType.Yaml, "Binary": _C.dag.IOType.Binary, "Image": _C.dag.IOType.Image, "Video": _C.dag.IOType.Video, "Audio": _C.dag.IOType.Audio, "Camera": _C.dag.IOType.Camera, "Microphone": _C.dag.IOType.Microphone, "Model": _C.dag.IOType.Model, "Dir": _C.dag.IOType.Dir, "Any": _C.dag.IOType.Any, } io_type_to_name = {v: k for k, v in name_to_io_type.items()}
[文档]class IOType(_C.dag.IOType): kIOTypeNone = _C.dag.IOType.kIOTypeNone Bool = _C.dag.IOType.Bool Num = _C.dag.IOType.Num String = _C.dag.IOType.String Text = _C.dag.IOType.Text Json = _C.dag.IOType.Json Xml = _C.dag.IOType.Xml Csv = _C.dag.IOType.Csv Yaml = _C.dag.IOType.Yaml Binary = _C.dag.IOType.Binary Image = _C.dag.IOType.Image Video = _C.dag.IOType.Video Audio = _C.dag.IOType.Audio Camera = _C.dag.IOType.Camera Microphone = _C.dag.IOType.Microphone Model = _C.dag.IOType.Model Dir = _C.dag.IOType.Dir Any = _C.dag.IOType.Any
[文档] @classmethod def from_name(cls, name: str): name_to_io_type = { "kIOTypeNone": cls.kIOTypeNone, "Bool": cls.Bool, "Num": cls.Num, "String": cls.String, "Text": cls.Text, "Json": cls.Json, "Xml": cls.Xml, "Csv": cls.Csv, "Yaml": cls.Yaml, "Binary": cls.Binary, "Image": cls.Image, "Video": cls.Video, "Audio": cls.Audio, "Camera": cls.Camera, "Microphone": cls.Microphone, "Model": cls.Model, "Dir": cls.Dir, "Any": cls.Any, } if name not in name_to_io_type: raise ValueError(f"Unsupported io type: {name}") else: return cls(name_to_io_type[name])
[文档]def get_io_type_enum_json(): enum_list = [] for io_type_name, io_type_code in name_to_io_type.items(): enum_list.append(io_type_name) io_type_enum = {} for single_enum in enum_list: io_type_enum[f"{single_enum}"] = enum_list return io_type_enum
nndeploy.base.all_type_enum.append(get_io_type_enum_json) name_to_edge_type_flag = { "kBuffer": _C.dag.EdgeTypeFlag.kBuffer, "kCvMat": _C.dag.EdgeTypeFlag.kCvMat, "kTensor": _C.dag.EdgeTypeFlag.kTensor, "kParam": _C.dag.EdgeTypeFlag.kParam, "kAny": _C.dag.EdgeTypeFlag.kAny, "kNone": _C.dag.EdgeTypeFlag.kNone, } edge_type_flag_to_name = {v: k for k, v in name_to_edge_type_flag.items()}
[文档]class EdgeTypeFlag(_C.dag.EdgeTypeFlag): kBuffer = _C.dag.EdgeTypeFlag.kBuffer kCvMat = _C.dag.EdgeTypeFlag.kCvMat kTensor = _C.dag.EdgeTypeFlag.kTensor kParam = _C.dag.EdgeTypeFlag.kParam kAny = _C.dag.EdgeTypeFlag.kAny kNone = _C.dag.EdgeTypeFlag.kNone
[文档] @classmethod def from_name(cls, name: str): if name not in name_to_edge_type_flag: raise ValueError(f"Unsupported edge type flag: {name}") else: return cls(name_to_edge_type_flag[name])
[文档]class EdgeTypeInfo(_C.dag.EdgeTypeInfo):
[文档] def __init__(self): super().__init__()
@property def type_name(self) -> str: return self.type_name_ @type_name.setter def type_name(self, type_name: str): self.type_name_ = type_name @property def type(self) -> EdgeTypeFlag: return self.type_ @type.setter def type(self, type_val: EdgeTypeFlag): self.type_ = type_val @property def edge_name(self) -> str: return self.edge_name_ @edge_name.setter def edge_name(self, edge_name: str): self.edge_name_ = edge_name
[文档] def set_buffer_type(self): super().set_buffer_type()
[文档] def set_cvmat_type(self): super().set_cvmat_type()
[文档] def set_tensor_type(self): super().set_tensor_type()
[文档] def set_param_type(self): super().set_param_type()
[文档] def set_type(self, type_val: type): """设置输入输出类型信息 Args: type: 类型 Returns: None """ super().set_type(type_val)
[文档] def get_type(self) -> EdgeTypeFlag: return super().get_type()
[文档] def set_type_name(self, type_name: str): super().set_type_name(type_name)
[文档] def get_type_name(self) -> str: return super().get_type_name()
[文档] def get_unique_type_name(self) -> str: return super().get_unique_type_name()
[文档] def get_type_ptr(self): return super().get_type_ptr()
[文档] def is_buffer_type(self) -> bool: return super().is_buffer_type()
[文档] def is_cvmat_type(self) -> bool: return super().is_cvmat_type()
[文档] def is_tensor_type(self) -> bool: return super().is_tensor_type()
[文档] def is_param_type(self) -> bool: return super().is_param_type()
[文档] def check_buffer_type(self) -> bool: return super().check_buffer_type()
[文档] def check_cvmat_type(self) -> bool: return super().check_cvmat_type()
[文档] def check_tensor_type(self) -> bool: return super().check_tensor_type()
[文档] def check_param_type(self) -> bool: return super().check_param_type()
[文档] def set_edge_name(self, edge_name: str): super().set_edge_name(edge_name)
[文档] def get_edge_name(self) -> str: return super().get_edge_name()
[文档]def node_type_to_string(node_type) -> str: return _C.dag.node_type_to_string(node_type)
[文档]def string_to_node_type(node_type_str: str): return _C.dag.string_to_node_type(node_type_str)
[文档]def edge_type_to_string(edge_type) -> str: return _C.dag.edge_type_to_string(edge_type)
[文档]def string_to_edge_type(edge_type_str: str): return _C.dag.string_to_edge_type(edge_type_str)