コマンドラインオプションを使用してかなり大量の作業を行う管理スクリプトを開発しています。スクリプトの最初の数回の反復では、optparseを使用してユーザーの入力を収集し、ページを実行し、各オプションの値を適切な順序でテストし、必要に応じてアクションを実行しました。これは、コードを読むことと維持することが本当に難しいジャングルを招いています。イントロスペクションを介してコマンドライン引数を解析する
私はより良いものを探しています。
私は多かれ少なかれ普通のPythonの方法で関数を書くことができますし、スクリプトが実行されると、私の関数から生成されたオプション(とヘルプテキスト)を解析して実行します適切な順序。また、私は本当に
は、私がsimon willison's optfunc見つけた場所myscript.py install
作品完全に分離myscript.py remove
(別のオプション、ヘルプなど)から、ジャンゴ・スタイルサブコマンドインタフェースを構築できるようにしたいのですが、それは多くのことを行います私はオプションを巨大な文字列に圧縮しようとするのではなく、OPTIONを関数として記述したいと思っています。
私は、主要な機能のためのクラスのセットと、コマンドラインの特定のオプションに対応するクラスのそれぞれの定義されたメソッドを含むアーキテクチャを想像してください。この構造は、各オプションを変更する機能コードの近くに配置して保守を容易にするという利点があります。クラスメソッドの順序付けが決定的ではないので、私が対処する方法がわからないのは、コマンドの順序です。
私は車輪を改革する前に:同様に動作する他の既存のコードはありますか?変更が容易な他のものはありますか?質問をすることで、何がいいのか自分の考えが明確になったのですが、なぜこれがひどいアイデアであるのか、それがうまくいかなければならないかというフィードバックは歓迎されます。
ありがとう、これは良いアドバイスのようです。 –
これは素晴らしいです! –