mirror of
https://github.com/python/cpython.git
synced 2025-07-28 21:55:21 +00:00
SF #642236, optparse LaTeX docs by Johannes Gijsbers
This commit is contained in:
parent
11f89b75e1
commit
488609e43a
6 changed files with 1821 additions and 0 deletions
41
Doc/lib/required_2.py
Executable file
41
Doc/lib/required_2.py
Executable file
|
@ -0,0 +1,41 @@
|
|||
import optparse
|
||||
|
||||
class Option (optparse.Option):
|
||||
ATTRS = optparse.Option.ATTRS + ['required']
|
||||
|
||||
def _check_required (self):
|
||||
if self.required and not self.takes_value():
|
||||
raise OptionError(
|
||||
"required flag set for option that doesn't take a value",
|
||||
self)
|
||||
|
||||
# Make sure _check_required() is called from the constructor!
|
||||
CHECK_METHODS = optparse.Option.CHECK_METHODS + [_check_required]
|
||||
|
||||
def process (self, opt, value, values, parser):
|
||||
optparse.Option.process(self, opt, value, values, parser)
|
||||
parser.option_seen[self] = 1
|
||||
|
||||
|
||||
class OptionParser (optparse.OptionParser):
|
||||
|
||||
def _init_parsing_state (self):
|
||||
optparse.OptionParser._init_parsing_state(self)
|
||||
self.option_seen = {}
|
||||
|
||||
def check_values (self, values, args):
|
||||
for option in self.option_list:
|
||||
if (isinstance(option, Option) and
|
||||
option.required and
|
||||
not self.option_seen.has_key(option)):
|
||||
self.error("%s not supplied" % option)
|
||||
return (values, args)
|
||||
|
||||
|
||||
parser = OptionParser(option_list=[
|
||||
Option("-v", action="count", dest="verbose"),
|
||||
Option("-f", "--file", required=1)])
|
||||
(options, args) = parser.parse_args()
|
||||
|
||||
print "verbose:", options.verbose
|
||||
print "file:", options.file
|
Loading…
Add table
Add a link
Reference in a new issue