problem with optparse

John Machin sjmachin at lexicon.net
Wed Dec 3 01:59:06 CET 2008


On Dec 3, 11:28 am, Robert Kern <robert.k... at gmail.com> wrote:
> Neal Becker wrote:
> > This example is right out of python library reference.  What's wrong here?
>
> > import optparse
>
> > def store_value(option, opt_str, value, parser):
> >     setattr(parser.values, option.dest, value)
>
> > parser = optparse.OptionParser()
> > parser.add_option("--foo",
> >                   action="callback", callback=store_value,
> >                   type="int", nargs=3, dest="foo")
>
> > (opt,args) = parser.parse_args ('--foo a b c'.split())
>
> > [...]
> > /usr/lib64/python2.5/optparse.pyc in _process_args(self, largs, rargs, values)
> >    1423             elif self.allow_interspersed_args:
> >    1424                 largs.append(arg)
> > -> 1425                 del rargs[0]
> >    1426             else:
> >    1427                 return                  # stop now, leave this arg in rargs
>
> > TypeError: 'str' object doesn't support item deletion
>
> Dunno. It works for me (i.e. I get the expected "error: option --foo: invalid
> integer value: 'a'"). Have you tried it outside of IPython?
>

Works for me (Python 2.[456] in interactive mode, Windows XP). Also
gives expected result with '--foo 12 34 56'.



More information about the Python-list mailing list