def __init__(
        self,
        runner_id,
        config=None,
        timeout=PYTHON_RUNNER_DEFAULT_ACTION_TIMEOUT,
        log_level=None,
        sandbox=True,
        use_parent_args=True,
    ):

        """
        :param timeout: Action execution timeout in seconds.
        :type timeout: ``int``

        :param log_level: Log level to use for the child actions.
        :type log_level: ``str``

        :param sandbox: True to use python binary from pack-specific virtual environment for the
                        child action False to use a default system python binary from PATH.
        :type sandbox: ``bool``

        :param use_parent_args: True to use command line arguments from the parent process.
        :type use_parent_args: ``bool``
        """
        super(PythonRunner, self).__init__(runner_id=runner_id)

        self._config = config
        self._timeout = timeout
        self._enable_common_pack_libs = cfg.CONF.packs.enable_common_libs or False
        self._log_level = log_level or cfg.CONF.actionrunner.python_runner_log_level
        self._sandbox = sandbox
        self._use_parent_args = use_parent_args

        :param timeout: Action execution timeout in seconds.
        :type timeout: ``int``

        :param log_level: Log level to use for the child actions.
        :type log_level: ``str``

        :param sandbox: True to use python binary from pack-specific virtual environment for the
                        child action False to use a default system python binary from PATH.
        :type sandbox: ``bool``

        :param use_parent_args: True to use command line arguments from the parent process.
        :type use_parent_args: ``bool``
        
contrib/runners/python_runner/python_runner/python_runner.py