From 556fee15373c14cd75d2d915e055f4a4b9800388 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel <guilhem.saurel@laas.fr> Date: Tue, 26 Nov 2019 14:53:26 +0100 Subject: [PATCH] add path.py.in, similar to path.hpp.in --- python/CMakeLists.txt | 3 +++ python/example_robot_data/path.py.in | 1 + python/example_robot_data/robots_loader.py | 17 ++++++++++++----- 3 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 python/example_robot_data/path.py.in diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index 998d2c4..ce69528 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -7,3 +7,6 @@ SET(${PROJECT_NAME}_PYTHON_FILES FOREACH(python ${${PROJECT_NAME}_PYTHON_FILES}) PYTHON_INSTALL_ON_SITE(${PY_NAME} ${python}) ENDFOREACH(python ${${PROJECT_NAME}_PYTHON_FILES}) + +CONFIGURE_FILE(${PY_NAME}/path.py.in ${PY_NAME}/path.py) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PY_NAME}/path.py DESTINATION "${PYTHON_SITELIB}/${PY_NAME}") diff --git a/python/example_robot_data/path.py.in b/python/example_robot_data/path.py.in new file mode 100644 index 0000000..c1b0976 --- /dev/null +++ b/python/example_robot_data/path.py.in @@ -0,0 +1 @@ +EXAMPLE_ROBOT_DATA_MODEL_DIR = "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/robots" diff --git a/python/example_robot_data/robots_loader.py b/python/example_robot_data/robots_loader.py index c2c8caa..00cdd8a 100644 --- a/python/example_robot_data/robots_loader.py +++ b/python/example_robot_data/robots_loader.py @@ -7,15 +7,22 @@ from pinocchio.robot_wrapper import RobotWrapper def getModelPath(subpath, printmsg=False): - base = '../../../share/example-robot-data/robots' - main_dir = dirname(dirname(dirname(__file__))) - for path in [join(dirname(main_dir), 'robots'), join(main_dir, 'robots') - ] + [join(p, base.strip('/')) for p in sys.path]: + paths = [ + join(dirname(dirname(dirname(dirname(__file__)))), 'robots'), + join(dirname(dirname(dirname(__file__))), 'robots') + ] + try: + from .path import EXAMPLE_ROBOT_DATA_MODEL_DIR + paths.append(EXAMPLE_ROBOT_DATA_MODEL_DIR) + except ImportError: + pass + paths += [join(p, '../../../share/example-robot-data/robots') for p in sys.path] + for path in paths: if exists(join(path, subpath.strip('/'))): if printmsg: print("using %s as modelPath" % path) return path - raise IOError('%s not found' % (subpath)) + raise IOError('%s not found' % subpath) def readParamsFromSrdf(robot, SRDF_PATH, verbose, has_rotor_parameters=True, referencePose='half_sitting'): -- GitLab