From 6012f31e360930999bab852980f9f009c948097f Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Sun, 10 Sep 2023 14:18:16 -0700 Subject: [PATCH] llm plugins --all option, closes #259 --- docs/help.md | 1 + llm/__init__.py | 4 ++-- llm/cli.py | 5 +++-- llm/plugins.py | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/help.md b/docs/help.md index 0e218a5..dab0c9f 100644 --- a/docs/help.md +++ b/docs/help.md @@ -436,6 +436,7 @@ Usage: llm plugins [OPTIONS] List installed plugins Options: + --all Include built-in default plugins --help Show this message and exit. ``` diff --git a/llm/__init__.py b/llm/__init__.py index de9e4e2..6c21bbb 100644 --- a/llm/__init__.py +++ b/llm/__init__.py @@ -40,11 +40,11 @@ __all__ = [ ] -def get_plugins(): +def get_plugins(all=False): plugins = [] plugin_to_distinfo = dict(pm.list_plugin_distinfo()) for plugin in pm.get_plugins(): - if plugin.__name__.startswith("llm.default_plugins."): + if not all and plugin.__name__.startswith("llm.default_plugins."): continue plugin_info = { "name": plugin.__name__, diff --git a/llm/cli.py b/llm/cli.py index 74a5063..b9d5c89 100644 --- a/llm/cli.py +++ b/llm/cli.py @@ -927,9 +927,10 @@ def aliases_path(): @cli.command(name="plugins") -def plugins_list(): +@click.option("--all", help="Include built-in default plugins", is_flag=True) +def plugins_list(all): "List installed plugins" - click.echo(json.dumps(get_plugins(), indent=2)) + click.echo(json.dumps(get_plugins(all), indent=2)) def display_truncated(text): diff --git a/llm/plugins.py b/llm/plugins.py index 544cc00..15ea11d 100644 --- a/llm/plugins.py +++ b/llm/plugins.py @@ -28,7 +28,7 @@ if LLM_LOAD_PLUGINS is not None: mod = entry_point.load() pm.register(mod, name=entry_point.name) # Ensure name can be found in plugin_to_distinfo later: - pm._plugin_distinfo.append(mod, distribution) # type: ignore + pm._plugin_distinfo.append((mod, distribution)) # type: ignore except pkg_resources.DistributionNotFound: sys.stderr.write("Plugin {} could not be found\n".format(package_name))