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 27, 2023
1 parent 2cab734 commit e7a3ae9
Show file tree
Hide file tree
Showing 4 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/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': 'reference.md'
- 'CHANGES.md'
- 'contributing.md'
- 'architecture.md'
- 'Developer material':
- 'contributing.md'
- 'architecture.md'
39 changes: 13 additions & 26 deletions pulp_cli/__init__.py
Original file line number Diff line number Diff line change
@@ -1,33 +1,20 @@
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: 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


def main() -> Any:
if _main is None:
load_plugins()
assert _main is not None
return _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")
}
main: click.Group = 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)

0 comments on commit e7a3ae9

Please sign in to comment.