WA to resolve conflict between paddlepaddle and protobuf 3.20.3 (#16315)
This commit is contained in:
parent
a46fc47e6a
commit
4411a6ea45
@ -25,10 +25,21 @@ ov_add_test_target(
|
||||
)
|
||||
|
||||
# Test model generating
|
||||
ov_check_pip_packages(REQUIREMENTS_FILE "${CMAKE_CURRENT_SOURCE_DIR}/requirements.txt"
|
||||
MESSAGE_MODE WARNING
|
||||
WARNING_MESSAGE "PaddlePaddle frontend unit tests will be skipped"
|
||||
RESULT_VAR paddlepaddle_FOUND)
|
||||
set(PADDLE_REQ "${CMAKE_CURRENT_SOURCE_DIR}/requirements.txt")
|
||||
if(PYTHONINTERP_FOUND)
|
||||
execute_process(
|
||||
COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/paddle_pip_check.py" ${PADDLE_REQ}
|
||||
RESULT_VARIABLE EXIT_CODE
|
||||
OUTPUT_VARIABLE OUTPUT_TEXT
|
||||
ERROR_VARIABLE ERROR_TEXT)
|
||||
endif()
|
||||
|
||||
if(NOT EXIT_CODE EQUAL 0)
|
||||
set(paddlepaddle_FOUND OFF)
|
||||
message(WARNING "Python requirement file ${PADDLE_REQ} is not installed, PaddlePaddle frontend unit tests will be skipped")
|
||||
else()
|
||||
set(paddlepaddle_FOUND ON)
|
||||
endif()
|
||||
|
||||
set(TEST_PADDLE_MODELS_DIRNAME test_model_zoo/paddle_test_models)
|
||||
target_compile_definitions(${TARGET_NAME} PRIVATE -D TEST_PADDLE_MODELS_DIRNAME=\"${TEST_PADDLE_MODELS_DIRNAME}/\")
|
||||
|
20
src/frontends/paddle/tests/paddle_pip_check.py
Normal file
20
src/frontends/paddle/tests/paddle_pip_check.py
Normal file
@ -0,0 +1,20 @@
|
||||
import pkg_resources
|
||||
import re
|
||||
import sys
|
||||
|
||||
req_file=sys.argv[1]
|
||||
|
||||
try:
|
||||
pkg_resources.require(open(req_file, mode='r'))
|
||||
except Exception as inst:
|
||||
pattern = re.compile(r"protobuf .*, Requirement.parse\('protobuf<=3\.20\.0,>=3\.1\.0'\), {'paddlepaddle'}")
|
||||
result = pattern.findall(str(inst))
|
||||
if len(result) == 0:
|
||||
raise inst
|
||||
else:
|
||||
env = pkg_resources.Environment()
|
||||
env['protobuf'].clear()
|
||||
env.add(pkg_resources.DistInfoDistribution(project_name="protobuf", version="3.20.0"))
|
||||
ws = pkg_resources.working_set
|
||||
reqs = pkg_resources.parse_requirements(open(req_file, mode='r'))
|
||||
dists = ws.resolve(reqs, env, replace_conflicting=True)
|
Loading…
Reference in New Issue
Block a user