Skip to content

Commit

Permalink
Generate command reference in docs
Browse files Browse the repository at this point in the history
[noissue]
  • Loading branch information
mdellweg committed Sep 30, 2023
1 parent 2cab734 commit 8e8afde
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 28 deletions.
1 change: 1 addition & 0 deletions doc_requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
mkdocs
mkdocs-click
7 changes: 7 additions & 0 deletions docs/cli_reference.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
::: mkdocs-click
:module: pulp_cli
:command: main
:prog_name: pulp
:depth: 0
:list_subcommands: false
:style: plain
8 changes: 6 additions & 2 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,17 @@ markdown_extensions:
- toc:
permalink: True
- admonition
- attr_list
- mkdocs-click
nav:
- 'Overview': 'index.md'
- 'installation.md'
- 'configuration.md'
- 'using_the_cli.md'
- 'supported_workflows.md'
- 'advanced_features.md'
- 'CLI Command Reference': 'cli_reference.md'
- 'CHANGES.md'
- 'contributing.md'
- 'architecture.md'
- 'Developer material':
- 'contributing.md'
- 'architecture.md'
35 changes: 12 additions & 23 deletions pulp_cli/__init__.py
Original file line number Diff line number Diff line change
@@ -1,33 +1,22 @@
import typing as t
from types import ModuleType
from typing import Any, Dict, Optional

import click
import pkg_resources

__version__ = "0.22.0.dev"
_main: Optional[click.Group] = None


def load_plugins() -> click.Group:
global _main
##############################################################################
# Load plugins
# https://packaging.python.org/guides/creating-and-discovering-plugins/#using-package-metadata
discovered_plugins: t.Dict[str, ModuleType] = {
entry_point.name: entry_point.load()
for entry_point in pkg_resources.iter_entry_points("pulp_cli.plugins")
}

##############################################################################
# Load plugins
# https://packaging.python.org/guides/creating-and-discovering-plugins/#using-package-metadata
discovered_plugins: Dict[str, ModuleType] = {
entry_point.name: entry_point.load()
for entry_point in pkg_resources.iter_entry_points("pulp_cli.plugins")
}
_main = discovered_plugins["common"].main
assert isinstance(_main, click.Group)
for plugin in discovered_plugins.values():
if hasattr(plugin, "mount"):
plugin.mount(_main, discovered_plugins=discovered_plugins)
return _main
main: click.Group = t.cast(click.Group, discovered_plugins["common"].main)


def main() -> Any:
if _main is None:
load_plugins()
assert _main is not None
return _main()
for plugin in discovered_plugins.values():
if hasattr(plugin, "mount"):
plugin.mount(main, discovered_plugins=discovered_plugins)
4 changes: 1 addition & 3 deletions tests/test_help_pages.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@
import pytest
from click.testing import CliRunner

from pulp_cli import load_plugins

main = load_plugins()
from pulp_cli import main


def traverse_commands(command, args):
Expand Down

0 comments on commit 8e8afde

Please sign in to comment.