問題タブ [subparsers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
182 参照

python - Python argparse サブパーサーの有効な使用法?

argparse ライブラリを使用してコマンドを作成する予定です。これが私のコマンド構造です。

ここで、ローカルには、ローカルコミット、ローカル追加などの複数のコマンドがグループ化されています。たとえば、[-d my_address] はメインで解析され、ローカル差分の後のすべてのスイッチは、ローカル差分に対して実行される関数によって一緒に解析されます。

同様に、ローカルに対応する別のコマンド グループがあります。グローバルと言います。

スイッチ -d は -r と混在していません。そのため、-r を解析するパーサーは -d を認識せず、その逆も同様です。

argparse を使用してこれを実装することは可能ですか? はいの場合、誰かがこれを行うための大まかなアルゴリズムを提案できますか? いいえの場合、Pythonでこれを行う他の方法は何ですか? ありがとう。

0 投票する
0 に答える
423 参照

python - 「--name」や「-n」のように(Python argparseから)サブパーサーに名前を付けることは可能ですか?

argparseメーラー スクリプト用の Unix スタイルの引数解析を作成する必要があるため、作業を開始しました。

ファイル名メーラーを提供する「auto」オプションを使用すると、ファイル名として受信したスクリプトを実行し、準備されたメールを取得して送信するだけです。2 番目のモード--manualでは、任意のメールを最初から作成できる必要があります。コンテンツとして 1 つのファイル、いくつかの添付ファイル、メーリング リストを提供するためのいくつかのオプションです。私は本当にそこで--long_opt慣習を使いたかったのですが (そして多分それ-short_optも)、理解できればサブパーサーを使うべきです。

サブパーサーのような名前を付けることは可能です'--name''-n'? 今のところ、そうではないと思います-エラーがあります。

使用例:

広告。4) ALL_DEVELOPERS は文字列または整数 (データベース内のグループのキー) です。

以下のコード:

それは素晴らしいことですが、ここで解析する多くの引数が必要であり (すべてが必要になります)、2 番目のオプションでは、すべての作業を行うスクリプトを含むファイルへのパスが 1 つだけ必要です。

私が持っているもの:

それが不可能な場合は、_parse_known_args_ 関数を使用する必要がありますか、それとも名前を「手動」と「自動」のままにしておくのは悪い考えですか?

0 投票する
1 に答える
744 参照

python - デフォルト値と必須の Argparser

パーサーの1つにデフォルト値が必要であり、必須でもあるargparserを構築しようとしています。これまでのところ、次のものがあります。

CLI から実行すると、エラーが発生します。

--typeCLIに含めていないので、これがなぜ出てくるのかがわかります。そして、それが私が達成したいことです。CLI にパーサー オプションを含めなくても、デフォルトが設定されます。

とにかくこれを実行するには?

0 投票する
1 に答える
1398 参照

python - Argparse: 複数のサブコマンドを解析します

いくつかの調査を行いましたが、有効な解決策が見つかりませんでした。次のコマンド ラインを解析しようとしています。「test」と「train」は、それぞれ異なる引数を持つ 2 つの独立したサブコマンドです。

2 つのサブパーサー (「test」、「train」) を使用してみましたが、一度に解析できるのは 1 つだけのようです。また、これらのサブパーサーをメイン パーサーの親にすることもできます。たとえば、コマンド '-a' をサブパーサー 'train' と 'test' の両方に追加する必要はありません。

解決策はありますか?

0 投票する
2 に答える
1075 参照

python - 他のパラメーターによって暗示される argparse サブパーサー

通常、サブパーサーを定義する方法は次のとおりです。

サブパーサーは次のように呼び出されます

多数のコンバーターを呼び出すパッケージを実装しています。通常のサブパーサーのアプローチを使用する場合、私はしなければならないでしょう

ユーザーが電話をかける可能性があるため、これは反復的でエラーが発生しやすいものです。

ユーザーがコマンドを使用できるように、サブパーサーがマスターパーサーから自動的に決定されることを強く望みます

andはandからargparseサブパーサーを決定し、そのサブパーサーを呼び出してparse します。もちろん、ここはサブパーサー固有です。ext1_to_ext2file.ext1file.ext2ext1_to_ext2EXTRAEXTRA

各コンバーター ( add_argument_group) にパラメーターのグループを使用しようとしましたが、引数グループのパラメーターは重複できず、すべてのパーサーから結合された引数の乱雑なリストを取得したため、サブパーサーを使用する方法のようです。

2 つの位置引数を使用して、適切なサブパーサーを決定して使用し、残りの引数を解析しようとしましparse_known_argsたが、ヘルプ メッセージからコンバーターとその引数のリストをユーザーに提供するのは困難です。

これを行う方法はありますか?

0 投票する
2 に答える
536 参照

python - Python argparse: ヘルプ文字列でサブパーサー プログラムの名前を取得する

さまざまなサブパーサーを備えた Python モジュールの引数パーサーを作成しています。私の目的は、Argument コンストラクターが複数の子に渡される共有される引数を持つことです。

望ましい出力は次のようになります

この正確な設定を使用すると、ヘルプ文字列のmaster prog1代わりに. 目的の結果を得るには、マークされた行で何を変更する必要がありますか?prog1foo#Line of interest