Add output of get_usage() to get_info_dict()
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
まず Click の command API と group API における get_info_dict() と get_usage() を追跡し、次に返される info-dict 構造と関連する issue #2762 を調査します。辞書に commands とネストされた commands の usage 出力が含まれ、文書化された workaround を必要としなければ完了です。
索引モデルが issue の本文から書いたものです。
説明
Context
I am generating some of my user-facing documentation using get_info_dict(), and was looking for a way to automate the usage as well without having to hardcode it in the docstrings.
Potential solution
Using the calls of get_info_dict() to add a usage key with the value being the output of get_usage().
Other relevant issues: #2762
Workaround
For now I'm using get_info_dict(), then looping through the context to get groups and commands, and using get_usage() on each, then adding it to that dictionary. The code looks something like this (with the for loop matching the structure of my CLI):
info = ctx.to_info_dict()
for cmd_n1 in ctx.command.list_commands(ctx):
cmd2 = ctx.command.get_command(ctx, cmd_n1)
sub_ctx = ctx._make_sub_context(cmd2)
usage = cmd2.get_usage(sub_ctx).replace("Usage: ", "")
info["command"]["commands"][cmd_n1]["usage"] = usage
if isinstance(cmd2, click.Group):
# Groups
for cmd_n2 in cmd2.list_commands(ctx):
cmd3 = cmd2.get_command(ctx, cmd_n2)
sub_ctx3 = sub_ctx._make_sub_context(cmd3)
usage = cmd3.get_usage(sub_ctx3).replace("Usage: ", "")
info["command"]["commands"][cmd_n1]["commands"][cmd_n2]["usage"] = usage
- 主要言語
- Python
- スター
- 17.8k
- フォーク
- 3.3k
- 平均マージ
- 3日 3時間
- マージ済み PR(30日)
- 13
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
pallets/click のほかの issue
-
`show_envvar=True` Drops Environment Variable from Error Messages When Using `auto_envvar_prefix`オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
メンテナーはふだん 1 日以内に返信
-
More private utilities that need to be marked and public api deprecated再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープンtyping
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
pallets/click#3847 · コメント 9 件 ·
メンテナーはふだん 1 日以内に返信
-
Automatically append ellipsis (`...`) to metavars when `multiple=True` in options対応中かも @SparshGarg999 が 89 日前に担当しました。 オープンhelp output
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
pallets/click#3652 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
-
`HelpFormatter.write_usage` breaks options at a hyphen対応中かも @kdeldycke が 9 日前に担当しました。 オープンhelp output
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
pallets/click#3362 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
-
Add glossary of terms to click reference docs対応中かも @rohitbarhate111-commits が 55 日前に担当しました。 オープンdocs
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
pallets/click#3077 · コメント 5 件 ·
メンテナーはふだん 1 日以内に返信
似ている issue
-
needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
gke-labs/kube-agents#5671 ·
メンテナーはふだん 1 日以内に返信
-
docs(auth): Method B step 4 should tell users to tick "Use this client for an AI-powered agent"オープンdocumentation next-release v0.9.6
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
khuisman/mcp-gee-sweet#1446 ·
メンテナーはふだん 1 日以内に返信
-
model:sonnet runtime:claude security size:S
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
FootprintAI/Containarium#3671 ·
メンテナーはふだん 1 日以内に返信
-
HolidayBase: reassigning `language` does not re-initialize translations or re-populate holidays対応中かも @shikhabhadoria が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
vacanza/holidays#4116 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug CLI exec
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信