def __init__(
        self,
        pack,
        file_path,
        config=None,
        parameters=None,
        user=None,
        parent_args=None,
        log_level=PYTHON_RUNNER_DEFAULT_LOG_LEVEL,
    ):
        """
        :param pack: Name of the pack this action belongs to.
        :type pack: ``str``

        :param file_path: Path to the action module.
        :type file_path: ``str``

        :param config: Pack config.
        :type config: ``dict``

        :param parameters: action parameters.
        :type parameters: ``dict`` or ``None``

        :param user: Name of the user who triggered this action execution.
        :type user: ``str``

        :param parent_args: Command line arguments passed to the parent process.
        :type parse_args: ``list``
        """

        self._pack = pack
        self._file_path = file_path
        self._config = config or {}
        self._parameters = parameters or {}
        self._user = user
        self._parent_args = parent_args or []
        self._log_level = log_level

        self._class_name = None
        self._logger = logging.getLogger("PythonActionWrapper")

        try:
            st2common_config.parse_args(args=self._parent_args)
        except Exception as e:
            LOG.debug(
                "Failed to parse config using parent args (parent_args=%s): %s"
                % (str(self._parent_args), six.text_type(e))
            )

        # Note: We can only set a default user value if one is not provided after parsing the
        # config
        if not self._user:
            # Note: We use late import to avoid performance overhead
            from oslo_config import cfg

            self._user = cfg.CONF.system_user.user

        :param pack: Name of the pack this action belongs to.
        :type pack: ``str``

        :param file_path: Path to the action module.
        :type file_path: ``str``

        :param config: Pack config.
        :type config: ``dict``

        :param parameters: action parameters.
        :type parameters: ``dict`` or ``None``

        :param user: Name of the user who triggered this action execution.
        :type user: ``str``

        :param parent_args: Command line arguments passed to the parent process.
        :type parse_args: ``list``
        
contrib/runners/python_runner/python_runner/python_action_wrapper.py