leap-model-parser 0.1.245.dev4__tar.gz → 0.1.245.dev6__tar.gz
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.
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/PKG-INFO +1 -1
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/model_parser.py +29 -4
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/pyproject.toml +1 -1
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/LICENSE +0 -0
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/README.md +0 -0
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/__init__.py +0 -0
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/contract/__init__.py +0 -0
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/contract/graph.py +0 -0
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/contract/importmodelresponse.py +0 -0
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/contract/nodedata.py +0 -0
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/contract/ui_components.json +0 -0
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/keras_json_model_import.py +0 -0
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/leap_graph_editor.py +0 -0
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/utils/__init__.py +0 -0
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/utils/layerpedia/__init__.py +0 -0
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/utils/layerpedia/layerpedia.py +0 -0
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/utils/tlinspection/__init__.py +0 -0
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/utils/tlinspection/leapinspection.py +0 -0
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/utils/uicomponents/__init__.py +0 -0
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/utils/uicomponents/generatenodedata.py +0 -0
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/utils/uicomponents/tensorflowinscpection.py +0 -0
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/utils/uicomponents/ui_components.json +0 -0
- {leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/utils/uicomponents/ui_components_config.yaml +0 -0
{leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/model_parser.py
RENAMED
|
@@ -67,24 +67,43 @@ def _is_empty_file(path: str) -> bool:
|
|
|
67
67
|
return False
|
|
68
68
|
|
|
69
69
|
|
|
70
|
-
def
|
|
70
|
+
def _validate_model_file(
|
|
71
|
+
path: str,
|
|
72
|
+
kind: str,
|
|
73
|
+
onnx_model: Optional["onnx.ModelProto"] = None,
|
|
74
|
+
post_load_check: bool = False,
|
|
75
|
+
) -> None:
|
|
71
76
|
suffix = Path(path).suffix
|
|
72
77
|
if _is_empty_file(path):
|
|
73
78
|
raise InvalidModelFile(
|
|
74
79
|
f"The provided {kind} model file is empty (0 bytes). "
|
|
75
80
|
"Please provide a real model binary."
|
|
76
|
-
)
|
|
81
|
+
)
|
|
77
82
|
if _is_git_lfs_pointer(path):
|
|
78
83
|
raise InvalidModelFile(
|
|
79
84
|
f"This {suffix} file is a Git LFS pointer, not the actual model binary. "
|
|
80
85
|
"Run `git lfs pull` (or re-download the artifact) to fetch the real file."
|
|
81
|
-
)
|
|
86
|
+
)
|
|
82
87
|
snippet = _text_snippet(path)
|
|
83
88
|
if snippet is not None:
|
|
84
89
|
raise InvalidModelFile(
|
|
85
90
|
f"The provided model is not a real {kind} model binary although its suffix is {suffix}. "
|
|
86
91
|
f"File's content starts with:\n{snippet}."
|
|
87
|
-
)
|
|
92
|
+
)
|
|
93
|
+
if post_load_check and onnx_model is not None:
|
|
94
|
+
if (
|
|
95
|
+
len(onnx_model.graph.node) == 0
|
|
96
|
+
and len(onnx_model.graph.input) == 0
|
|
97
|
+
and len(onnx_model.graph.output) == 0
|
|
98
|
+
):
|
|
99
|
+
raise InvalidModelFile(
|
|
100
|
+
"The provided onnx model file appears to be empty or invalid "
|
|
101
|
+
"(no graph nodes, inputs, or outputs)."
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def _raise_model_file_error(path: str, kind: str, original_exc: Exception) -> None:
|
|
106
|
+
_validate_model_file(path, kind)
|
|
88
107
|
raise InvalidModelFile(f"Failed to open {kind} model file: {original_exc}") from original_exc
|
|
89
108
|
|
|
90
109
|
class ModelParser:
|
|
@@ -190,6 +209,12 @@ class ModelParser:
|
|
|
190
209
|
onnx_model = onnx.load_model(file_path)
|
|
191
210
|
except Exception as e:
|
|
192
211
|
_raise_model_file_error(file_path, "onnx", e)
|
|
212
|
+
_validate_model_file(
|
|
213
|
+
file_path,
|
|
214
|
+
"onnx",
|
|
215
|
+
onnx_model=onnx_model,
|
|
216
|
+
post_load_check=True,
|
|
217
|
+
)
|
|
193
218
|
input_all = [_input.name for _input in onnx_model.graph.input]
|
|
194
219
|
input_initializer = [
|
|
195
220
|
node.name for node in onnx_model.graph.initializer]
|
|
File without changes
|
|
File without changes
|
{leap_model_parser-0.1.245.dev4 → leap_model_parser-0.1.245.dev6}/leap_model_parser/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|