インフラストラクチャを管理するための一連のスクリプトとモジュールを構築しています。物事を整理しておくために、できるだけ多くの労力を統合し、新しいスクリプトのボイラー プレートを最小限に抑えたいと考えています。
特にここでの問題は、ArgumentParser モジュールを統合することです。
構造の例は、スクリプトとライブラリを次のように編成することです。
|-- bin
|-- script1
|-- script2
|-- lib
|-- logger
|-- lib1
|-- lib2
このシナリオscript1
では、 and のみを使用できますが、logger
andlib1
をscript2
使用logger
しlib2
ます。どちらの場合も、ロガーが「-v」と「-d」を受け入れるようにしたいのですが、script1
追加の引数やlib2
その他の引数も受け入れる場合があります。これが衝突につながる可能性があることは承知しており、手動で管理します。
スクリプト1
#!/usr/bin/env python
import logger
import lib1
argp = argparse.ArgumentParser("logger", parent=[logger.argp])
スクリプト2
#!/usr/bin/env python
import logger
import lib2
ロガー
#!/usr/bin/env python
import argparse
argp = argparse.ArgumentParser("logger")
argp.add_argument('-v', '--verbose', action="store_true", help="Verbose output")
argp.add_argument('-d', '--debug', action="store_true", help="Debug output. Assumes verbose output.")
各スクリプトと lib は独自の引数を持つ可能性がありますが、これらはすべて 1 つの最終的な arg_parse() に統合する必要があります。
これまでの私の試みでは、argp セットアップの継承/拡張に失敗しました。ライブラリファイルとスクリプトの間でこれを行うにはどうすればよいですか?