def _create_command(self):
        """Placeholder docstring"""
        entrypoint_type = _entry_point_type.get(_env.code_dir, self._user_entry_point)

        if entrypoint_type is _entry_point_type.PYTHON_PACKAGE:
            entry_module = self._user_entry_point.replace(".py", "")
            return self._python_command() + ["-m", entry_module] + self._args
        elif entrypoint_type is _entry_point_type.PYTHON_PROGRAM:
            return self._python_command() + [self._user_entry_point] + self._args
        else:
            args = [
                six.moves.shlex_quote(arg)  # pylint: disable=too-many-function-args
                for arg in self._args
            ]
            return ["/bin/sh", "-c", "./%s %s" % (self._user_entry_point, " ".join(args))]
Example #2
0
    def _create_command(self):
        entrypoint_type = _entry_point_type.get(_env.code_dir,
                                                self._user_entry_point)

        if entrypoint_type is _entry_point_type.PYTHON_PACKAGE:
            entry_module = self._user_entry_point.replace('.py', '')
            return self._python_command() + ['-m', entry_module] + self._args
        elif entrypoint_type is _entry_point_type.PYTHON_PROGRAM:
            return self._python_command() + [self._user_entry_point
                                             ] + self._args
        else:
            return [
                '/bin/sh', '-c',
                './%s %s' % (self._user_entry_point, ' '.join(self._args))
            ]
    def _create_command(self):
        """Placeholder docstring"""
        entrypoint_type = _entry_point_type.get(_env.code_dir,
                                                self._user_entry_point)

        if entrypoint_type is _entry_point_type.PYTHON_PACKAGE:
            entry_module = self._user_entry_point.replace(".py", "")
            return self._python_command() + ["-m", entry_module] + self._args
        elif entrypoint_type is _entry_point_type.PYTHON_PROGRAM:
            return self._python_command() + [self._user_entry_point
                                             ] + self._args
        else:
            return [
                "/bin/sh", "-c",
                "./%s %s" % (self._user_entry_point, " ".join(self._args))
            ]
def install(name, dst, capture_error=False):
    """Install the user provided entry point to be executed as follow:
        - add the path to sys path
        - if the user entry point is a command, gives exec permissions to the script

    Args:
        name (str): name of the script or module.
        dst (str): path to directory with the script or module.
        capture_error (bool): Default false. If True, the running process captures the
            stderr, and appends it to the returned Exception message in case of errors.
    """
    if dst not in sys.path:
        sys.path.insert(0, dst)

    entrypoint_type = _entry_point_type.get(dst, name)
    if entrypoint_type is _entry_point_type.PYTHON_PACKAGE:
        _modules.install(dst, capture_error)
    if entrypoint_type is _entry_point_type.COMMAND:
        os.chmod(os.path.join(dst, name), 511)
Example #5
0
def test_get_program():
    assert _entry_point_type.get(
        "bla", "program.py") == _entry_point_type.PYTHON_PROGRAM
Example #6
0
def test_get_command(entry_point_type_script):
    assert _entry_point_type.get("bla",
                                 "program.sh") == _entry_point_type.COMMAND
Example #7
0
def test_get_package(entry_point_type_module):
    assert _entry_point_type.get(
        "bla", "program.py") == _entry_point_type.PYTHON_PACKAGE
def test_get_program():
    assert _entry_point_type.get('bla', 'program.py') == _entry_point_type.PYTHON_PROGRAM
def test_get_command(entry_point_type_script):
    assert _entry_point_type.get('bla', 'program.sh') == _entry_point_type.COMMAND
def test_get_package(entry_point_type_module):
    assert _entry_point_type.get('bla', 'program.py') == _entry_point_type.PYTHON_PACKAGE