1
0
mirror of https://github.com/gsi-upm/senpy synced 2025-09-18 04:22:21 +00:00

Added option to install dependencies in CLI

This commit is contained in:
J. Fernando Sánchez
2016-09-21 20:27:30 +02:00
parent 0d511ad3c3
commit 07b5dd3823
5 changed files with 34 additions and 11 deletions

View File

@@ -204,6 +204,21 @@ class Senpy(object):
def validate_info(cls, info):
return all(x in info for x in ('name', 'module', 'version'))
def install_deps(self):
for i in self.plugins.values():
self._install_deps(i._info)
@classmethod
def _install_deps(cls, info=None):
requirements = info.get('requirements', [])
if requirements:
pip_args = []
pip_args.append('install')
for req in requirements:
pip_args.append( req )
logger.info('Installing requirements: ' + str(requirements))
pip.main(pip_args)
@classmethod
def _load_plugin_from_info(cls, info, root):
if not cls.validate_info(info):
@@ -215,13 +230,7 @@ class Senpy(object):
sys.path.append(root)
(fp, pathname, desc) = imp.find_module(module, [root, ])
try:
if requirements:
pip_args = []
pip_args.append('install')
for req in requirements:
pip_args.append( req )
logger.info('Installing requirements: ' + str(requirements))
pip.main(pip_args)
cls._install_deps(info)
tmp = imp.load_module(module, fp, pathname, desc)
sys.path.remove(root)
candidate = None