Mercurial > cpython-lru_cache-weakref
annotate Lib/optparse.py @ 74006:88198b93ff2f
Issue #13560: Add PyUnicode_EncodeLocale()
* Use PyUnicode_EncodeLocale() in time.strftime() if wcsftime() is not
available
* Document my last changes in Misc/NEWS
| author | Victor Stinner <victor.stinner@haypocalc.com> |
|---|---|
| date | Sat, 17 Dec 2011 04:13:41 +0100 |
| parents | fb828a3b1bf8 |
| children | e07f104133d5 8d28d44f3a9a |
| rev | line source |
|---|---|
| 49493 | 1 """A powerful, extensible, and easy-to-use option 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
|
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 |
| 49493 | 5 Originally distributed as Optik. |
|
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
|
6 |
|
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
|
7 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
|
8 (http://lists.sourceforge.net/lists/listinfo/optik-users). |
|
53523
ea4e192d9414
Merged revisions 71540,71563 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52892
diff
changeset
|
9 |
|
ea4e192d9414
Merged revisions 71540,71563 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52892
diff
changeset
|
10 Simple usage example: |
|
ea4e192d9414
Merged revisions 71540,71563 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52892
diff
changeset
|
11 |
|
ea4e192d9414
Merged revisions 71540,71563 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52892
diff
changeset
|
12 from optparse import OptionParser |
|
ea4e192d9414
Merged revisions 71540,71563 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52892
diff
changeset
|
13 |
|
ea4e192d9414
Merged revisions 71540,71563 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52892
diff
changeset
|
14 parser = OptionParser() |
|
ea4e192d9414
Merged revisions 71540,71563 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52892
diff
changeset
|
15 parser.add_option("-f", "--file", dest="filename", |
|
ea4e192d9414
Merged revisions 71540,71563 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52892
diff
changeset
|
16 help="write report to FILE", metavar="FILE") |
|
ea4e192d9414
Merged revisions 71540,71563 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52892
diff
changeset
|
17 parser.add_option("-q", "--quiet", |
|
ea4e192d9414
Merged revisions 71540,71563 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52892
diff
changeset
|
18 action="store_false", dest="verbose", default=True, |
|
ea4e192d9414
Merged revisions 71540,71563 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52892
diff
changeset
|
19 help="don't print status messages to stdout") |
|
ea4e192d9414
Merged revisions 71540,71563 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52892
diff
changeset
|
20 |
|
ea4e192d9414
Merged revisions 71540,71563 via svnmerge from
Georg Brandl <georg@python.org>
parents:
52892
diff
changeset
|
21 (options, args) = parser.parse_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
|
22 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
23 |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38669
diff
changeset
|
24 __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
|
25 |
|
29021
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
26 __all__ = ['Option', |
|
52892
792bb885029f
Merged revisions 70712,70714,70764-70765,70769-70771,70773,70776-70777,70788-70789,70824,70828,70832,70836,70842,70851,70855,70857,70866-70872,70883,70885,70893-70894,70896-70897,70903,70905-70907,70915,70927,70933,70951,70960,70962-70964,70998,71001,71006,71008,71010-71011,71019,71037,71056,71094,71101-71103,71106,71119,71123,71149-71150,71203,71212,71214-71217,71221,71240 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
51776
diff
changeset
|
27 'make_option', |
|
29021
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
28 'SUPPRESS_HELP', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
29 'SUPPRESS_USAGE', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
30 'Values', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
31 'OptionContainer', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
32 'OptionGroup', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
33 'OptionParser', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
34 'HelpFormatter', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
35 'IndentedHelpFormatter', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
36 'TitledHelpFormatter', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
37 'OptParseError', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
38 'OptionError', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
39 'OptionConflictError', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
40 'OptionValueError', |
|
2f652a59ebb0
Update to Optik 1.4.1+: adds __all__ (Optik SF bug #728563).
Greg Ward <gward@python.net>
parents:
28774
diff
changeset
|
41 '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
|
42 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
43 __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
|
44 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
|
45 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
|
46 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
47 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
|
48 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
|
49 met: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
50 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
51 * 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
|
52 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
|
53 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
54 * 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
|
55 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
|
56 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
|
57 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
58 * 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
|
59 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
|
60 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
|
61 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
62 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
|
63 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
|
64 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
|
65 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
|
66 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
|
67 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
|
68 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
|
69 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
|
70 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
|
71 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
|
72 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
|
73 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
74 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
75 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
|
76 import textwrap |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
77 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
78 def _repr(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
79 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
|
80 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
81 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
82 # This file was generated from: |
|
39442
654c380cf8b9
Merged revisions 46753-51188 via svnmerge from
Thomas Wouters <thomas@python.org>
parents:
38669
diff
changeset
|
83 # 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
|
84 # 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
|
85 # 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
|
86 # 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
|
87 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
88 try: |
|
68767
4a5782a2b074
Use proper gettext plural forms in optparse (closes #4391).
Éric Araujo <merwok@netwok.org>
parents:
53523
diff
changeset
|
89 from gettext import gettext, ngettext |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
90 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
|
91 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
|
92 return message |
|
68767
4a5782a2b074
Use proper gettext plural forms in optparse (closes #4391).
Éric Araujo <merwok@netwok.org>
parents:
53523
diff
changeset
|
93 |
|
4a5782a2b074
Use proper gettext plural forms in optparse (closes #4391).
Éric Araujo <merwok@netwok.org>
parents:
53523
diff
changeset
|
94 def ngettext(singular, plural, n): |
|
4a5782a2b074
Use proper gettext plural forms in optparse (closes #4391).
Éric Araujo <merwok@netwok.org>
parents:
53523
diff
changeset
|
95 if n == 1: |
|
4a5782a2b074
Use proper gettext plural forms in optparse (closes #4391).
Éric Araujo <merwok@netwok.org>
parents:
53523
diff
changeset
|
96 return singular |
|
4a5782a2b074
Use proper gettext plural forms in optparse (closes #4391).
Éric Araujo <merwok@netwok.org>
parents:
53523
diff
changeset
|
97 return plural |
|
4a5782a2b074
Use proper gettext plural forms in optparse (closes #4391).
Éric Araujo <merwok@netwok.org>
parents:
53523
diff
changeset
|
98 |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
99 _ = gettext |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
100 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
101 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
102 class OptParseError (Exception): |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
103 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
|
104 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
|
105 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
106 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
|
107 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
|
108 |
|
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
|
109 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
110 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
|
111 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
112 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
|
113 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
|
114 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
115 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
116 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
|
117 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
|
118 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
|
119 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
120 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
|
121 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
|
122 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
|
123 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
124 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
|
125 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
126 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
|
127 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
128 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
|
129 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
130 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
131 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
|
132 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
133 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
|
134 line. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
135 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
136 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
137 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
|
138 """ |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
139 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
|
140 """ |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
141 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
|
142 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
|
143 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
144 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
|
145 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
|
146 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
147 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
|
148 """ |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
149 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
|
150 """ |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
151 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
|
152 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
|
153 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
|
154 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
155 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
|
156 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
|
157 % (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
|
158 |
|
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
|
159 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
160 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
|
161 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
162 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
163 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
|
164 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
|
165 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
|
166 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
167 Instance attributes: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
168 parser : OptionParser |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
169 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
|
170 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
|
171 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
|
172 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
|
173 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
|
174 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
|
175 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
|
176 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
|
177 width : int |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
178 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
|
179 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
|
180 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
|
181 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
|
182 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
|
183 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
|
184 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
|
185 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
|
186 default_tag : str |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
187 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
|
188 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
|
189 option_strings : { Option : str } |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
190 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
|
191 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
|
192 "-fFILE, --file=FILE" |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
193 _short_opt_fmt : str |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
194 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
|
195 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
|
196 "%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
|
197 Optik supports. |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
198 _long_opt_fmt : str |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
199 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
|
200 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
|
201 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
202 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
203 NO_DEFAULT_VALUE = "none" |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
204 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
205 def __init__(self, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
206 indent_increment, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
207 max_help_position, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
208 width, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
209 short_first): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
210 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
|
211 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
|
212 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
|
213 if width is None: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
214 try: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
215 width = int(os.environ['COLUMNS']) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
216 except (KeyError, ValueError): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
217 width = 80 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
218 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
|
219 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
|
220 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
|
221 self.level = 0 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
222 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
|
223 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
|
224 self.default_tag = "%default" |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
225 self.option_strings = {} |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
226 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
|
227 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
|
228 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
229 def set_parser(self, parser): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
230 self.parser = parser |
|
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 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
|
233 if delim not in ("", " "): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
234 raise ValueError( |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
235 "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
|
236 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
|
237 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
238 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
|
239 if delim not in ("=", " "): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
240 raise ValueError( |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
241 "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
|
242 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
|
243 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
244 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
|
245 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
|
246 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
|
247 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
248 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
|
249 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
|
250 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
|
251 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
|
252 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
253 def format_usage(self, usage): |
|
43020
907a45df1295
Raise statement normalization in Lib/.
Collin Winter <collinw@gmail.com>
parents:
42552
diff
changeset
|
254 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
|
255 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
256 def format_heading(self, heading): |
|
43020
907a45df1295
Raise statement normalization in Lib/.
Collin Winter <collinw@gmail.com>
parents:
42552
diff
changeset
|
257 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
|
258 |
|
38453
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_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
|
260 """ |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
261 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
|
262 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
|
263 """ |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
264 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
|
265 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
|
266 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
|
267 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
|
268 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
|
269 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
|
270 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
271 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
|
272 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
|
273 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
|
274 else: |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
275 return "" |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
276 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
277 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
|
278 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
|
279 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
|
280 else: |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
281 return "" |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
282 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
283 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
284 def expand_default(self, option): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
285 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
|
286 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
|
287 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
288 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
|
289 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
|
290 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
|
291 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
292 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
|
293 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
294 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
|
295 # 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
|
296 # * 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
|
297 # 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
|
298 # * 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
|
299 # 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
|
300 # |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
301 # 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
|
302 # -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
|
303 # |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
304 # 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
|
305 # 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
|
306 # 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
|
307 # -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
|
308 # 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
|
309 result = [] |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
310 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
|
311 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
|
312 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
|
313 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
|
314 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
|
315 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
|
316 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
|
317 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
|
318 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
|
319 if option.help: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
320 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
|
321 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
|
322 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
|
323 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
|
324 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
|
325 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
|
326 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
|
327 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
|
328 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
329 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
|
330 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
|
331 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
|
332 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
|
333 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
|
334 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
|
335 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
|
336 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
|
337 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
|
338 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
|
339 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
|
340 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
|
341 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
|
342 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
|
343 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
|
344 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
|
345 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
|
346 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
347 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
|
348 """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
|
349 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
|
350 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
|
351 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
|
352 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
|
353 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
|
354 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
|
355 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
|
356 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
|
357 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
|
358 |
|
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
|
359 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
|
360 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
|
361 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
|
362 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
|
363 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
364 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
|
365 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
366 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
|
367 """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
|
368 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
369 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
370 def __init__(self, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
371 indent_increment=2, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
372 max_help_position=24, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
373 width=None, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
374 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
|
375 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
|
376 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
|
377 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
378 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
|
379 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
|
380 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
381 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
|
382 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
|
383 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
384 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
385 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
|
386 """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
|
387 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
388 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
389 def __init__(self, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
390 indent_increment=0, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
391 max_help_position=24, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
392 width=None, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
393 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
|
394 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
|
395 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
|
396 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
397 def format_usage(self, usage): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
398 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
|
399 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
400 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
|
401 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
|
402 |
|
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
|
403 |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
404 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
|
405 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
|
406 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
|
407 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
|
408 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
|
409 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
|
410 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
|
411 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
|
412 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
|
413 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
|
414 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
415 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
|
416 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
417 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
|
418 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
|
419 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
420 _builtin_cvt = { "int" : (_parse_int, _("integer")), |
|
73076
67053b135ed9
Cleanup code: remove int/long idioms and simplify a while statement.
Florent Xicluna <florent.xicluna@gmail.com>
parents:
69841
diff
changeset
|
421 "long" : (_parse_int, _("integer")), |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
422 "float" : (float, _("floating-point")), |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
423 "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
|
424 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
425 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
|
426 (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
|
427 try: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
428 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
|
429 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
|
430 raise OptionValueError( |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
431 _("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
|
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 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
|
434 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
|
435 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
|
436 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
437 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
|
438 raise OptionValueError( |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
439 _("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
|
440 % (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
|
441 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
442 # 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
|
443 # 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
|
444 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
|
445 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
446 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
447 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
|
448 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
449 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
|
450 _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
|
451 _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
|
452 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
453 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
|
454 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
|
455 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
|
456 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
|
457 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
|
458 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
|
459 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
|
460 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
|
461 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
|
462 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
|
463 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
|
464 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
|
465 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
466 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
467 # 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
|
468 # 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
|
469 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
|
470 'type', |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
471 'dest', |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
472 'default', |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
473 'nargs', |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
474 'const', |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
475 'choices', |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
476 'callback', |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
477 '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
|
478 '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
|
479 'help', |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
480 'metavar'] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
481 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
482 # 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
|
483 # 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
|
484 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
|
485 "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
|
486 "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
|
487 "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
|
488 "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
|
489 "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
|
490 "count", |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
491 "callback", |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
492 "help", |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
493 "version") |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
494 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
495 # 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
|
496 # 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
|
497 # 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
|
498 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
|
499 "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
|
500 "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
|
501 "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
|
502 "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
|
503 "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
|
504 "count") |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
505 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
506 # 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
|
507 # 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
|
508 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
|
509 "append", |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
510 "callback") |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
511 |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
512 # 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
|
513 # 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
|
514 ALWAYS_TYPED_ACTIONS = ("store", |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
515 "append") |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
516 |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
517 # 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
|
518 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
|
519 "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
|
520 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
521 # 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
|
522 # 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
|
523 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
|
524 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
525 # 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
|
526 # 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
|
527 # |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
528 # 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
|
529 # 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
|
530 # where |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
531 # 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
|
532 # 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
|
533 # (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
|
534 # 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
|
535 # |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
536 # 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
|
537 # 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
|
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 # 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
|
540 # 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
|
541 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
|
542 "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
|
543 "float" : check_builtin, |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
544 "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
|
545 "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
|
546 } |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
547 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
548 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
549 # 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
|
550 # 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
|
551 # 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
|
552 # 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
|
553 # 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
|
554 # 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
|
555 # 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
|
556 # 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
|
557 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
|
558 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
559 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
560 # -- 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
|
561 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
562 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
|
563 # 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
|
564 # 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
|
565 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
|
566 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
|
567 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
|
568 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
|
569 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
570 # 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
|
571 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
|
572 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
573 # 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
|
574 # 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
|
575 # 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
|
576 # 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
|
577 # 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
|
578 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
|
579 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
|
580 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
581 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
|
582 # 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
|
583 # 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
|
584 # could be None. |
|
42142
a53e48be6df9
Merged revisions 56125-56153 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41986
diff
changeset
|
585 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
|
586 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
|
587 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
|
588 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
|
589 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
590 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
|
591 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
|
592 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
|
593 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
|
594 "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
|
595 "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
|
596 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
|
597 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
|
598 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
|
599 "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
|
600 "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
|
601 self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
602 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
|
603 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
604 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
|
605 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
|
606 "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
|
607 "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
|
608 self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
609 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
|
610 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
611 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
|
612 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
|
613 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
|
614 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
|
615 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
|
616 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
617 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
|
618 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
|
619 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
620 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
|
621 if attrs: |
|
40819
5ef70c49d85a
Checkin the regenerated Python-ast.c and fix test_optparse.
Georg Brandl <georg@python.org>
parents:
40775
diff
changeset
|
622 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
|
623 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
|
624 "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
|
625 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 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
627 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
628 # -- 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
|
629 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
630 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
|
631 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
|
632 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
|
633 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
|
634 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
|
635 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
636 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
|
637 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
|
638 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
|
639 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
|
640 # 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
|
641 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
|
642 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
643 # 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
|
644 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
|
645 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
|
646 # 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
|
647 # (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
|
648 # 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
|
649 # 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
|
650 # first check on modern Pythons.) |
|
44098
0889daf6d0d9
#1535: rename __builtin__ module to builtins.
Georg Brandl <georg@python.org>
parents:
43577
diff
changeset
|
651 import builtins |
|
41986
6464cc638faa
Merged revisions 55795-55816 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41969
diff
changeset
|
652 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
|
653 (hasattr(self.type, "__name__") and |
|
44098
0889daf6d0d9
#1535: rename __builtin__ module to builtins.
Georg Brandl <georg@python.org>
parents:
43577
diff
changeset
|
654 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
|
655 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
|
656 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
657 if self.type == "str": |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
658 self.type = "string" |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
659 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
660 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
|
661 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
|
662 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
|
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 "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
|
665 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
666 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
|
667 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
|
668 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
|
669 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
|
670 "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
|
671 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
|
672 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
|
673 "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
|
674 % 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
|
675 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
|
676 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
|
677 "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
|
678 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
679 def _check_dest(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
680 # 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
|
681 # 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
|
682 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
|
683 self.type is not None) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
684 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
|
685 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
686 # 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
|
687 # 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
|
688 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
|
689 # 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
|
690 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
|
691 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
692 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
|
693 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
694 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
|
695 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
|
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 "'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
|
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_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
|
701 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
|
702 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
|
703 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
|
704 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
|
705 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
|
706 "'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
|
707 self) |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
708 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
709 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
|
710 if self.action == "callback": |
|
73165
8e57b5d8f58f
Closes #13258: Use callable() built-in in the standard library.
Florent Xicluna <florent.xicluna@gmail.com>
parents:
69839
diff
changeset
|
711 if not callable(self.callback): |
|
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 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
|
714 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
|
715 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
|
716 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
|
717 "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
|
718 % 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
|
719 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
|
720 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
|
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_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
|
723 % 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
|
724 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
725 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
|
726 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
|
727 "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
|
728 % 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
|
729 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
|
730 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
|
731 "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
|
732 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
|
733 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
|
734 "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
|
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 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
|
738 _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
|
739 _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
|
740 _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
|
741 _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
|
742 _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
|
743 _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
|
744 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
745 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
746 # -- 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
|
747 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
748 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
|
749 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
|
750 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
751 __repr__ = _repr |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
752 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
753 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
|
754 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
|
755 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
756 def get_opt_string(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
757 if self._long_opts: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
758 return self._long_opts[0] |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
759 else: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
760 return self._short_opts[0] |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
761 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
762 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
763 # -- 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
|
764 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
765 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
|
766 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
|
767 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
|
768 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
|
769 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
770 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
|
771 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
772 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
|
773 if value is not None: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
774 if self.nargs == 1: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
775 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
|
776 else: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
777 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
|
778 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
779 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
|
780 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
781 # 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
|
782 # value(s) are bogus. |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
783 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
|
784 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
785 # 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
|
786 # 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
|
787 # 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
|
788 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
|
789 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
|
790 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
791 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
|
792 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
|
793 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
|
794 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
|
795 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
|
796 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
|
797 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
|
798 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
|
799 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
|
800 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
|
801 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
|
802 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
|
803 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
|
804 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
|
805 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
|
806 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
|
807 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
|
808 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
|
809 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
|
810 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
|
811 parser.print_help() |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
812 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
|
813 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
|
814 parser.print_version() |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
815 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
|
816 else: |
|
49908
ed8adfef26c6
Merged revisions 67348,67355,67359,67362,67364-67365,67367-67368,67398,67423-67424,67432,67440-67441,67444-67445,67454-67455,67457-67458 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
49493
diff
changeset
|
817 raise ValueError("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
|
818 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
819 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
|
820 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
821 # 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
|
822 |
|
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
|
823 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
824 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
|
825 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
|
826 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
827 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
|
828 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
829 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
|
830 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
|
831 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
|
832 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
|
833 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
834 def __str__(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
835 return str(self.__dict__) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
836 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
837 __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
|
838 |
|
39644
13d5e5f0e993
Restructure comparison dramatically. There is no longer a default
Guido van Rossum <guido@python.org>
parents:
39589
diff
changeset
|
839 def __eq__(self, other): |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
840 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
|
841 return self.__dict__ == other.__dict__ |
|
41986
6464cc638faa
Merged revisions 55795-55816 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
41969
diff
changeset
|
842 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
|
843 return self.__dict__ == other |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
844 else: |
|
39644
13d5e5f0e993
Restructure comparison dramatically. There is no longer a default
Guido van Rossum <guido@python.org>
parents:
39589
diff
changeset
|
845 return NotImplemented |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
846 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
847 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
|
848 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
849 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
|
850 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
|
851 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
|
852 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
|
853 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
854 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
|
855 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
|
856 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
|
857 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
|
858 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
|
859 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
860 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
|
861 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
862 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
|
863 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
|
864 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
|
865 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
866 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
|
867 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
868 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
|
869 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
|
870 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
|
871 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
|
872 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
|
873 else: |
|
43020
907a45df1295
Raise statement normalization in Lib/.
Collin Winter <collinw@gmail.com>
parents:
42552
diff
changeset
|
874 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
|
875 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
876 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
|
877 __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
|
878 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
|
879 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
|
880 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
881 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
|
882 vars = {} |
|
42552
ac192f89c109
Kill execfile(), use exec() instead
Neal Norwitz <nnorwitz@gmail.com>
parents:
42501
diff
changeset
|
883 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
|
884 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
|
885 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
886 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
|
887 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
|
888 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
|
889 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
|
890 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
891 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
892 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
|
893 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
894 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
895 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
|
896 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
897 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
|
898 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
|
899 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
|
900 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
|
901 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
902 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
|
903 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
|
904 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
|
905 _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
|
906 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
|
907 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
|
908 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
|
909 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
|
910 _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
|
911 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
|
912 "--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
|
913 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
|
914 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
|
915 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
|
916 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
|
917 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
|
918 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
919 [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
|
920 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
|
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 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
923 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
924 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
|
925 # 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
|
926 # 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
|
927 # 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
|
928 # 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
|
929 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
|
930 |
|
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.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
|
932 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
|
933 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
|
934 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
935 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
|
936 # 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
|
937 # 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
|
938 # 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
|
939 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
|
940 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
|
941 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
|
942 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
943 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
944 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
|
945 # 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
|
946 # 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
|
947 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
|
948 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
|
949 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
|
950 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
951 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
|
952 if handler not in ("error", "resolve"): |
|
43020
907a45df1295
Raise statement normalization in Lib/.
Collin Winter <collinw@gmail.com>
parents:
42552
diff
changeset
|
953 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
|
954 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
|
955 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
956 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
|
957 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
|
958 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
959 def get_description(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
960 return self.description |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
961 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
962 |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
963 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
|
964 """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
|
965 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
|
966 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
|
967 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
|
968 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
969 |
|
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 # -- 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
|
971 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
972 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
|
973 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
|
974 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
|
975 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
|
976 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
|
977 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
|
978 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
|
979 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
|
980 |
|
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 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
|
982 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
|
983 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
|
984 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
|
985 "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
|
986 % ", ".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
|
987 option) |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
988 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
|
989 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
|
990 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
|
991 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
|
992 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
|
993 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
994 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
|
995 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
|
996 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
|
997 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
|
998 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
999 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
|
1000 """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
|
1001 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
|
1002 """ |
|
43577
ace45b361e87
Patch# 1258 by Christian Heimes: kill basestring.
Guido van Rossum <guido@python.org>
parents:
43020
diff
changeset
|
1003 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
|
1004 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
|
1005 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
|
1006 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
|
1007 if not isinstance(option, Option): |
|
43020
907a45df1295
Raise statement normalization in Lib/.
Collin Winter <collinw@gmail.com>
parents:
42552
diff
changeset
|
1008 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
|
1009 else: |
|
43020
907a45df1295
Raise statement normalization in Lib/.
Collin Winter <collinw@gmail.com>
parents:
42552
diff
changeset
|
1010 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
|
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 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
|
1013 |
|
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.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
|
1015 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
|
1016 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
|
1017 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
|
1018 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
|
1019 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
|
1020 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1021 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
|
1022 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
|
1023 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
|
1024 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
|
1025 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
|
1026 |
|
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 option |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1028 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1029 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
|
1030 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
|
1031 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
|
1032 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1033 # -- 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
|
1034 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1035 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
|
1036 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
|
1037 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 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1039 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
|
1040 return (opt_str in self._short_opt or |
|
39589
d240ce5696f9
More has_key() fixes.
Guido van Rossum <guido@python.org>
parents:
39575
diff
changeset
|
1041 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
|
1042 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1043 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
|
1044 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
|
1045 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
|
1046 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
|
1047 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
|
1048 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
|
1049 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1050 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
|
1051 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
|
1052 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
|
1053 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
|
1054 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
|
1055 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1056 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1057 # -- 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
|
1058 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1059 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
|
1060 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
|
1061 return "" |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1062 result = [] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1063 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
|
1064 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
|
1065 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
|
1066 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
|
1067 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1068 def format_description(self, formatter): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1069 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
|
1070 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1071 def format_help(self, formatter): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1072 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
|
1073 if self.description: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1074 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
|
1075 if self.option_list: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1076 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
|
1077 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
|
1078 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1079 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1080 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
|
1081 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1082 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
|
1083 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
|
1084 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
|
1085 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
|
1086 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
|
1087 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1088 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
|
1089 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
|
1090 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
|
1091 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1092 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
|
1093 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
|
1094 |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1095 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
|
1096 """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
|
1097 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
|
1098 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
|
1099 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1100 # -- 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
|
1101 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1102 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
|
1103 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
|
1104 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
|
1105 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
|
1106 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
|
1107 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
|
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 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1110 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
|
1111 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1112 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1113 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
|
1114 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
|
1115 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
|
1116 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
|
1117 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1118 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
|
1119 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
|
1120 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
|
1121 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
|
1122 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
|
1123 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
|
1124 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
|
1125 os.path.basename(sys.argv[0])). |
|
69839
f559b88bcaa0
#8158: add missing 'description' description to optparse docstring.
R David Murray <rdmurray@bitdance.com>
parents:
53523
diff
changeset
|
1126 description : string |
|
f559b88bcaa0
#8158: add missing 'description' description to optparse docstring.
R David Murray <rdmurray@bitdance.com>
parents:
53523
diff
changeset
|
1127 A paragraph of text giving a brief overview of your program. |
|
f559b88bcaa0
#8158: add missing 'description' description to optparse docstring.
R David Murray <rdmurray@bitdance.com>
parents:
53523
diff
changeset
|
1128 optparse reformats this paragraph to fit the current terminal |
|
f559b88bcaa0
#8158: add missing 'description' description to optparse docstring.
R David Murray <rdmurray@bitdance.com>
parents:
53523
diff
changeset
|
1129 width and prints it when the user requests help (after usage, |
|
f559b88bcaa0
#8158: add missing 'description' description to optparse docstring.
R David Murray <rdmurray@bitdance.com>
parents:
53523
diff
changeset
|
1130 but before the list of options). |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1131 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
|
1132 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
|
1133 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1134 option_groups : [OptionGroup] |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1135 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
|
1136 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
|
1137 for generating help) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1138 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1139 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
|
1140 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
|
1141 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
|
1142 -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
|
1143 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
|
1144 -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
|
1145 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
|
1146 -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
|
1147 -- 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
|
1148 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
|
1149 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
|
1150 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
|
1151 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1152 process_default_values : bool = true |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1153 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
|
1154 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
|
1155 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
|
1156 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
|
1157 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
|
1158 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
|
1159 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1160 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
|
1161 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
|
1162 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
|
1163 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
|
1164 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
|
1165 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
|
1166 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
|
1167 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
|
1168 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
|
1169 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
|
1170 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
|
1171 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
|
1172 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1173 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
|
1174 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
|
1175 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
|
1176 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
|
1177 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1178 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1179 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1180 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
|
1181 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1182 def __init__(self, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1183 usage=None, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1184 option_list=None, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1185 option_class=Option, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1186 version=None, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1187 conflict_handler="error", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1188 description=None, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1189 formatter=None, |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1190 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
|
1191 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
|
1192 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
|
1193 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
|
1194 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
|
1195 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
|
1196 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
|
1197 self.version = version |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1198 self.allow_interspersed_args = True |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1199 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
|
1200 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
|
1201 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
|
1202 self.formatter = formatter |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1203 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
|
1204 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
|
1205 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1206 # 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
|
1207 # 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
|
1208 # 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
|
1209 # _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
|
1210 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
|
1211 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
|
1212 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1213 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
|
1214 |
|
38453
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 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
|
1217 """ |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1218 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
|
1219 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
|
1220 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
|
1221 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
|
1222 """ |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1223 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
|
1224 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
|
1225 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
|
1226 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
|
1227 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
|
1228 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
|
1229 |
|
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1230 |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1231 # -- 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
|
1232 # (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
|
1233 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1234 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
|
1235 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
|
1236 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
|
1237 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
|
1238 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1239 def _add_help_option(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1240 self.add_option("-h", "--help", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1241 action="help", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1242 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
|
1243 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1244 def _add_version_option(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1245 self.add_option("--version", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1246 action="version", |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1247 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
|
1248 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1249 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
|
1250 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
|
1251 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
|
1252 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
|
1253 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
|
1254 if self.version: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1255 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
|
1256 if add_help: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1257 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
|
1258 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1259 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
|
1260 # 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
|
1261 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
|
1262 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
|
1263 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
|
1264 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1265 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1266 # -- 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
|
1267 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1268 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
|
1269 if usage is None: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1270 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
|
1271 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
|
1272 self.usage = None |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1273 # 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
|
1274 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
|
1275 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
|
1276 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1277 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
|
1278 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1279 def enable_interspersed_args(self): |
| 49493 | 1280 """Set parsing to not stop on the first non-option, allowing |
| 1281 interspersing switches with command arguments. This is the | |
| 1282 default behavior. See also disable_interspersed_args() and the | |
| 1283 class documentation description of the attribute | |
| 1284 allow_interspersed_args.""" | |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1285 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
|
1286 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1287 def disable_interspersed_args(self): |
| 49493 | 1288 """Set parsing to stop on the first non-option. Use this if |
| 1289 you have a command processor which runs another command that | |
| 1290 has options of its own and you want to make sure these options | |
| 1291 don't get confused. | |
| 1292 """ | |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1293 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
|
1294 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1295 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
|
1296 self.process_default_values = process |
|
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 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
|
1299 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
|
1300 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1301 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
|
1302 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
|
1303 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1304 def _get_all_options(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1305 options = self.option_list[:] |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1306 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
|
1307 options.extend(group.option_list) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1308 return options |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1309 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1310 def get_default_values(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1311 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
|
1312 # 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
|
1313 return Values(self.defaults) |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1314 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1315 defaults = self.defaults.copy() |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1316 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
|
1317 default = defaults.get(option.dest) |
|
43577
ace45b361e87
Patch# 1258 by Christian Heimes: kill basestring.
Guido van Rossum <guido@python.org>
parents:
43020
diff
changeset
|
1318 if isinstance(default, str): |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1319 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
|
1320 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
|
1321 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1322 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
|
1323 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1324 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1325 # -- 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
|
1326 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1327 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
|
1328 # 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
|
1329 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
|
1330 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
|
1331 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
|
1332 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
|
1333 if not isinstance(group, OptionGroup): |
|
43020
907a45df1295
Raise statement normalization in Lib/.
Collin Winter <collinw@gmail.com>
parents:
42552
diff
changeset
|
1334 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
|
1335 if group.parser is not self: |
|
43020
907a45df1295
Raise statement normalization in Lib/.
Collin Winter <collinw@gmail.com>
parents:
42552
diff
changeset
|
1336 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
|
1337 else: |
|
43020
907a45df1295
Raise statement normalization in Lib/.
Collin Winter <collinw@gmail.com>
parents:
42552
diff
changeset
|
1338 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
|
1339 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1340 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
|
1341 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
|
1342 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1343 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
|
1344 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
|
1345 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
|
1346 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
|
1347 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
|
1348 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
|
1349 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1350 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1351 # -- 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
|
1352 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1353 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
|
1354 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
|
1355 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
|
1356 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1357 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
|
1358 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1359 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
|
1360 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1361 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
|
1362 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
|
1363 -> (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
|
1364 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1365 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
|
1366 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
|
1367 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
|
1368 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
|
1369 (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
|
1370 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
|
1371 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
|
1372 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1373 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
|
1374 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
|
1375 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
|
1376 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1377 # 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
|
1378 # 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
|
1379 # rargs |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1380 # 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
|
1381 # "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
|
1382 # largs |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1383 # 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
|
1384 # 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
|
1385 # 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
|
1386 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
|
1387 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
|
1388 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
|
1389 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1390 try: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1391 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
|
1392 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
|
1393 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
|
1394 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1395 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
|
1396 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
|
1397 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1398 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
|
1399 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1400 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
|
1401 -> (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
|
1402 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1403 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
|
1404 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
|
1405 (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
|
1406 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
|
1407 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
|
1408 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1409 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
|
1410 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1411 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
|
1412 """_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
|
1413 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
|
1414 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
|
1415 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1416 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
|
1417 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
|
1418 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
|
1419 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
|
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 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
|
1422 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
|
1423 # 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
|
1424 # 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
|
1425 # 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
|
1426 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
|
1427 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
|
1428 return |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1429 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
|
1430 # 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
|
1431 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
|
1432 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
|
1433 # 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
|
1434 # 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
|
1435 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
|
1436 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
|
1437 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
|
1438 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
|
1439 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1440 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
|
1441 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1442 # 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
|
1443 # [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
|
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 # (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
|
1446 # |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1447 # 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
|
1448 # [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
|
1449 # 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
|
1450 # |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1451 # 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
|
1452 # 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
|
1453 # 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
|
1454 # |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1455 # 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
|
1456 # 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
|
1457 # |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1458 # 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
|
1459 # *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
|
1460 # 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
|
1461 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1462 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
|
1463 """_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
|
1464 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1465 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
|
1466 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
|
1467 '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
|
1468 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1469 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
|
1470 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1471 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
|
1472 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
|
1473 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1474 # 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
|
1475 # argument. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1476 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
|
1477 (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
|
1478 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
|
1479 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
|
1480 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1481 opt = arg |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1482 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
|
1483 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1484 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
|
1485 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
|
1486 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
|
1487 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
|
1488 if len(rargs) < nargs: |
|
68767
4a5782a2b074
Use proper gettext plural forms in optparse (closes #4391).
Éric Araujo <merwok@netwok.org>
parents:
53523
diff
changeset
|
1489 self.error(ngettext( |
|
4a5782a2b074
Use proper gettext plural forms in optparse (closes #4391).
Éric Araujo <merwok@netwok.org>
parents:
53523
diff
changeset
|
1490 "%(option)s option requires %(number)d argument", |
|
4a5782a2b074
Use proper gettext plural forms in optparse (closes #4391).
Éric Araujo <merwok@netwok.org>
parents:
53523
diff
changeset
|
1491 "%(option)s option requires %(number)d arguments", |
|
4a5782a2b074
Use proper gettext plural forms in optparse (closes #4391).
Éric Araujo <merwok@netwok.org>
parents:
53523
diff
changeset
|
1492 nargs) % {"option": opt, "number": nargs}) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1493 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
|
1494 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
|
1495 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1496 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
|
1497 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
|
1498 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1499 elif had_explicit_value: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1500 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
|
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 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1503 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
|
1504 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1505 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
|
1506 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1507 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
|
1508 arg = rargs.pop(0) |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1509 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
|
1510 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
|
1511 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
|
1512 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
|
1513 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
|
1514 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
|
1515 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1516 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
|
1517 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
|
1518 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
|
1519 # 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
|
1520 # 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
|
1521 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
|
1522 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
|
1523 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
|
1524 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1525 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
|
1526 if len(rargs) < nargs: |
|
68767
4a5782a2b074
Use proper gettext plural forms in optparse (closes #4391).
Éric Araujo <merwok@netwok.org>
parents:
53523
diff
changeset
|
1527 self.error(ngettext( |
|
4a5782a2b074
Use proper gettext plural forms in optparse (closes #4391).
Éric Araujo <merwok@netwok.org>
parents:
53523
diff
changeset
|
1528 "%(option)s option requires %(number)d argument", |
|
4a5782a2b074
Use proper gettext plural forms in optparse (closes #4391).
Éric Araujo <merwok@netwok.org>
parents:
53523
diff
changeset
|
1529 "%(option)s option requires %(number)d arguments", |
|
4a5782a2b074
Use proper gettext plural forms in optparse (closes #4391).
Éric Araujo <merwok@netwok.org>
parents:
53523
diff
changeset
|
1530 nargs) % {"option": opt, "number": nargs}) |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1531 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
|
1532 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
|
1533 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1534 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
|
1535 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
|
1536 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1537 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
|
1538 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
|
1539 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1540 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
|
1541 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1542 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
|
1543 break |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1544 |
|
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 # -- 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
|
1547 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1548 def get_prog_name(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1549 if self.prog is None: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1550 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
|
1551 else: |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1552 return self.prog |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1553 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1554 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
|
1555 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
|
1556 |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1557 def get_description(self): |
|
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1558 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
|
1559 |
|
33846
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
1560 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
|
1561 if msg: |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
1562 sys.stderr.write(msg) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
1563 sys.exit(status) |
|
79bcad14e96a
Update optparse module and test suite to Optik 1.5a2.
Greg Ward <gward@python.net>
parents:
33772
diff
changeset
|
1564 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1565 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
|
1566 """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
|
1567 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1568 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
|
1569 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
|
1570 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
|
1571 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1572 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
|
1573 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
|
1574 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1575 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
|
1576 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
|
1577 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
|
1578 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
|
1579 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1580 return "" |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1581 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1582 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
|
1583 """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
|
1584 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1585 Print the usage message for the current program (self.usage) to |
|
51776
d06a3ebf306f
Merged revisions 69846 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
49908
diff
changeset
|
1586 'file' (default stdout). Any occurrence of the string "%prog" in |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1587 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
|
1588 (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
|
1589 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
|
1590 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1591 if self.usage: |
|
40775
4cdf21a0dbbc
Fix most trivially-findable print statements.
Guido van Rossum <guido@python.org>
parents:
40644
diff
changeset
|
1592 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
|
1593 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1594 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
|
1595 if self.version: |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1596 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
|
1597 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1598 return "" |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1599 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1600 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
|
1601 """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
|
1602 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1603 Print the version message for this program (self.version) to |
|
51776
d06a3ebf306f
Merged revisions 69846 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents:
49908
diff
changeset
|
1604 'file' (default stdout). As with print_usage(), any occurrence |
|
26224
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1605 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
|
1606 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
|
1607 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1608 if self.version: |
|
40775
4cdf21a0dbbc
Fix most trivially-findable print statements.
Guido van Rossum <guido@python.org>
parents:
40644
diff
changeset
|
1609 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
|
1610 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1611 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
|
1612 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
|
1613 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
|
1614 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
|
1615 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
|
1616 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
|
1617 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
|
1618 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
|
1619 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
|
1620 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
|
1621 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
|
1622 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
|
1623 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
|
1624 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
|
1625 # 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
|
1626 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
|
1627 |
|
38453
29ae5e0fc348
Much-needed merge (using svnmerge.py this time) of trunk changes into p3yk.
Thomas Wouters <thomas@python.org>
parents:
34551
diff
changeset
|
1628 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
|
1629 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
|
1630 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1631 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
|
1632 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
|
1633 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
|
1634 result = [] |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1635 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
|
1636 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
|
1637 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
|
1638 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
|
1639 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
|
1640 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
|
1641 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
|
1642 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1643 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
|
1644 """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
|
1645 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1646 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
|
1647 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
|
1648 """ |
|
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 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
|
1650 file = sys.stdout |
|
42501
f6069f9dd52d
SF patch# 1770008 by Christian Heimes (plus some extras).
Guido van Rossum <guido@python.org>
parents:
42142
diff
changeset
|
1651 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
|
1652 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1653 # 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
|
1654 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1655 |
|
32870
195655299ed3
Upgrade optparse module and tests to Optik 1.5a1:
Greg Ward <gward@python.net>
parents:
31858
diff
changeset
|
1656 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
|
1657 """_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
|
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 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
|
1660 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
|
1661 '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
|
1662 """ |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1663 # 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
|
1664 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
|
1665 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
|
1666 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1667 # 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
|
1668 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
|
1669 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
|
1670 # 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
|
1671 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
|
1672 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
|
1673 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
|
1674 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
|
1675 else: |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1676 # 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
|
1677 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
|
1678 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
|
1679 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1680 |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1681 # 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
|
1682 # 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
|
1683 # 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
|
1684 # classes. |
|
adb93f4e9780
Checking in Greg Ward's Optik, as optparse.py. This is the most
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1685 make_option = Option |
