diff --git a/src/bindings/python/src/openvino/frontend/frontend.py b/src/bindings/python/src/openvino/frontend/frontend.py index 09e23df2bf4c9a..4d549d24b4ef7c 100644 --- a/src/bindings/python/src/openvino/frontend/frontend.py +++ b/src/bindings/python/src/openvino/frontend/frontend.py @@ -15,8 +15,6 @@ def __init__(self, fe: FrontEndBase) -> None: super().__init__(fe) def convert(self, model: Union[Model, InputModel]) -> Model: - if isinstance(model, Model): - model = model._Model__model converted_model = super().convert(model) if isinstance(model, InputModel): return Model(converted_model) @@ -29,7 +27,7 @@ def decode(self, model: InputModel) -> Model: return Model(super().decode(model)) def normalize(self, model: Model) -> None: - super().normalize(model._Model__model) + super().normalize(model) class FrontEndManager(FrontEndManagerBase): diff --git a/src/bindings/python/src/pyopenvino/frontend/frontend.cpp b/src/bindings/python/src/pyopenvino/frontend/frontend.cpp index 758fb505f5f885..52707b0b8248ce 100644 --- a/src/bindings/python/src/pyopenvino/frontend/frontend.cpp +++ b/src/bindings/python/src/pyopenvino/frontend/frontend.cpp @@ -113,10 +113,13 @@ void regclass_frontend_FrontEnd(py::module m) { :rtype: openvino.runtime.Model )"); - fem.def("convert", - static_cast&) const>(&FrontEnd::convert), - py::arg("model"), - R"( + fem.def( + "convert", + [](FrontEnd& self, const py::object& ie_api_model) { + return self.convert(Common::utils::convert_to_model(ie_api_model)); + }, + py::arg("model"), + R"( Completely convert the remaining, not converted part of a function. :param model: Partially converted OpenVINO model. @@ -153,10 +156,13 @@ void regclass_frontend_FrontEnd(py::module m) { :rtype: openvino.runtime.Model )"); - fem.def("normalize", - &FrontEnd::normalize, - py::arg("model"), - R"( + fem.def( + "normalize", + [](FrontEnd& self, const py::object& ie_api_model) { + self.normalize(Common::utils::convert_to_model(ie_api_model)); + }, + py::arg("model"), + R"( Runs normalization passes on function that was loaded with partial conversion. :param model : Partially converted OpenVINO model. diff --git a/src/bindings/python/tests/test_runtime/test_model.py b/src/bindings/python/tests/test_runtime/test_model.py index f19eac63c11bb7..425cdb97129c69 100644 --- a/src/bindings/python/tests/test_runtime/test_model.py +++ b/src/bindings/python/tests/test_runtime/test_model.py @@ -829,16 +829,16 @@ def test_model_with_statement(): with Core().read_model(f"{model_save_dir}/model.xml") as model: assert mem_model.friendly_name == model.friendly_name - + with pytest.raises(AttributeError): save_model(model, f"{model_save_dir}/model.xml") # Behavior after exiting the context manager with mem_model as model: pass - assert type(mem_model) == Model + assert isinstance(mem_model, Model) with pytest.raises(AttributeError, match="attribute is no longer accessible."): - model.friendly_name + model.friendly_name @pytest.mark.skipif(sys.platform != "win32", reason="Windows only")