ANN: a better getopt.py

Ben Wolfson rumjuggler at cryptarchy.org
Thu Jun 29 14:40:05 EDT 2000


On Thu, 29 Jun 2000 16:25:02 +0100, Frank Stajano
<fstajano at uk.research.att.com> wrote:

There are other command-line parsers at

http://members.home.com/gindikin/dev/python/cmdline/cmdline.py
and
http://members.home.com/rumjuggler/python/arglist.py

"arglist" in the second case is a rather inappropriate name.

>This is to announce an unofficial new version of the getopt.py module that 
>helps parsing command line options. I wrote it because it scratched an 
>itch; if it's useful to others too, so much the better.
>
>http://www.cl.cam.ac.uk/~fms27/getopt/
>
>This is a backwards compatible replacement that does not take away or 
>change any existing functionality. It adds a new function getoptdict() 
>which does the same things as getopt() but returns the result in a 
>dictionary as opposed to a list of pairs. From my humble experience, the 
>caller usually likes random (not sequential) access to the supplied 
>options, so the dictionary appears to be the best match.
>
>The only problem comes up with repeated options (e.g. "-v for verbose, -v 
>-v for very verbose, -v -v -v for really very verbose indeed"). This of 
>course doesn't quite fit in the dictionary model, since each key must be 
>unique. The getoptdict() lets you choose what to do; you can REJECT 
>repeated options (default behaviour) if you abhor them like I do; but you 
>can also APPEND them to a list or KEEP_EARLIEST or KEEP_LATEST.
>
>Another minor update concerns exceptions: the lonely GetoptError has been 
>turned into a small class hierarchy. This allows the caller to distinguish 
>the various errors if fine-grained control is desired. At the same time it 
>is still possible to intercept all errors by simply calling the single 
>GetoptError which is at the root of the hierarchy.
>
>Note that the base file was the getopt.py that came with Python 1.6 alpha 
>2. Therefore this module won't work with Python < 1.6, because the base 
>file uses 1.6 features such as the index() method for a string.
>
>This modification to getopt.py is released as open source under the same 
>licence as the rest of Python. I, and my employer, disclaim all warranties 
>just like Stichting Mathematisch Centrum and CNRI do. Feedback and bug 
>reports to fstajano at uk.research.att.com.
>
>   <P><A HREF="http://www.cl.cam.ac.uk/~fms27/getopt/">getopt.py</A> 1.3 - 
>Compatible replacement for getopt that returns a dictionary instead of a 
>list of pairs.  (29-Jun-2000)
>
>
>  Frank (http://i.am/filologo.disneyano/)  http://www.uk.research.att.com/~fms/
>




More information about the Python-list mailing list