Best Python code snippet using slash
plugin_manager.py
Source:plugin_manager.py  
...130            warn_deprecation("In the future, dashes and underscore will not be allowed in plugin names - "131                             "spaces should be used instead (plugin name: {!r})".format(plugin_name))132        self._configure(plugin)133        self._installed[plugin_name] = PluginInfo(plugin, is_internal)134        self._cmd_line_to_name[self.normalize_command_line_name(plugin_name)] = plugin_name135        self._config_to_name[self.normalize_config_name(plugin_name)] = plugin_name136        if not hasattr(plugin, '__toggles__'):137            plugin.__toggles__ = {138                'session': gossip.Toggle(),139            }140        if activate:141            try:142                self.activate(plugin_name)143            except IncompatiblePlugin:144                exc_info = sys.exc_info()145                self.uninstall(plugin)146                reraise(*exc_info)147        if activate_later:148            self.activate_later(plugin_name)149    def install_builtin_plugins(self):150        for builtin_plugin_module in self._iter_builtin_plugin_modules():151            module = __import__(152                "slash.plugins.builtin.{}".format(builtin_plugin_module),153                fromlist=[""]154            )155            self.install(module.Plugin())156    def _iter_builtin_plugin_modules(self):157        builtin_dir = os.path.join(os.path.dirname(__file__), "builtin")158        for filename in os.listdir(builtin_dir):159            if filename.startswith("_") or filename.startswith(".") or not filename.endswith(".py"):160                continue161            yield filename[:-3]162    def uninstall(self, plugin):163        """164        Uninstalls a plugin165        """166        plugin = self._get_installed_plugin(plugin)167        try:168            self.deactivate(plugin)169        except IncompatiblePlugin:170            pass171        self._unconfigure(plugin)172        plugin_name = plugin.get_name()173        self._installed.pop(plugin_name)174        cmd_name = self.normalize_command_line_name(plugin_name)175        self._cmd_line_to_name.pop(cmd_name, None)176        config_name = self.normalize_config_name(plugin_name)177        self._config_to_name.pop(config_name, None)178    def uninstall_all(self):179        """180        Uninstalls all installed plugins181        """182        for plugin_info in list(itervalues(self._installed)):183            self.uninstall(plugin_info.plugin_instance)184        assert not self._installed185    def activate(self, plugin):186        """187        Activates a plugin, registering its hook callbacks to their respective hooks.188        :param plugin: either a plugin object or a plugin name189        """190        plugin = self._get_installed_plugin(plugin)191        plugin_name = plugin.get_name()192        if self._is_parallel_supported(plugin):193            _logger.warn("Activating plugin {} though it's configuration for parallel mode doesn't fit to current session".format(plugin.get_name()))194        plugin.activate()195        for hook, callback, kwargs in self._get_plugin_registrations(plugin):196            hook.register(callback, **kwargs)197        self._active.add(plugin_name)198    def activate_later(self, plugin):199        """200        Adds a plugin to the set of plugins pending activation. It can be remvoed from the queue with :meth:`.deactivate_later`201        .. seealso:: :meth:`.activate_pending_plugins`202        """203        self._pending_activation.add(self._get_installed_plugin(plugin).get_name())204    def deactivate_later(self, plugin):205        """206        Removes a plugin from the set of plugins pending activation.207        .. seealso:: :meth:`.activate_pending_plugins`208        """209        self._pending_deactivation.add(self._get_installed_plugin(plugin).get_name())210    def activate_pending_plugins(self):211        """212        Activates all plugins queued with :meth:`.activate_later`213        """214        while self._pending_activation:215            plugin_name = self._pending_activation.pop()216            if plugin_name not in self._pending_deactivation:217                self.activate(plugin_name)218        while self._pending_deactivation:219            plugin_name = self._pending_deactivation.pop()220            if plugin_name in self._active:221                self.deactivate(plugin_name)222    def normalize_command_line_name(self, plugin_name):223        return plugin_name.replace(' ', '-')224    def normalize_config_name(self, plugin_name):225        return plugin_name.replace(' ', '_')226    def deactivate(self, plugin):227        """228        Deactivates a plugin, unregistering all of its hook callbacks229        :param plugin: either a plugin object or a plugin name230        """231        plugin = self._get_installed_plugin(plugin)232        plugin_name = plugin.get_name()233        token = self._get_token(plugin_name)234        if plugin_name in self._active:235            gossip.get_global_group().unregister_token(token)236            self._active.discard(plugin_name)...slash_list_plugins.py
Source:slash_list_plugins.py  
...20    site.load()21    active = manager.get_future_active_plugins()22    for plugin in sorted(manager.get_installed_plugins(include_internals=False).values(), key=lambda p: p.get_name()):23        name = plugin.get_name()24        normalized_name = manager.normalize_command_line_name(name)25        _print(_title_style(name), end=' ')26        if name in active:27            _print(_enabled_style('active (use --without-{} to deactivate'.format(normalized_name)))28        else:29            _print(_disabled_style('inactive (use --with-{} to activate)'.format(normalized_name)))30        if plugin.__doc__:31            for line in plugin.__doc__.splitlines():32                if line.strip():33                    _print('\t', line.strip())...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
