docopt を使用してコマンドライン インターフェイスを作成しようとしています。これが私のファイルの簡略版です:
#!/usr/bin/env python
"""
Test program.
Usage:
test.py [options]
Options:
-a <input>
-b
-c
-d
"""
import docopt
print docopt.docopt(__doc__)
基本的に、任意のオプションを任意の順序で指定できるようにしたいと考えています。ただし、フラグの引数を指定するのを忘れると-a
、次のような出力が得られます。
$ python test.py -a -b -c
{"-a": "-b",
"-b": False,
"-c": True,
"-d": False}
Docopt は、入力を無効として拒否するのではなく-b
、フラグをフラグの引数として扱っています。-a
これを検出する簡単な方法、またはこの種の不正な入力の受け入れを docopt に拒否させる方法はありますか?