Mercurial > cpython-lru_cache-weakref
annotate Lib/optparse.py @ 46567:ffeecbebf3ca
Block 2.6-only doc change.
| author | Georg Brandl <georg@python.org> |
|---|---|
| date | Sat, 26 Apr 2008 18:28:08 +0000 |
| parents | 0889daf6d0d9 |
| children | bdf4da5d04ad |
| rev | line source |
|---|---|
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1 """optparse - a powerful, extensible, and easy-to-use option parser. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
2 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
3 By Greg Ward <gward@python.net> |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
4 |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
5 Originally distributed as Optik; see http://optik.sourceforge.net/ . |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
6 |
|
29021
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
7 If you have problems with this module, please do not file bugs, |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
8 patches, or feature requests with Python; instead, use Optik's |
|
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
9 SourceForge project page: |
|
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
10 http://sourceforge.net/projects/optik |
|
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
11 |
|
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
12 For support, use the optik-users@lists.sourceforge.net mailing list |
|
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
13 (http://lists.sourceforge.net/lists/listinfo/optik-users). |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
14 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
15 |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
16 # Python developers: please do not make changes to this file, since |
|
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
17 # it is automatically generated from the Optik source code. |
|
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
18 |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38669
diff
changeset
|
19 __version__ = "1.5.3" |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
20 |
|
29021
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
21 __all__ = ['Option', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
22 'SUPPRESS_HELP', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
23 'SUPPRESS_USAGE', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
24 'Values', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
25 'OptionContainer', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
26 'OptionGroup', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
27 'OptionParser', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
28 'HelpFormatter', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
29 'IndentedHelpFormatter', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
30 'TitledHelpFormatter', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
31 'OptParseError', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
32 'OptionError', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
33 'OptionConflictError', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
34 'OptionValueError', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
35 'BadOptionError'] |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
36 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
37 __copyright__ = """ |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
38 Copyright (c) 2001-2006 Gregory P. Ward. All rights reserved. |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
39 Copyright (c) 2002-2006 Python Software Foundation. All rights reserved. |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
40 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
41 Redistribution and use in source and binary forms, with or without |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
42 modification, are permitted provided that the following conditions are |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
43 met: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
44 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
45 * Redistributions of source code must retain the above copyright |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
46 notice, this list of conditions and the following disclaimer. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
47 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
48 * Redistributions in binary form must reproduce the above copyright |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
49 notice, this list of conditions and the following disclaimer in the |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
50 documentation and/or other materials provided with the distribution. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
51 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
52 * Neither the name of the author nor the names of its |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
53 contributors may be used to endorse or promote products derived from |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
54 this software without specific prior written permission. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
55 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
56 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
57 IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
58 TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
59 PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
60 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
61 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
62 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
63 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
64 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
65 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
66 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
67 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
68 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
69 import sys, os |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
70 import textwrap |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
71 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
72 def _repr(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
73 return "<%s at 0x%x: %s>" % (self.__class__.__name__, id(self), self) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
74 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
75 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
76 # This file was generated from: |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38669
diff
changeset
|
77 # Id: option_parser.py 527 2006-07-23 15:21:30Z greg |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38669
diff
changeset
|
78 # Id: option.py 522 2006-06-11 16:22:03Z gward |
|
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38669
diff
changeset
|
79 # Id: help.py 527 2006-07-23 15:21:30Z greg |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
80 # Id: errors.py 509 2006-04-20 00:58:24Z gward |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
81 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
82 try: |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
83 from gettext import gettext |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
84 except ImportError: |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
85 def gettext(message): |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
86 return message |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
87 _ = gettext |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
88 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
89 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
90 class OptParseError (Exception): |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
91 def __init__(self, msg): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
92 self.msg = msg |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
93 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
94 def __str__(self): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
95 return self.msg |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
96 |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
97 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
98 class OptionError (OptParseError): |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
99 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
100 Raised if an Option instance is created with invalid or |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
101 inconsistent arguments. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
102 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
103 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
104 def __init__(self, msg, option): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
105 self.msg = msg |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
106 self.option_id = str(option) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
107 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
108 def __str__(self): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
109 if self.option_id: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
110 return "option %s: %s" % (self.option_id, self.msg) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
111 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
112 return self.msg |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
113 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
114 class OptionConflictError (OptionError): |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
115 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
116 Raised if conflicting options are added to an OptionParser. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
117 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
118 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
119 class OptionValueError (OptParseError): |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
120 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
121 Raised if an invalid option value is encountered on the command |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
122 line. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
123 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
124 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
125 class BadOptionError (OptParseError): |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
126 """ |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
127 Raised if an invalid option is seen on the command line. |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
128 """ |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
129 def __init__(self, opt_str): |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
130 self.opt_str = opt_str |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
131 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
132 def __str__(self): |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
133 return _("no such option: %s") % self.opt_str |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
134 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
135 class AmbiguousOptionError (BadOptionError): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
136 """ |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
137 Raised if an ambiguous option is seen on the command line. |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
138 """ |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
139 def __init__(self, opt_str, possibilities): |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
140 BadOptionError.__init__(self, opt_str) |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
141 self.possibilities = possibilities |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
142 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
143 def __str__(self): |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
144 return (_("ambiguous option: %s (%s?)") |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
145 % (self.opt_str, ", ".join(self.possibilities))) |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
146 |
|
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
147 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
148 class HelpFormatter: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
149 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
150 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
151 Abstract base class for formatting option help. OptionParser |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
152 instances should use one of the HelpFormatter subclasses for |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
153 formatting help; by default IndentedHelpFormatter is used. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
154 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
155 Instance attributes: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
156 parser : OptionParser |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
157 the controlling OptionParser instance |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
158 indent_increment : int |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
159 the number of columns to indent per nesting level |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
160 max_help_position : int |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
161 the maximum starting column for option help text |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
162 help_position : int |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
163 the calculated starting column for option help text; |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
164 initially the same as the maximum |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
165 width : int |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
166 total number of columns for output (pass None to constructor for |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
167 this value to be taken from the $COLUMNS environment variable) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
168 level : int |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
169 current indentation level |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
170 current_indent : int |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
171 current indentation level (in columns) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
172 help_width : int |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
173 number of columns available for option help text (calculated) |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
174 default_tag : str |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
175 text to replace with each option's default value, "%default" |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
176 by default. Set to false value to disable default value expansion. |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
177 option_strings : { Option : str } |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
178 maps Option instances to the snippet of help text explaining |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
179 the syntax of that option, e.g. "-h, --help" or |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
180 "-fFILE, --file=FILE" |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
181 _short_opt_fmt : str |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
182 format string controlling how short options with values are |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
183 printed in help text. Must be either "%s%s" ("-fFILE") or |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
184 "%s %s" ("-f FILE"), because those are the two syntaxes that |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
185 Optik supports. |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
186 _long_opt_fmt : str |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
187 similar but for long options; must be either "%s %s" ("--file FILE") |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
188 or "%s=%s" ("--file=FILE"). |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
189 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
190 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
191 NO_DEFAULT_VALUE = "none" |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
192 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
193 def __init__(self, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
194 indent_increment, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
195 max_help_position, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
196 width, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
197 short_first): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
198 self.parser = None |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
199 self.indent_increment = indent_increment |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
200 self.help_position = self.max_help_position = max_help_position |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
201 if width is None: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
202 try: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
203 width = int(os.environ['COLUMNS']) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
204 except (KeyError, ValueError): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
205 width = 80 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
206 width -= 2 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
207 self.width = width |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
208 self.current_indent = 0 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
209 self.level = 0 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
210 self.help_width = None # computed later |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
211 self.short_first = short_first |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
212 self.default_tag = "%default" |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
213 self.option_strings = {} |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
214 self._short_opt_fmt = "%s %s" |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
215 self._long_opt_fmt = "%s=%s" |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
216 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
217 def set_parser(self, parser): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
218 self.parser = parser |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
219 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
220 def set_short_opt_delimiter(self, delim): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
221 if delim not in ("", " "): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
222 raise ValueError( |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
223 "invalid metavar delimiter for short options: %r" % delim) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
224 self._short_opt_fmt = "%s" + delim + "%s" |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
225 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
226 def set_long_opt_delimiter(self, delim): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
227 if delim not in ("=", " "): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
228 raise ValueError( |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
229 "invalid metavar delimiter for long options: %r" % delim) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
230 self._long_opt_fmt = "%s" + delim + "%s" |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
231 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
232 def indent(self): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
233 self.current_indent += self.indent_increment |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
234 self.level += 1 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
235 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
236 def dedent(self): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
237 self.current_indent -= self.indent_increment |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
238 assert self.current_indent >= 0, "Indent decreased below 0." |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
239 self.level -= 1 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
240 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
241 def format_usage(self, usage): |
|
43020
907a45df1295
Raise statement normalization in Lib/.
Collin Winter <collinw@gmail.com>
parents:
42552
diff
changeset
|
242 raise NotImplementedError("subclasses must implement") |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
243 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
244 def format_heading(self, heading): |
|
43020
907a45df1295
Raise statement normalization in Lib/.
Collin Winter <collinw@gmail.com>
parents:
42552
diff
changeset
|
245 raise NotImplementedError("subclasses must implement") |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
246 |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
247 def _format_text(self, text): |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
248 """ |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
249 Format a paragraph of free-form text for inclusion in the |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
250 help output at the current indentation level. |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
251 """ |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
252 text_width = self.width - self.current_indent |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
253 indent = " "*self.current_indent |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
254 return textwrap.fill(text, |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
255 text_width, |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
256 initial_indent=indent, |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
257 subsequent_indent=indent) |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
258 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
259 def format_description(self, description): |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
260 if description: |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
261 return self._format_text(description) + "\n" |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
262 else: |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
263 return "" |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
264 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
265 def format_epilog(self, epilog): |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
266 if epilog: |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
267 return "\n" + self._format_text(epilog) + "\n" |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
268 else: |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
269 return "" |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
270 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
271 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
272 def expand_default(self, option): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
273 if self.parser is None or not self.default_tag: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
274 return option.help |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
275 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
276 default_value = self.parser.defaults.get(option.dest) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
277 if default_value is NO_DEFAULT or default_value is None: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
278 default_value = self.NO_DEFAULT_VALUE |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
279 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
280 return option.help.replace(self.default_tag, str(default_value)) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
281 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
282 def format_option(self, option): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
283 # The help for each option consists of two parts: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
284 # * the opt strings and metavars |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
285 # eg. ("-x", or "-fFILENAME, --file=FILENAME") |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
286 # * the user-supplied help string |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
287 # eg. ("turn on expert mode", "read data from FILENAME") |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
288 # |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
289 # If possible, we write both of these on the same line: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
290 # -x turn on expert mode |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
291 # |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
292 # But if the opt string list is too long, we put the help |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
293 # string on a second line, indented to the same column it would |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
294 # start in if it fit on the first line. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
295 # -fFILENAME, --file=FILENAME |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
296 # read data from FILENAME |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
297 result = [] |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
298 opts = self.option_strings[option] |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
299 opt_width = self.help_position - self.current_indent - 2 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
300 if len(opts) > opt_width: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
301 opts = "%*s%s\n" % (self.current_indent, "", opts) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
302 indent_first = self.help_position |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
303 else: # start help on same line as opts |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
304 opts = "%*s%-*s " % (self.current_indent, "", opt_width, opts) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
305 indent_first = 0 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
306 result.append(opts) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
307 if option.help: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
308 help_text = self.expand_default(option) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
309 help_lines = textwrap.wrap(help_text, self.help_width) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
310 result.append("%*s%s\n" % (indent_first, "", help_lines[0])) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
311 result.extend(["%*s%s\n" % (self.help_position, "", line) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
312 for line in help_lines[1:]]) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
313 elif opts[-1] != "\n": |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
314 result.append("\n") |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
315 return "".join(result) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
316 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
317 def store_option_strings(self, parser): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
318 self.indent() |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
319 max_len = 0 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
320 for opt in parser.option_list: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
321 strings = self.format_option_strings(opt) |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
322 self.option_strings[opt] = strings |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
323 max_len = max(max_len, len(strings) + self.current_indent) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
324 self.indent() |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
325 for group in parser.option_groups: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
326 for opt in group.option_list: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
327 strings = self.format_option_strings(opt) |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
328 self.option_strings[opt] = strings |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
329 max_len = max(max_len, len(strings) + self.current_indent) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
330 self.dedent() |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
331 self.dedent() |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
332 self.help_position = min(max_len + 2, self.max_help_position) |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
333 self.help_width = self.width - self.help_position |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
334 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
335 def format_option_strings(self, option): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
336 """Return a comma-separated list of option strings & metavariables.""" |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
337 if option.takes_value(): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
338 metavar = option.metavar or option.dest.upper() |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
339 short_opts = [self._short_opt_fmt % (sopt, metavar) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
340 for sopt in option._short_opts] |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
341 long_opts = [self._long_opt_fmt % (lopt, metavar) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
342 for lopt in option._long_opts] |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
343 else: |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
344 short_opts = option._short_opts |
|
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
345 long_opts = option._long_opts |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
346 |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
347 if self.short_first: |
|
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
348 opts = short_opts + long_opts |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
349 else: |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
350 opts = long_opts + short_opts |
|
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
351 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
352 return ", ".join(opts) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
353 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
354 class IndentedHelpFormatter (HelpFormatter): |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
355 """Format help with indented section bodies. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
356 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
357 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
358 def __init__(self, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
359 indent_increment=2, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
360 max_help_position=24, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
361 width=None, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
362 short_first=1): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
363 HelpFormatter.__init__( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
364 self, indent_increment, max_help_position, width, short_first) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
365 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
366 def format_usage(self, usage): |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
367 return _("Usage: %s\n") % usage |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
368 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
369 def format_heading(self, heading): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
370 return "%*s%s:\n" % (self.current_indent, "", heading) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
371 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
372 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
373 class TitledHelpFormatter (HelpFormatter): |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
374 """Format help with underlined section headers. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
375 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
376 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
377 def __init__(self, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
378 indent_increment=0, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
379 max_help_position=24, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
380 width=None, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
381 short_first=0): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
382 HelpFormatter.__init__ ( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
383 self, indent_increment, max_help_position, width, short_first) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
384 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
385 def format_usage(self, usage): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
386 return "%s %s\n" % (self.format_heading(_("Usage")), usage) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
387 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
388 def format_heading(self, heading): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
389 return "%s\n%s\n" % (heading, "=-"[self.level] * len(heading)) |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
390 |
|
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
391 |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
392 def _parse_num(val, type): |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
393 if val[:2].lower() == "0x": # hexadecimal |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
394 radix = 16 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
395 elif val[:2].lower() == "0b": # binary |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
396 radix = 2 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
397 val = val[2:] or "0" # have to remove "0b" prefix |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
398 elif val[:1] == "0": # octal |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
399 radix = 8 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
400 else: # decimal |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
401 radix = 10 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
402 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
403 return type(val, radix) |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
404 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
405 def _parse_int(val): |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
406 return _parse_num(val, int) |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
407 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
408 def _parse_long(val): |
|
40644
1c26505c1de6
Rip out 'long' and 'L'-suffixed integer literals.
Guido van Rossum <guido@python.org>
parents:
40587
diff
changeset
|
409 return _parse_num(val, int) |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
410 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
411 _builtin_cvt = { "int" : (_parse_int, _("integer")), |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
412 "long" : (_parse_long, _("long integer")), |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
413 "float" : (float, _("floating-point")), |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
414 "complex" : (complex, _("complex")) } |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
415 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
416 def check_builtin(option, opt, value): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
417 (cvt, what) = _builtin_cvt[option.type] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
418 try: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
419 return cvt(value) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
420 except ValueError: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
421 raise OptionValueError( |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
422 _("option %s: invalid %s value: %r") % (opt, what, value)) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
423 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
424 def check_choice(option, opt, value): |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
425 if value in option.choices: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
426 return value |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
427 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
428 choices = ", ".join(map(repr, option.choices)) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
429 raise OptionValueError( |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
430 _("option %s: invalid choice: %r (choose from %s)") |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
431 % (opt, value, choices)) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
432 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
433 # Not supplying a default is different from a default of None, |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
434 # so we need an explicit "not supplied" value. |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
435 NO_DEFAULT = ("NO", "DEFAULT") |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
436 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
437 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
438 class Option: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
439 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
440 Instance attributes: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
441 _short_opts : [string] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
442 _long_opts : [string] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
443 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
444 action : string |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
445 type : string |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
446 dest : string |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
447 default : any |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
448 nargs : int |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
449 const : any |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
450 choices : [string] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
451 callback : function |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
452 callback_args : (any*) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
453 callback_kwargs : { string : any } |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
454 help : string |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
455 metavar : string |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
456 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
457 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
458 # The list of instance attributes that may be set through |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
459 # keyword args to the constructor. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
460 ATTRS = ['action', |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
461 'type', |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
462 'dest', |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
463 'default', |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
464 'nargs', |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
465 'const', |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
466 'choices', |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
467 'callback', |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
468 'callback_args', |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
469 'callback_kwargs', |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
470 'help', |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
471 'metavar'] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
472 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
473 # The set of actions allowed by option parsers. Explicitly listed |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
474 # here so the constructor can validate its arguments. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
475 ACTIONS = ("store", |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
476 "store_const", |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
477 "store_true", |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
478 "store_false", |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
479 "append", |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
480 "append_const", |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
481 "count", |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
482 "callback", |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
483 "help", |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
484 "version") |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
485 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
486 # The set of actions that involve storing a value somewhere; |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
487 # also listed just for constructor argument validation. (If |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
488 # the action is one of these, there must be a destination.) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
489 STORE_ACTIONS = ("store", |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
490 "store_const", |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
491 "store_true", |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
492 "store_false", |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
493 "append", |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
494 "append_const", |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
495 "count") |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
496 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
497 # The set of actions for which it makes sense to supply a value |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
498 # type, ie. which may consume an argument from the command line. |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
499 TYPED_ACTIONS = ("store", |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
500 "append", |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
501 "callback") |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
502 |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
503 # The set of actions which *require* a value type, ie. that |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
504 # always consume an argument from the command line. |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
505 ALWAYS_TYPED_ACTIONS = ("store", |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
506 "append") |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
507 |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
508 # The set of actions which take a 'const' attribute. |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
509 CONST_ACTIONS = ("store_const", |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
510 "append_const") |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
511 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
512 # The set of known types for option parsers. Again, listed here for |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
513 # constructor argument validation. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
514 TYPES = ("string", "int", "long", "float", "complex", "choice") |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
515 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
516 # Dictionary of argument checking functions, which convert and |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
517 # validate option arguments according to the option type. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
518 # |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
519 # Signature of checking functions is: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
520 # check(option : Option, opt : string, value : string) -> any |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
521 # where |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
522 # option is the Option instance calling the checker |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
523 # opt is the actual option seen on the command-line |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
524 # (eg. "-a", "--file") |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
525 # value is the option argument seen on the command-line |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
526 # |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
527 # The return value should be in the appropriate Python type |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
528 # for option.type -- eg. an integer if option.type == "int". |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
529 # |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
530 # If no checker is defined for a type, arguments will be |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
531 # unchecked and remain strings. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
532 TYPE_CHECKER = { "int" : check_builtin, |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
533 "long" : check_builtin, |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
534 "float" : check_builtin, |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
535 "complex": check_builtin, |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
536 "choice" : check_choice, |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
537 } |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
538 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
539 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
540 # CHECK_METHODS is a list of unbound method objects; they are called |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
541 # by the constructor, in order, after all attributes are |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
542 # initialized. The list is created and filled in later, after all |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
543 # the methods are actually defined. (I just put it here because I |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
544 # like to define and document all class attributes in the same |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
545 # place.) Subclasses that add another _check_*() method should |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
546 # define their own CHECK_METHODS list that adds their check method |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
547 # to those from this class. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
548 CHECK_METHODS = None |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
549 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
550 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
551 # -- Constructor/initialization methods ---------------------------- |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
552 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
553 def __init__(self, *opts, **attrs): |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
554 # Set _short_opts, _long_opts attrs from 'opts' tuple. |
|
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
555 # Have to be set now, in case no option strings are supplied. |
|
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
556 self._short_opts = [] |
|
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
557 self._long_opts = [] |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
558 opts = self._check_opt_strings(opts) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
559 self._set_opt_strings(opts) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
560 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
561 # Set all other attrs (action, type, etc.) from 'attrs' dict |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
562 self._set_attrs(attrs) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
563 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
564 # Check all the attributes we just set. There are lots of |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
565 # complicated interdependencies, but luckily they can be farmed |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
566 # out to the _check_*() methods listed in CHECK_METHODS -- which |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
567 # could be handy for subclasses! The one thing these all share |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
568 # is that they raise OptionError if they discover a problem. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
569 for checker in self.CHECK_METHODS: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
570 checker(self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
571 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
572 def _check_opt_strings(self, opts): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
573 # Filter out None because early versions of Optik had exactly |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
574 # one short option and one long option, either of which |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
575 # could be None. |
|
42142
a53e48be6df9
Merged revisions 56125-56153 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41986
diff
changeset
|
576 opts = [opt for opt in opts if opt] |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
577 if not opts: |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
578 raise TypeError("at least one option string must be supplied") |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
579 return opts |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
580 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
581 def _set_opt_strings(self, opts): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
582 for opt in opts: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
583 if len(opt) < 2: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
584 raise OptionError( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
585 "invalid option string %r: " |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
586 "must be at least two characters long" % opt, self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
587 elif len(opt) == 2: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
588 if not (opt[0] == "-" and opt[1] != "-"): |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
589 raise OptionError( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
590 "invalid short option string %r: " |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
591 "must be of the form -x, (x any non-dash char)" % opt, |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
592 self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
593 self._short_opts.append(opt) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
594 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
595 if not (opt[0:2] == "--" and opt[2] != "-"): |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
596 raise OptionError( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
597 "invalid long option string %r: " |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
598 "must start with --, followed by non-dash" % opt, |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
599 self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
600 self._long_opts.append(opt) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
601 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
602 def _set_attrs(self, attrs): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
603 for attr in self.ATTRS: |
|
39575
63237fcefd99
Get rid of dict.has_key(). Boy this has a lot of repercussions!
Guido van Rossum <guido@python.org>
parents:
39442
diff
changeset
|
604 if attr in attrs: |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
605 setattr(self, attr, attrs[attr]) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
606 del attrs[attr] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
607 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
608 if attr == 'default': |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
609 setattr(self, attr, NO_DEFAULT) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
610 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
611 setattr(self, attr, None) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
612 if attrs: |
|
40819
5ef70c49d85a
Checkin the regenerated Python-ast.c and fix test_optparse.
Georg Brandl <georg@python.org>
parents:
40775
diff
changeset
|
613 attrs = sorted(attrs.keys()) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
614 raise OptionError( |
|
38669
19fd6141940d
Partially merge trunk into p3yk. The removal of Mac/Tools is confusing svn
Thomas Wouters <thomas@python.org>
parents:
38453
diff
changeset
|
615 "invalid keyword arguments: %s" % ", ".join(attrs), |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
616 self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
617 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
618 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
619 # -- Constructor validation methods -------------------------------- |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
620 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
621 def _check_action(self): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
622 if self.action is None: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
623 self.action = "store" |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
624 elif self.action not in self.ACTIONS: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
625 raise OptionError("invalid action: %r" % self.action, self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
626 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
627 def _check_type(self): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
628 if self.type is None: |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
629 if self.action in self.ALWAYS_TYPED_ACTIONS: |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
630 if self.choices is not None: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
631 # The "choices" attribute implies "choice" type. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
632 self.type = "choice" |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
633 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
634 # No type given? "string" is the most sensible default. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
635 self.type = "string" |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
636 else: |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
637 # Allow type objects or builtin type conversion functions |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
638 # (int, str, etc.) as an alternative to their names. (The |
|
44098
0889daf6d0d9
#1535: rename __builtin__ module to builtins.
Georg Brandl <georg@python.org>
parents:
43577
diff
changeset
|
639 # complicated check of builtins is only necessary for |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
640 # Python 2.1 and earlier, and is short-circuited by the |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
641 # first check on modern Pythons.) |
|
44098
0889daf6d0d9
#1535: rename __builtin__ module to builtins.
Georg Brandl <georg@python.org>
parents:
43577
diff
changeset
|
642 import builtins |
|
41986
6464cc638faa
Merged revisions 55795-55816 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41969
diff
changeset
|
643 if ( isinstance(self.type, type) or |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
644 (hasattr(self.type, "__name__") and |
|
44098
0889daf6d0d9
#1535: rename __builtin__ module to builtins.
Georg Brandl <georg@python.org>
parents:
43577
diff
changeset
|
645 getattr(builtins, self.type.__name__, None) is self.type) ): |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
646 self.type = self.type.__name__ |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
647 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
648 if self.type == "str": |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
649 self.type = "string" |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
650 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
651 if self.type not in self.TYPES: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
652 raise OptionError("invalid option type: %r" % self.type, self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
653 if self.action not in self.TYPED_ACTIONS: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
654 raise OptionError( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
655 "must not supply a type for action %r" % self.action, self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
656 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
657 def _check_choice(self): |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
658 if self.type == "choice": |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
659 if self.choices is None: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
660 raise OptionError( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
661 "must supply a list of choices for type 'choice'", self) |
|
41986
6464cc638faa
Merged revisions 55795-55816 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41969
diff
changeset
|
662 elif not isinstance(self.choices, (tuple, list)): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
663 raise OptionError( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
664 "choices must be a list of strings ('%s' supplied)" |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
665 % str(type(self.choices)).split("'")[1], self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
666 elif self.choices is not None: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
667 raise OptionError( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
668 "must not supply choices for type %r" % self.type, self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
669 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
670 def _check_dest(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
671 # No destination given, and we need one for this action. The |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
672 # self.type check is for callbacks that take a value. |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
673 takes_value = (self.action in self.STORE_ACTIONS or |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
674 self.type is not None) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
675 if self.dest is None and takes_value: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
676 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
677 # Glean a destination from the first long option string, |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
678 # or from the first short option string if no long options. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
679 if self._long_opts: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
680 # eg. "--foo-bar" -> "foo_bar" |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
681 self.dest = self._long_opts[0][2:].replace('-', '_') |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
682 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
683 self.dest = self._short_opts[0][1] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
684 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
685 def _check_const(self): |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
686 if self.action not in self.CONST_ACTIONS and self.const is not None: |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
687 raise OptionError( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
688 "'const' must not be supplied for action %r" % self.action, |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
689 self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
690 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
691 def _check_nargs(self): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
692 if self.action in self.TYPED_ACTIONS: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
693 if self.nargs is None: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
694 self.nargs = 1 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
695 elif self.nargs is not None: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
696 raise OptionError( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
697 "'nargs' must not be supplied for action %r" % self.action, |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
698 self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
699 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
700 def _check_callback(self): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
701 if self.action == "callback": |
|
41824
24b60622b944
Merged revisions 55407-55513 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41610
diff
changeset
|
702 if not hasattr(self.callback, '__call__'): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
703 raise OptionError( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
704 "callback not callable: %r" % self.callback, self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
705 if (self.callback_args is not None and |
|
41986
6464cc638faa
Merged revisions 55795-55816 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41969
diff
changeset
|
706 not isinstance(self.callback_args, tuple)): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
707 raise OptionError( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
708 "callback_args, if supplied, must be a tuple: not %r" |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
709 % self.callback_args, self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
710 if (self.callback_kwargs is not None and |
|
41986
6464cc638faa
Merged revisions 55795-55816 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41969
diff
changeset
|
711 not isinstance(self.callback_kwargs, dict)): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
712 raise OptionError( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
713 "callback_kwargs, if supplied, must be a dict: not %r" |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
714 % self.callback_kwargs, self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
715 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
716 if self.callback is not None: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
717 raise OptionError( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
718 "callback supplied (%r) for non-callback option" |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
719 % self.callback, self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
720 if self.callback_args is not None: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
721 raise OptionError( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
722 "callback_args supplied for non-callback option", self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
723 if self.callback_kwargs is not None: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
724 raise OptionError( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
725 "callback_kwargs supplied for non-callback option", self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
726 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
727 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
728 CHECK_METHODS = [_check_action, |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
729 _check_type, |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
730 _check_choice, |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
731 _check_dest, |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
732 _check_const, |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
733 _check_nargs, |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
734 _check_callback] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
735 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
736 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
737 # -- Miscellaneous methods ----------------------------------------- |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
738 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
739 def __str__(self): |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
740 return "/".join(self._short_opts + self._long_opts) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
741 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
742 __repr__ = _repr |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
743 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
744 def takes_value(self): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
745 return self.type is not None |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
746 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
747 def get_opt_string(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
748 if self._long_opts: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
749 return self._long_opts[0] |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
750 else: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
751 return self._short_opts[0] |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
752 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
753 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
754 # -- Processing methods -------------------------------------------- |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
755 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
756 def check_value(self, opt, value): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
757 checker = self.TYPE_CHECKER.get(self.type) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
758 if checker is None: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
759 return value |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
760 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
761 return checker(self, opt, value) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
762 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
763 def convert_value(self, opt, value): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
764 if value is not None: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
765 if self.nargs == 1: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
766 return self.check_value(opt, value) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
767 else: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
768 return tuple([self.check_value(opt, v) for v in value]) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
769 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
770 def process(self, opt, value, values, parser): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
771 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
772 # First, convert the value(s) to the right type. Howl if any |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
773 # value(s) are bogus. |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
774 value = self.convert_value(opt, value) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
775 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
776 # And then take whatever action is expected of us. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
777 # This is a separate method to make life easier for |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
778 # subclasses to add new actions. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
779 return self.take_action( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
780 self.action, self.dest, opt, value, values, parser) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
781 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
782 def take_action(self, action, dest, opt, value, values, parser): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
783 if action == "store": |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
784 setattr(values, dest, value) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
785 elif action == "store_const": |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
786 setattr(values, dest, self.const) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
787 elif action == "store_true": |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
788 setattr(values, dest, True) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
789 elif action == "store_false": |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
790 setattr(values, dest, False) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
791 elif action == "append": |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
792 values.ensure_value(dest, []).append(value) |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
793 elif action == "append_const": |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
794 values.ensure_value(dest, []).append(self.const) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
795 elif action == "count": |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
796 setattr(values, dest, values.ensure_value(dest, 0) + 1) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
797 elif action == "callback": |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
798 args = self.callback_args or () |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
799 kwargs = self.callback_kwargs or {} |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
800 self.callback(self, opt, value, parser, *args, **kwargs) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
801 elif action == "help": |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
802 parser.print_help() |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
803 parser.exit() |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
804 elif action == "version": |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
805 parser.print_version() |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
806 parser.exit() |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
807 else: |
|
43020
907a45df1295
Raise statement normalization in Lib/.
Collin Winter <collinw@gmail.com>
parents:
42552
diff
changeset
|
808 raise RuntimeError("unknown action %r" % self.action) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
809 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
810 return 1 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
811 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
812 # class Option |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
813 |
|
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
814 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
815 SUPPRESS_HELP = "SUPPRESS"+"HELP" |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
816 SUPPRESS_USAGE = "SUPPRESS"+"USAGE" |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
817 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
818 class Values: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
819 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
820 def __init__(self, defaults=None): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
821 if defaults: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
822 for (attr, val) in defaults.items(): |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
823 setattr(self, attr, val) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
824 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
825 def __str__(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
826 return str(self.__dict__) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
827 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
828 __repr__ = _repr |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
829 |
|
39644
13d5e5f0e993
Restructure comparison dramatically. There is no longer a default
Guido van Rossum <guido@python.org>
parents:
39589
diff
changeset
|
830 def __eq__(self, other): |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
831 if isinstance(other, Values): |
|
39644
13d5e5f0e993
Restructure comparison dramatically. There is no longer a default
Guido van Rossum <guido@python.org>
parents:
39589
diff
changeset
|
832 return self.__dict__ == other.__dict__ |
|
41986
6464cc638faa
Merged revisions 55795-55816 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41969
diff
changeset
|
833 elif isinstance(other, dict): |
|
39644
13d5e5f0e993
Restructure comparison dramatically. There is no longer a default
Guido van Rossum <guido@python.org>
parents:
39589
diff
changeset
|
834 return self.__dict__ == other |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
835 else: |
|
39644
13d5e5f0e993
Restructure comparison dramatically. There is no longer a default
Guido van Rossum <guido@python.org>
parents:
39589
diff
changeset
|
836 return NotImplemented |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
837 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
838 def _update_careful(self, dict): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
839 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
840 Update the option values from an arbitrary dictionary, but only |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
841 use keys from dict that already have a corresponding attribute |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
842 in self. Any keys in dict without a corresponding attribute |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
843 are silently ignored. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
844 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
845 for attr in dir(self): |
|
39575
63237fcefd99
Get rid of dict.has_key(). Boy this has a lot of repercussions!
Guido van Rossum <guido@python.org>
parents:
39442
diff
changeset
|
846 if attr in dict: |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
847 dval = dict[attr] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
848 if dval is not None: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
849 setattr(self, attr, dval) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
850 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
851 def _update_loose(self, dict): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
852 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
853 Update the option values from an arbitrary dictionary, |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
854 using all keys from the dictionary regardless of whether |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
855 they have a corresponding attribute in self or not. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
856 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
857 self.__dict__.update(dict) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
858 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
859 def _update(self, dict, mode): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
860 if mode == "careful": |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
861 self._update_careful(dict) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
862 elif mode == "loose": |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
863 self._update_loose(dict) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
864 else: |
|
43020
907a45df1295
Raise statement normalization in Lib/.
Collin Winter <collinw@gmail.com>
parents:
42552
diff
changeset
|
865 raise ValueError("invalid update mode: %r" % mode) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
866 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
867 def read_module(self, modname, mode="careful"): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
868 __import__(modname) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
869 mod = sys.modules[modname] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
870 self._update(vars(mod), mode) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
871 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
872 def read_file(self, filename, mode="careful"): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
873 vars = {} |
|
42552
ac192f89c109
Kill execfile(), use exec() instead
Neal Norwitz <nnorwitz@gmail.com>
parents:
42501
diff
changeset
|
874 exec(open(filename).read(), vars) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
875 self._update(vars, mode) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
876 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
877 def ensure_value(self, attr, value): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
878 if not hasattr(self, attr) or getattr(self, attr) is None: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
879 setattr(self, attr, value) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
880 return getattr(self, attr) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
881 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
882 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
883 class OptionContainer: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
884 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
885 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
886 Abstract base class. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
887 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
888 Class attributes: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
889 standard_option_list : [Option] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
890 list of standard options that will be accepted by all instances |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
891 of this parser class (intended to be overridden by subclasses). |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
892 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
893 Instance attributes: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
894 option_list : [Option] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
895 the list of Option objects contained by this OptionContainer |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
896 _short_opt : { string : Option } |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
897 dictionary mapping short option strings, eg. "-f" or "-X", |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
898 to the Option instances that implement them. If an Option |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
899 has multiple short option strings, it will appears in this |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
900 dictionary multiple times. [1] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
901 _long_opt : { string : Option } |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
902 dictionary mapping long option strings, eg. "--file" or |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
903 "--exclude", to the Option instances that implement them. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
904 Again, a given Option can occur multiple times in this |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
905 dictionary. [1] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
906 defaults : { string : any } |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
907 dictionary mapping option destination names to default |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
908 values for each destination [1] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
909 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
910 [1] These mappings are common to (shared by) all components of the |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
911 controlling OptionParser, where they are initially created. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
912 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
913 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
914 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
915 def __init__(self, option_class, conflict_handler, description): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
916 # Initialize the option list and related data structures. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
917 # This method must be provided by subclasses, and it must |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
918 # initialize at least the following instance attributes: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
919 # option_list, _short_opt, _long_opt, defaults. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
920 self._create_option_list() |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
921 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
922 self.option_class = option_class |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
923 self.set_conflict_handler(conflict_handler) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
924 self.set_description(description) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
925 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
926 def _create_option_mappings(self): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
927 # For use by OptionParser constructor -- create the master |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
928 # option mappings used by this OptionParser and all |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
929 # OptionGroups that it owns. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
930 self._short_opt = {} # single letter -> Option instance |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
931 self._long_opt = {} # long option -> Option instance |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
932 self.defaults = {} # maps option dest -> default value |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
933 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
934 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
935 def _share_option_mappings(self, parser): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
936 # For use by OptionGroup constructor -- use shared option |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
937 # mappings from the OptionParser that owns this OptionGroup. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
938 self._short_opt = parser._short_opt |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
939 self._long_opt = parser._long_opt |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
940 self.defaults = parser.defaults |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
941 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
942 def set_conflict_handler(self, handler): |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
943 if handler not in ("error", "resolve"): |
|
43020
907a45df1295
Raise statement normalization in Lib/.
Collin Winter <collinw@gmail.com>
parents:
42552
diff
changeset
|
944 raise ValueError("invalid conflict_resolution value %r" % handler) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
945 self.conflict_handler = handler |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
946 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
947 def set_description(self, description): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
948 self.description = description |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
949 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
950 def get_description(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
951 return self.description |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
952 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
953 |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
954 def destroy(self): |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
955 """see OptionParser.destroy().""" |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
956 del self._short_opt |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
957 del self._long_opt |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
958 del self.defaults |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
959 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
960 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
961 # -- Option-adding methods ----------------------------------------- |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
962 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
963 def _check_conflict(self, option): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
964 conflict_opts = [] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
965 for opt in option._short_opts: |
|
39575
63237fcefd99
Get rid of dict.has_key(). Boy this has a lot of repercussions!
Guido van Rossum <guido@python.org>
parents:
39442
diff
changeset
|
966 if opt in self._short_opt: |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
967 conflict_opts.append((opt, self._short_opt[opt])) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
968 for opt in option._long_opts: |
|
39575
63237fcefd99
Get rid of dict.has_key(). Boy this has a lot of repercussions!
Guido van Rossum <guido@python.org>
parents:
39442
diff
changeset
|
969 if opt in self._long_opt: |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
970 conflict_opts.append((opt, self._long_opt[opt])) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
971 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
972 if conflict_opts: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
973 handler = self.conflict_handler |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
974 if handler == "error": |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
975 raise OptionConflictError( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
976 "conflicting option string(s): %s" |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
977 % ", ".join([co[0] for co in conflict_opts]), |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
978 option) |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
979 elif handler == "resolve": |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
980 for (opt, c_option) in conflict_opts: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
981 if opt.startswith("--"): |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
982 c_option._long_opts.remove(opt) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
983 del self._long_opt[opt] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
984 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
985 c_option._short_opts.remove(opt) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
986 del self._short_opt[opt] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
987 if not (c_option._short_opts or c_option._long_opts): |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
988 c_option.container.option_list.remove(c_option) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
989 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
990 def add_option(self, *args, **kwargs): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
991 """add_option(Option) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
992 add_option(opt_str, ..., kwarg=val, ...) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
993 """ |
|
43577
ace45b361e87
Patch# 1258 by Christian Heimes: kill basestring.
Guido van Rossum <guido@python.org>
parents:
43020
diff
changeset
|
994 if isinstance(args[0], str): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
995 option = self.option_class(*args, **kwargs) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
996 elif len(args) == 1 and not kwargs: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
997 option = args[0] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
998 if not isinstance(option, Option): |
|
43020
907a45df1295
Raise statement normalization in Lib/.
Collin Winter <collinw@gmail.com>
parents:
42552
diff
changeset
|
999 raise TypeError("not an Option instance: %r" % option) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1000 else: |
|
43020
907a45df1295
Raise statement normalization in Lib/.
Collin Winter <collinw@gmail.com>
parents:
42552
diff
changeset
|
1001 raise TypeError("invalid arguments") |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1002 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1003 self._check_conflict(option) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1004 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1005 self.option_list.append(option) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1006 option.container = self |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1007 for opt in option._short_opts: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1008 self._short_opt[opt] = option |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1009 for opt in option._long_opts: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1010 self._long_opt[opt] = option |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1011 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1012 if option.dest is not None: # option has a dest, we need a default |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1013 if option.default is not NO_DEFAULT: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1014 self.defaults[option.dest] = option.default |
|
39575
63237fcefd99
Get rid of dict.has_key(). Boy this has a lot of repercussions!
Guido van Rossum <guido@python.org>
parents:
39442
diff
changeset
|
1015 elif option.dest not in self.defaults: |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1016 self.defaults[option.dest] = None |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1017 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1018 return option |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1019 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1020 def add_options(self, option_list): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1021 for option in option_list: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1022 self.add_option(option) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1023 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1024 # -- Option query/removal methods ---------------------------------- |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1025 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1026 def get_option(self, opt_str): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1027 return (self._short_opt.get(opt_str) or |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1028 self._long_opt.get(opt_str)) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1029 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1030 def has_option(self, opt_str): |
|
39575
63237fcefd99
Get rid of dict.has_key(). Boy this has a lot of repercussions!
Guido van Rossum <guido@python.org>
parents:
39442
diff
changeset
|
1031 return (opt_str in self._short_opt or |
|
39589
d240ce5696f9
More has_key() fixes.
Guido van Rossum <guido@python.org>
parents:
39575
diff
changeset
|
1032 opt_str in self._long_opt) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1033 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1034 def remove_option(self, opt_str): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1035 option = self._short_opt.get(opt_str) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1036 if option is None: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1037 option = self._long_opt.get(opt_str) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1038 if option is None: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1039 raise ValueError("no such option %r" % opt_str) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1040 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1041 for opt in option._short_opts: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1042 del self._short_opt[opt] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1043 for opt in option._long_opts: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1044 del self._long_opt[opt] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1045 option.container.option_list.remove(option) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1046 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1047 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1048 # -- Help-formatting methods --------------------------------------- |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1049 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1050 def format_option_help(self, formatter): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1051 if not self.option_list: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1052 return "" |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1053 result = [] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1054 for option in self.option_list: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1055 if not option.help is SUPPRESS_HELP: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1056 result.append(formatter.format_option(option)) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1057 return "".join(result) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1058 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1059 def format_description(self, formatter): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1060 return formatter.format_description(self.get_description()) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1061 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1062 def format_help(self, formatter): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1063 result = [] |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1064 if self.description: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1065 result.append(self.format_description(formatter)) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1066 if self.option_list: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1067 result.append(self.format_option_help(formatter)) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1068 return "\n".join(result) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1069 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1070 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1071 class OptionGroup (OptionContainer): |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1072 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1073 def __init__(self, parser, title, description=None): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1074 self.parser = parser |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1075 OptionContainer.__init__( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1076 self, parser.option_class, parser.conflict_handler, description) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1077 self.title = title |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1078 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1079 def _create_option_list(self): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1080 self.option_list = [] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1081 self._share_option_mappings(self.parser) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1082 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1083 def set_title(self, title): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1084 self.title = title |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1085 |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1086 def destroy(self): |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1087 """see OptionParser.destroy().""" |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1088 OptionContainer.destroy(self) |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1089 del self.option_list |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1090 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1091 # -- Help-formatting methods --------------------------------------- |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1092 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1093 def format_help(self, formatter): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1094 result = formatter.format_heading(self.title) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1095 formatter.indent() |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1096 result += OptionContainer.format_help(self, formatter) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1097 formatter.dedent() |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1098 return result |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1099 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1100 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1101 class OptionParser (OptionContainer): |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1102 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1103 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1104 Class attributes: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1105 standard_option_list : [Option] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1106 list of standard options that will be accepted by all instances |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1107 of this parser class (intended to be overridden by subclasses). |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1108 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1109 Instance attributes: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1110 usage : string |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1111 a usage string for your program. Before it is displayed |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1112 to the user, "%prog" will be expanded to the name of |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
1113 your program (self.prog or os.path.basename(sys.argv[0])). |
|
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
1114 prog : string |
|
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
1115 the name of the current program (to override |
|
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
1116 os.path.basename(sys.argv[0])). |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1117 epilog : string |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1118 paragraph of help text to print after option help |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1119 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1120 option_groups : [OptionGroup] |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1121 list of option groups in this parser (option groups are |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1122 irrelevant for parsing the command-line, but very useful |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1123 for generating help) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1124 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1125 allow_interspersed_args : bool = true |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1126 if true, positional arguments may be interspersed with options. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1127 Assuming -a and -b each take a single argument, the command-line |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1128 -ablah foo bar -bboo baz |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1129 will be interpreted the same as |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1130 -ablah -bboo -- foo bar baz |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1131 If this flag were false, that command line would be interpreted as |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1132 -ablah -- foo bar -bboo baz |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1133 -- ie. we stop processing options as soon as we see the first |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1134 non-option argument. (This is the tradition followed by |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1135 Python's getopt module, Perl's Getopt::Std, and other argument- |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1136 parsing libraries, but it is generally annoying to users.) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1137 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1138 process_default_values : bool = true |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1139 if true, option default values are processed similarly to option |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1140 values from the command line: that is, they are passed to the |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1141 type-checking function for the option's type (as long as the |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1142 default value is a string). (This really only matters if you |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1143 have defined custom types; see SF bug #955889.) Set it to false |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1144 to restore the behaviour of Optik 1.4.1 and earlier. |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1145 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1146 rargs : [string] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1147 the argument list currently being parsed. Only set when |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1148 parse_args() is active, and continually trimmed down as |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1149 we consume arguments. Mainly there for the benefit of |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1150 callback options. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1151 largs : [string] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1152 the list of leftover arguments that we have skipped while |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1153 parsing options. If allow_interspersed_args is false, this |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1154 list is always empty. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1155 values : Values |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1156 the set of option values currently being accumulated. Only |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1157 set when parse_args() is active. Also mainly for callbacks. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1158 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1159 Because of the 'rargs', 'largs', and 'values' attributes, |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1160 OptionParser is not thread-safe. If, for some perverse reason, you |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1161 need to parse command-line arguments simultaneously in different |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1162 threads, use different OptionParser instances. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1163 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1164 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1165 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1166 standard_option_list = [] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1167 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1168 def __init__(self, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1169 usage=None, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1170 option_list=None, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1171 option_class=Option, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1172 version=None, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1173 conflict_handler="error", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1174 description=None, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1175 formatter=None, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1176 add_help_option=True, |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1177 prog=None, |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1178 epilog=None): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1179 OptionContainer.__init__( |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1180 self, option_class, conflict_handler, description) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1181 self.set_usage(usage) |
|
28705
be14970a9955
Update to Optik 1.4.1; here are the relevant bits of the change log:
Greg Ward <gward@python.net>
parents:
27091
diff
changeset
|
1182 self.prog = prog |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1183 self.version = version |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1184 self.allow_interspersed_args = True |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1185 self.process_default_values = True |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1186 if formatter is None: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1187 formatter = IndentedHelpFormatter() |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1188 self.formatter = formatter |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1189 self.formatter.set_parser(self) |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1190 self.epilog = epilog |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1191 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1192 # Populate the option list; initial sources are the |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1193 # standard_option_list class attribute, the 'option_list' |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1194 # argument, and (if applicable) the _add_version_option() and |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1195 # _add_help_option() methods. |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1196 self._populate_option_list(option_list, |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1197 add_help=add_help_option) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1198 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1199 self._init_parsing_state() |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1200 |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1201 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1202 def destroy(self): |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1203 """ |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1204 Declare that you are done with this OptionParser. This cleans up |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1205 reference cycles so the OptionParser (and all objects referenced by |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1206 it) can be garbage-collected promptly. After calling destroy(), the |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1207 OptionParser is unusable. |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1208 """ |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1209 OptionContainer.destroy(self) |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1210 for group in self.option_groups: |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1211 group.destroy() |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1212 del self.option_list |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1213 del self.option_groups |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1214 del self.formatter |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1215 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1216 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1217 # -- Private methods ----------------------------------------------- |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1218 # (used by our or OptionContainer's constructor) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1219 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1220 def _create_option_list(self): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1221 self.option_list = [] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1222 self.option_groups = [] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1223 self._create_option_mappings() |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1224 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1225 def _add_help_option(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1226 self.add_option("-h", "--help", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1227 action="help", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1228 help=_("show this help message and exit")) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1229 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1230 def _add_version_option(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1231 self.add_option("--version", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1232 action="version", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1233 help=_("show program's version number and exit")) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1234 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1235 def _populate_option_list(self, option_list, add_help=True): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1236 if self.standard_option_list: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1237 self.add_options(self.standard_option_list) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1238 if option_list: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1239 self.add_options(option_list) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1240 if self.version: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1241 self._add_version_option() |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1242 if add_help: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1243 self._add_help_option() |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1244 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1245 def _init_parsing_state(self): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1246 # These are set in parse_args() for the convenience of callbacks. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1247 self.rargs = None |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1248 self.largs = None |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1249 self.values = None |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1250 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1251 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1252 # -- Simple modifier methods --------------------------------------- |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1253 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1254 def set_usage(self, usage): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1255 if usage is None: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1256 self.usage = _("%prog [options]") |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1257 elif usage is SUPPRESS_USAGE: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1258 self.usage = None |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1259 # For backwards compatibility with Optik 1.3 and earlier. |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1260 elif usage.lower().startswith("usage: "): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1261 self.usage = usage[7:] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1262 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1263 self.usage = usage |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1264 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1265 def enable_interspersed_args(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1266 self.allow_interspersed_args = True |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1267 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1268 def disable_interspersed_args(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1269 self.allow_interspersed_args = False |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1270 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1271 def set_process_default_values(self, process): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1272 self.process_default_values = process |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1273 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1274 def set_default(self, dest, value): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1275 self.defaults[dest] = value |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1276 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1277 def set_defaults(self, **kwargs): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1278 self.defaults.update(kwargs) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1279 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1280 def _get_all_options(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1281 options = self.option_list[:] |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1282 for group in self.option_groups: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1283 options.extend(group.option_list) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1284 return options |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1285 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1286 def get_default_values(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1287 if not self.process_default_values: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1288 # Old, pre-Optik 1.5 behaviour. |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1289 return Values(self.defaults) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1290 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1291 defaults = self.defaults.copy() |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1292 for option in self._get_all_options(): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1293 default = defaults.get(option.dest) |
|
43577
ace45b361e87
Patch# 1258 by Christian Heimes: kill basestring.
Guido van Rossum <guido@python.org>
parents:
43020
diff
changeset
|
1294 if isinstance(default, str): |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1295 opt_str = option.get_opt_string() |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1296 defaults[option.dest] = option.check_value(opt_str, default) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1297 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1298 return Values(defaults) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1299 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1300 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1301 # -- OptionGroup methods ------------------------------------------- |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1302 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1303 def add_option_group(self, *args, **kwargs): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1304 # XXX lots of overlap with OptionContainer.add_option() |
|
43577
ace45b361e87
Patch# 1258 by Christian Heimes: kill basestring.
Guido van Rossum <guido@python.org>
parents:
43020
diff
changeset
|
1305 if isinstance(args[0], str): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1306 group = OptionGroup(self, *args, **kwargs) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1307 elif len(args) == 1 and not kwargs: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1308 group = args[0] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1309 if not isinstance(group, OptionGroup): |
|
43020
907a45df1295
Raise statement normalization in Lib/.
Collin Winter <collinw@gmail.com>
parents:
42552
diff
changeset
|
1310 raise TypeError("not an OptionGroup instance: %r" % group) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1311 if group.parser is not self: |
|
43020
907a45df1295
Raise statement normalization in Lib/.
Collin Winter <collinw@gmail.com>
parents:
42552
diff
changeset
|
1312 raise ValueError("invalid OptionGroup (wrong parser)") |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1313 else: |
|
43020
907a45df1295
Raise statement normalization in Lib/.
Collin Winter <collinw@gmail.com>
parents:
42552
diff
changeset
|
1314 raise TypeError("invalid arguments") |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1315 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1316 self.option_groups.append(group) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1317 return group |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1318 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1319 def get_option_group(self, opt_str): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1320 option = (self._short_opt.get(opt_str) or |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1321 self._long_opt.get(opt_str)) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1322 if option and option.container is not self: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1323 return option.container |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1324 return None |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1325 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1326 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1327 # -- Option-parsing methods ---------------------------------------- |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1328 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1329 def _get_args(self, args): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1330 if args is None: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1331 return sys.argv[1:] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1332 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1333 return args[:] # don't modify caller's list |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1334 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1335 def parse_args(self, args=None, values=None): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1336 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1337 parse_args(args : [string] = sys.argv[1:], |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1338 values : Values = None) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1339 -> (values : Values, args : [string]) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1340 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1341 Parse the command-line options found in 'args' (default: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1342 sys.argv[1:]). Any errors result in a call to 'error()', which |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1343 by default prints the usage message to stderr and calls |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1344 sys.exit() with an error message. On success returns a pair |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1345 (values, args) where 'values' is an Values instance (with all |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1346 your option values) and 'args' is the list of arguments left |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1347 over after parsing options. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1348 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1349 rargs = self._get_args(args) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1350 if values is None: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1351 values = self.get_default_values() |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1352 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1353 # Store the halves of the argument list as attributes for the |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1354 # convenience of callbacks: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1355 # rargs |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1356 # the rest of the command-line (the "r" stands for |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1357 # "remaining" or "right-hand") |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1358 # largs |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1359 # the leftover arguments -- ie. what's left after removing |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1360 # options and their arguments (the "l" stands for "leftover" |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1361 # or "left-hand") |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1362 self.rargs = rargs |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1363 self.largs = largs = [] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1364 self.values = values |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1365 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1366 try: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1367 stop = self._process_args(largs, rargs, values) |
|
40587
6b18a095c2e7
SF patch 1631942 by Collin Winter:
Guido van Rossum <guido@python.org>
parents:
39644
diff
changeset
|
1368 except (BadOptionError, OptionValueError) as err: |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1369 self.error(str(err)) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1370 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1371 args = largs + rargs |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1372 return self.check_values(values, args) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1373 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1374 def check_values(self, values, args): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1375 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1376 check_values(values : Values, args : [string]) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1377 -> (values : Values, args : [string]) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1378 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1379 Check that the supplied option values and leftover arguments are |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1380 valid. Returns the option values and leftover arguments |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1381 (possibly adjusted, possibly completely new -- whatever you |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1382 like). Default implementation just returns the passed-in |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1383 values; subclasses may override as desired. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1384 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1385 return (values, args) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1386 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1387 def _process_args(self, largs, rargs, values): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1388 """_process_args(largs : [string], |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1389 rargs : [string], |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1390 values : Values) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1391 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1392 Process command-line arguments and populate 'values', consuming |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1393 options and arguments from 'rargs'. If 'allow_interspersed_args' is |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1394 false, stop at the first non-option argument. If true, accumulate any |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1395 interspersed non-option arguments in 'largs'. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1396 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1397 while rargs: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1398 arg = rargs[0] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1399 # We handle bare "--" explicitly, and bare "-" is handled by the |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1400 # standard arg handler since the short arg case ensures that the |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1401 # len of the opt string is greater than 1. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1402 if arg == "--": |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1403 del rargs[0] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1404 return |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1405 elif arg[0:2] == "--": |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1406 # process a single long option (possibly with value(s)) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1407 self._process_long_opt(rargs, values) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1408 elif arg[:1] == "-" and len(arg) > 1: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1409 # process a cluster of short options (possibly with |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1410 # value(s) for the last one only) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1411 self._process_short_opts(rargs, values) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1412 elif self.allow_interspersed_args: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1413 largs.append(arg) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1414 del rargs[0] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1415 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1416 return # stop now, leave this arg in rargs |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1417 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1418 # Say this is the original argument list: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1419 # [arg0, arg1, ..., arg(i-1), arg(i), arg(i+1), ..., arg(N-1)] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1420 # ^ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1421 # (we are about to process arg(i)). |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1422 # |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1423 # Then rargs is [arg(i), ..., arg(N-1)] and largs is a *subset* of |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1424 # [arg0, ..., arg(i-1)] (any options and their arguments will have |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1425 # been removed from largs). |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1426 # |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1427 # The while loop will usually consume 1 or more arguments per pass. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1428 # If it consumes 1 (eg. arg is an option that takes no arguments), |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1429 # then after _process_arg() is done the situation is: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1430 # |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1431 # largs = subset of [arg0, ..., arg(i)] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1432 # rargs = [arg(i+1), ..., arg(N-1)] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1433 # |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1434 # If allow_interspersed_args is false, largs will always be |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1435 # *empty* -- still a subset of [arg0, ..., arg(i-1)], but |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1436 # not a very interesting subset! |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1437 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1438 def _match_long_opt(self, opt): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1439 """_match_long_opt(opt : string) -> string |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1440 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1441 Determine which long option string 'opt' matches, ie. which one |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1442 it is an unambiguous abbrevation for. Raises BadOptionError if |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1443 'opt' doesn't unambiguously match any long option string. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1444 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1445 return _match_abbrev(opt, self._long_opt) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1446 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1447 def _process_long_opt(self, rargs, values): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1448 arg = rargs.pop(0) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1449 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1450 # Value explicitly attached to arg? Pretend it's the next |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1451 # argument. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1452 if "=" in arg: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1453 (opt, next_arg) = arg.split("=", 1) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1454 rargs.insert(0, next_arg) |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1455 had_explicit_value = True |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1456 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1457 opt = arg |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1458 had_explicit_value = False |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1459 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1460 opt = self._match_long_opt(opt) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1461 option = self._long_opt[opt] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1462 if option.takes_value(): |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1463 nargs = option.nargs |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1464 if len(rargs) < nargs: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1465 if nargs == 1: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1466 self.error(_("%s option requires an argument") % opt) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1467 else: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1468 self.error(_("%s option requires %d arguments") |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1469 % (opt, nargs)) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1470 elif nargs == 1: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1471 value = rargs.pop(0) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1472 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1473 value = tuple(rargs[0:nargs]) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1474 del rargs[0:nargs] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1475 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1476 elif had_explicit_value: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1477 self.error(_("%s option does not take a value") % opt) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1478 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1479 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1480 value = None |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1481 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1482 option.process(opt, value, values, self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1483 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1484 def _process_short_opts(self, rargs, values): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1485 arg = rargs.pop(0) |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1486 stop = False |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1487 i = 1 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1488 for ch in arg[1:]: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1489 opt = "-" + ch |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1490 option = self._short_opt.get(opt) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1491 i += 1 # we have consumed a character |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1492 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1493 if not option: |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1494 raise BadOptionError(opt) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1495 if option.takes_value(): |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1496 # Any characters left in arg? Pretend they're the |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1497 # next arg, and stop consuming characters of arg. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1498 if i < len(arg): |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1499 rargs.insert(0, arg[i:]) |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1500 stop = True |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1501 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1502 nargs = option.nargs |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1503 if len(rargs) < nargs: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1504 if nargs == 1: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1505 self.error(_("%s option requires an argument") % opt) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1506 else: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1507 self.error(_("%s option requires %d arguments") |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1508 % (opt, nargs)) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1509 elif nargs == 1: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1510 value = rargs.pop(0) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1511 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1512 value = tuple(rargs[0:nargs]) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1513 del rargs[0:nargs] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1514 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1515 else: # option doesn't take a value |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1516 value = None |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1517 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1518 option.process(opt, value, values, self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1519 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1520 if stop: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1521 break |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1522 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1523 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1524 # -- Feedback methods ---------------------------------------------- |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1525 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1526 def get_prog_name(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1527 if self.prog is None: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1528 return os.path.basename(sys.argv[0]) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1529 else: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1530 return self.prog |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1531 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1532 def expand_prog_name(self, s): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1533 return s.replace("%prog", self.get_prog_name()) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1534 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1535 def get_description(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1536 return self.expand_prog_name(self.description) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1537 |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
1538 def exit(self, status=0, msg=None): |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
1539 if msg: |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
1540 sys.stderr.write(msg) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
1541 sys.exit(status) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
1542 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1543 def error(self, msg): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1544 """error(msg : string) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1545 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1546 Print a usage message incorporating 'msg' to stderr and exit. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1547 If you override this in a subclass, it should not return -- it |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1548 should either exit or raise an exception. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1549 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1550 self.print_usage(sys.stderr) |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
1551 self.exit(2, "%s: error: %s\n" % (self.get_prog_name(), msg)) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1552 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1553 def get_usage(self): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1554 if self.usage: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1555 return self.formatter.format_usage( |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1556 self.expand_prog_name(self.usage)) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1557 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1558 return "" |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1559 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1560 def print_usage(self, file=None): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1561 """print_usage(file : file = stdout) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1562 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1563 Print the usage message for the current program (self.usage) to |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1564 'file' (default stdout). Any occurence of the string "%prog" in |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1565 self.usage is replaced with the name of the current program |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1566 (basename of sys.argv[0]). Does nothing if self.usage is empty |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1567 or not defined. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1568 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1569 if self.usage: |
|
40775
4cdf21a0dbbc
Fix most trivially-findable print statements.
Guido van Rossum <guido@python.org>
parents:
40644
diff
changeset
|
1570 print(self.get_usage(), file=file) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1571 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1572 def get_version(self): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1573 if self.version: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1574 return self.expand_prog_name(self.version) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1575 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1576 return "" |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1577 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1578 def print_version(self, file=None): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1579 """print_version(file : file = stdout) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1580 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1581 Print the version message for this program (self.version) to |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1582 'file' (default stdout). As with print_usage(), any occurence |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1583 of "%prog" in self.version is replaced by the current program's |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1584 name. Does nothing if self.version is empty or undefined. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1585 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1586 if self.version: |
|
40775
4cdf21a0dbbc
Fix most trivially-findable print statements.
Guido van Rossum <guido@python.org>
parents:
40644
diff
changeset
|
1587 print(self.get_version(), file=file) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1588 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1589 def format_option_help(self, formatter=None): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1590 if formatter is None: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1591 formatter = self.formatter |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1592 formatter.store_option_strings(self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1593 result = [] |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1594 result.append(formatter.format_heading(_("Options"))) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1595 formatter.indent() |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1596 if self.option_list: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1597 result.append(OptionContainer.format_option_help(self, formatter)) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1598 result.append("\n") |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1599 for group in self.option_groups: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1600 result.append(group.format_help(formatter)) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1601 result.append("\n") |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1602 formatter.dedent() |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1603 # Drop the last "\n", or the header if no options or option groups: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1604 return "".join(result[:-1]) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1605 |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1606 def format_epilog(self, formatter): |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1607 return formatter.format_epilog(self.epilog) |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1608 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1609 def format_help(self, formatter=None): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1610 if formatter is None: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1611 formatter = self.formatter |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1612 result = [] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1613 if self.usage: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1614 result.append(self.get_usage() + "\n") |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1615 if self.description: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1616 result.append(self.format_description(formatter) + "\n") |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1617 result.append(self.format_option_help(formatter)) |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1618 result.append(self.format_epilog(formatter)) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1619 return "".join(result) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1620 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1621 def print_help(self, file=None): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1622 """print_help(file : file = stdout) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1623 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1624 Print an extended help message, listing all options and any |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1625 help text provided with them, to 'file' (default stdout). |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1626 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1627 if file is None: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1628 file = sys.stdout |
|
42501
f6069f9dd52d
SF patch# 1770008 by Christian Heimes (plus some extras).
Guido van Rossum <guido@python.org>
parents:
42142
diff
changeset
|
1629 file.write(self.format_help()) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1630 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1631 # class OptionParser |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1632 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1633 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1634 def _match_abbrev(s, wordmap): |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1635 """_match_abbrev(s : string, wordmap : {string : Option}) -> string |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1636 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1637 Return the string key in 'wordmap' for which 's' is an unambiguous |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1638 abbreviation. If 's' is found to be ambiguous or doesn't match any of |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1639 'words', raise BadOptionError. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1640 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1641 # Is there an exact match? |
|
39575
63237fcefd99
Get rid of dict.has_key(). Boy this has a lot of repercussions!
Guido van Rossum <guido@python.org>
parents:
39442
diff
changeset
|
1642 if s in wordmap: |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1643 return s |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1644 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1645 # Isolate all words with s as a prefix. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1646 possibilities = [word for word in wordmap.keys() |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1647 if word.startswith(s)] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1648 # No exact match, so there had better be just one possibility. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1649 if len(possibilities) == 1: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1650 return possibilities[0] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1651 elif not possibilities: |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1652 raise BadOptionError(s) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1653 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1654 # More than one possible completion: ambiguous prefix. |
|
38669
19fd6141940d
Partially merge trunk into p3yk. The removal of Mac/Tools is confusing svn
Thomas Wouters <thomas@python.org>
parents:
38453
diff
changeset
|
1655 possibilities.sort() |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1656 raise AmbiguousOptionError(s, possibilities) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1657 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1658 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1659 # Some day, there might be many Option classes. As of Optik 1.3, the |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1660 # preferred way to instantiate Options is indirectly, via make_option(), |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1661 # which will become a factory function when there are many Option |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1662 # classes. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1663 make_option = Option |
