diff --git a/src/bindings/python/CMakeLists.txt b/src/bindings/python/CMakeLists.txt index 9443f20380b..f075dc21250 100644 --- a/src/bindings/python/CMakeLists.txt +++ b/src/bindings/python/CMakeLists.txt @@ -198,13 +198,10 @@ endif() # Build the code # -if(Python3_VERSION_MINOR GREATER_EQUAL 11) - set(pybind11_min_version 2.9.2) -else() - set(pybind11_min_version 2.8.0) -endif() if(CMAKE_CROSSCOMPILING) set(pybind11_min_version 2.12.0) +else() + set(pybind11_min_version 2.10.0) endif() # search for FindPython3.cmake instead of legacy modules set(PYBIND11_FINDPYTHON ON) diff --git a/src/bindings/python/src/pyopenvino/core/common.cpp b/src/bindings/python/src/pyopenvino/core/common.cpp index 2fc2871159c..5d8a4a73d6b 100644 --- a/src/bindings/python/src/pyopenvino/core/common.cpp +++ b/src/bindings/python/src/pyopenvino/core/common.cpp @@ -37,24 +37,34 @@ py::dtype get_dtype(const ov::element::Type& ov_type) { return ov_type_to_dtype().at(ov_type); } -const std::map& dtype_to_ov_type() { - static const std::map dtype_to_ov_type_mapping = { - {"float16", ov::element::f16}, - {"float32", ov::element::f32}, - {"float64", ov::element::f64}, - {"int8", ov::element::i8}, - {"int16", ov::element::i16}, - {"int32", ov::element::i32}, - {"int64", ov::element::i64}, - {"uint8", ov::element::u8}, - {"uint16", ov::element::u16}, - {"uint32", ov::element::u32}, - {"uint64", ov::element::u64}, - {"bool", ov::element::boolean}, - {"bytes_", ov::element::string}, - {"str_", ov::element::string}, - {"bytes", ov::element::string}, - {"str", ov::element::string}, +const std::map& dtype_num_to_ov_type() { + static const std::map dtype_to_ov_type_mapping = { + {23, ov::element::f16}, // float16 + {11, ov::element::f32}, // float32 + {12, ov::element::f64}, // float64 + {1, ov::element::i8}, // int8 + {3, ov::element::i16}, // int16 +#ifdef _WIN32 + {7, ov::element::i32}, // int32 + {9, ov::element::i64}, // int64 +#else + {5, ov::element::i32}, // int32 + {7, ov::element::i64}, // int64 +#endif + {2, ov::element::u8}, // uint8 + {4, ov::element::u16}, // uint16 +#ifdef _WIN32 + {8, ov::element::u32}, // uint32 + {10, ov::element::u64}, // uint64 +#else + {6, ov::element::u32}, // uint32 + {8, ov::element::u64}, // uint64 +#endif + {0, ov::element::boolean}, // bool + {18, ov::element::string}, // bytes_ + {19, ov::element::string}, // str_ + {18, ov::element::string}, // bytes + {19, ov::element::string}, // str }; return dtype_to_ov_type_mapping; } @@ -66,7 +76,7 @@ ov::element::Type get_ov_type(const py::array& array) { if (ctype == 'U' || ctype == 'S') { return ov::element::string; } - return dtype_to_ov_type().at(py::str(array.dtype())); + return dtype_num_to_ov_type().at(array.dtype().num()); } ov::element::Type get_ov_type(py::dtype& dtype) { @@ -76,7 +86,7 @@ ov::element::Type get_ov_type(py::dtype& dtype) { if (ctype == 'U' || ctype == 'S') { return ov::element::string; } - return dtype_to_ov_type().at(py::str(dtype)); + return dtype_num_to_ov_type().at(dtype.num()); } }; // namespace type_helpers diff --git a/src/bindings/python/src/pyopenvino/core/common.hpp b/src/bindings/python/src/pyopenvino/core/common.hpp index a4b52e90ef0..374a31e7ece 100644 --- a/src/bindings/python/src/pyopenvino/core/common.hpp +++ b/src/bindings/python/src/pyopenvino/core/common.hpp @@ -47,7 +47,7 @@ const std::map& ov_type_to_dtype(); py::dtype get_dtype(const ov::element::Type& ov_type); -const std::map& dtype_to_ov_type(); +const std::map& dtype_num_to_ov_type(); ov::element::Type get_ov_type(const py::array& array); diff --git a/tools/mo/unit_tests/mock_mo_frontend/mock_mo_python_api/CMakeLists.txt b/tools/mo/unit_tests/mock_mo_frontend/mock_mo_python_api/CMakeLists.txt index b8a14a48f6f..48ced7c8624 100644 --- a/tools/mo/unit_tests/mock_mo_frontend/mock_mo_python_api/CMakeLists.txt +++ b/tools/mo/unit_tests/mock_mo_frontend/mock_mo_python_api/CMakeLists.txt @@ -25,13 +25,10 @@ set(PYBIND_FE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/mock_mo_python_api.cpp) source_group("src" FILES ${PYBIND_FE_SRC}) -if(Python3_VERSION_MINOR GREATER_EQUAL 11) - set(pybind11_min_version 2.9.2) -else() - set(pybind11_min_version 2.8.0) -endif() if(CMAKE_CROSSCOMPILING) set(pybind11_min_version 2.12.0) +else() + set(pybind11_min_version 2.10.0) endif() # search for FindPython3.cmake instead of legacy modules set(PYBIND11_FINDPYTHON ON)