annotate example/argparse_undefined.py @ 141:c6aea14a3e2b

wip
author Jeff Hammel <k0scist@gmail.com>
date Mon, 01 Dec 2014 18:05:50 -0800
parents 30abbd61ea5e
children efd2d3330296
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
139
30abbd61ea5e example
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
1 #!/usr/bin/env python
30abbd61ea5e example
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
2
30abbd61ea5e example
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
3 """
30abbd61ea5e example
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
4 illustrate which options are parsed with argparse
30abbd61ea5e example
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
5 """
30abbd61ea5e example
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
6
30abbd61ea5e example
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
7 import argparse
30abbd61ea5e example
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
8 import sys
30abbd61ea5e example
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
9
141
Jeff Hammel <k0scist@gmail.com>
parents: 139
diff changeset
10 class Undefined(object):
Jeff Hammel <k0scist@gmail.com>
parents: 139
diff changeset
11 """singleton"""
Jeff Hammel <k0scist@gmail.com>
parents: 139
diff changeset
12
Jeff Hammel <k0scist@gmail.com>
parents: 139
diff changeset
13 Undefined = Undefined()
Jeff Hammel <k0scist@gmail.com>
parents: 139
diff changeset
14
Jeff Hammel <k0scist@gmail.com>
parents: 139
diff changeset
15 class UndefinedArgumentParser(argparse.ArgumentParser):
Jeff Hammel <k0scist@gmail.com>
parents: 139
diff changeset
16
Jeff Hammel <k0scist@gmail.com>
parents: 139
diff changeset
17 def add_argument(self, *args, **kwargs):
Jeff Hammel <k0scist@gmail.com>
parents: 139
diff changeset
18 kwargs.setdefault('default', Undefined)
Jeff Hammel <k0scist@gmail.com>
parents: 139
diff changeset
19 return argparse.ArgumentParser.add_argument
139
30abbd61ea5e example
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
20
30abbd61ea5e example
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
21 def main(args=sys.argv[1:]):
30abbd61ea5e example
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
22
30abbd61ea5e example
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
23 parser = UndefinedArgumentParser()
30abbd61ea5e example
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
24 parser.add_argument('--foo', dest='foo',
30abbd61ea5e example
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
25 help="foo")
30abbd61ea5e example
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
26
30abbd61ea5e example
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
27 if __name__ == '__main__':
30abbd61ea5e example
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
28 main()