diff --git a/ngraph/python/src/pyngraph/frontend/frontend_manager.cpp b/ngraph/python/src/pyngraph/frontend/frontend_manager.cpp index a550f22e516..15f5a046a99 100644 --- a/ngraph/python/src/pyngraph/frontend/frontend_manager.cpp +++ b/ngraph/python/src/pyngraph/frontend/frontend_manager.cpp @@ -21,6 +21,10 @@ void regclass_pyngraph_FrontEndManager(py::module m) fem.def(py::init<>()); + // Empty pickle dumps are supported as FrontEndManager doesn't have any state + fem.def(py::pickle([](const ngraph::frontend::FrontEndManager&) { return py::make_tuple(0); }, + [](py::tuple t) { return ngraph::frontend::FrontEndManager(); })); + fem.def("get_available_front_ends", &ngraph::frontend::FrontEndManager::get_available_front_ends, R"( diff --git a/ngraph/python/tests/test_ngraph/test_frontendmanager.py b/ngraph/python/tests/test_ngraph/test_frontendmanager.py index 6c3d080657c..7ced949dff2 100644 --- a/ngraph/python/tests/test_ngraph/test_frontendmanager.py +++ b/ngraph/python/tests/test_ngraph/test_frontendmanager.py @@ -1,13 +1,16 @@ # Copyright (C) 2018-2021 Intel Corporation # SPDX-License-Identifier: Apache-2.0 -import numpy as np -import pytest +import pickle from ngraph import PartialShape from ngraph.frontend import FrontEndCapabilities, FrontEndManager, InitializationFailure from ngraph.utils.types import get_element_type +import numpy as np + +import pytest + mock_available = True try: from pybind_mock_frontend import get_fe_stat, get_mdl_stat, get_place_stat @@ -24,6 +27,10 @@ mock_needed = pytest.mark.skipif(not mock_available, # ---------- FrontEnd tests --------------- +def test_pickle(): + pickle.dumps(fem) + + @mock_needed def test_load_by_framework_caps(): frontEnds = fem.get_available_front_ends()