[Doc-SIG] More documentation

Moshe Zadka Moshe Zadka <mzadka@geocities.com>
Fri, 4 Feb 2000 23:19:23 +0200 (IST)


Here is some more user testing -- the docstrings in getopt.py converted to
use my syntax, with the change I've made:

Now long args can have either the syntax

<something>::
	<something>

Or 
 
<something>:: <something>

The same way the Python interpreter allows. Note that although my official
escape character is '@', in all the tests I've never had to escape once!

in-defense-of-thesis-mode-ly y'rs, Z.

"""Parser for command line options.

This module helps scripts to parse the command line arguments in
[var sys.argv].  It supports the same conventions as the Unix 
[cfunction getopt()] function (including the special meanings of arguments of 
the form [code `-'] and [code `--']).  Long options similar to those supported 
by GNU software may be used as well via an optional third argument.  This 
module provides a single function and an exception:

Gerrit Holl <gerrit@nl.linux.org> moved the string-based exceptions
to class-based exceptions.

list::
    item:: [function getopt()] -- Parse command line options
    item:: 
        [exception GetoptError] -- exception (class) raised when 
        [function getopt()] detects a problem with the options.

exception name=GetoptError::
	An exception throws for incorrect options. It has a member
	[member opt], which is the option which triggered the exception.
"""

# Long option support added by Lars Wirzenius <liw@iki.fi>.

import string

class GetoptError(Exception):
    opt = ''
    msg = ''
    def __init__(self, *args):
        self.args = args
        if len(args) == 1:
            self.msg = args[0]
        elif len(args) == 2:
            self.msg = args[0]
            self.opt = args[1]

    def __str__(self):
        return self.msg

error = GetoptError # backward compatibility

def getopt(args, shortopts, longopts = []):
    """\
    Return the list of options and values used.

    arg name=args type=list::
        Arguments to be parsed. Note that the first argument
        is assumed to be a real argument, [emph not] the name of the program.

    arg name=shortopts type=string::
        Option letters the program recognizes that. Option that require
        an argument are followed by a colon ([code :]).
        Note that this is the same format the Unix [cfunction getopt()]
        uses.

    arg name=longopts type=list default=[code []]::
        Long options names which should be recognized. Options which require
        and argument should be followed by an equal sign ([code '=']).

        Note that the leading double hyphen ([code '--']) should [emph not]
        be included in the option name.

    return type=tuple::
        The return value consists of two elements:

        list::
            item:: 
                A list of [code (option, value)] pairs.
                The option appears as it appears on the command line: including
                a hyphen or double hyphen.
                Long and short options may be mixed.
            item:: 
                List of program arguments left after the options were stripped
                (this is a trailing slice of the first argument).
    """
<snipped actual code>


--
Moshe Zadka <mzadka@geocities.com>. 
INTERNET: Learn what you know.
Share what you don't.