コマンドラインスクリプトを作成する¶
Astropyにおける命令行脚は,可読性と互換性を向上させるために一致したプランに従うべきである.
Setuptools‘ "entry points" 正しい拡張子を持つラッパを自動生成するためのものである.これらのスクリプトは、それら自身のモジュール内に配置されてもよく、Asterpyライブラリによって使用されるためにクラスまたは関数を実装するより大きなモジュールの一部であってもよい。彼らは1つ持っているはずだ main
関数はパラメータを解析し,これらのパラメータをあるライブラリ関数に渡し,必要に応じてライブラリ関数をプログラミング的に使用できるようにする.♪the main
関数は、保存された任意の単一のパラメータを受け入れるべきである。 sys.argv
リストは、スクリプト名(例えば、 argv[1:]
)である。そしてそれを追加しなければなりません setup.py
ファイル(以下の例を参照)。
コマンドラインオプションは必要に応じて解析することができますが argparse
できれば、古いインターフェースよりも簡単で柔軟なので、モジュールの使用をお勧めします optparse
それがそうです。
例を引く¶
内容.内容 /astropy/somepackage/somemod.py
**
def do_something(args, option=False):
for a in args:
if option:
...do something...
else:
...do something else...
def main(args=None):
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('-o', '--option', dest='op',action='store_true',
help='Some option that turns something on.')
parser.add_argument('stuff', metavar='S', nargs='+',
help='Some input I should be able to get lots of.')
res = parser.parse_args(args)
do_something(res.stuff,res.op)
そしてスクリプトを追加します setup.cfg
本節の下で:
[options.entry_points]
console_scripts =
somescript = astropy.somepackage.somemod:main