symbian-qemu-0.9.1-12/python-2.6.1/Misc/cheatsheet
changeset 1 2fb8b9db1c86
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/symbian-qemu-0.9.1-12/python-2.6.1/Misc/cheatsheet	Fri Jul 31 15:01:17 2009 +0100
@@ -0,0 +1,2273 @@
+                          Python 2.3 Quick Reference
+
+
+ 25 Jan 2003  upgraded by Raymond Hettinger for Python 2.3
+ 16 May 2001  upgraded by Richard Gruet and Simon Brunning for Python 2.0
+ 2000/07/18  upgraded by Richard Gruet, rgruet@intraware.com for Python 1.5.2
+from V1.3 ref
+1995/10/30, by Chris Hoffmann, choffman@vicorp.com
+
+Based on:
+    Python Bestiary, Author: Ken Manheimer, ken.manheimer@nist.gov
+    Python manuals, Authors: Guido van Rossum and Fred Drake
+    What's new in Python 2.0, Authors: A.M. Kuchling and Moshe Zadka
+    python-mode.el, Author: Tim Peters, tim_one@email.msn.com
+
+    and the readers of comp.lang.python
+
+Python's nest: http://www.python.org     Developement: http://
+python.sourceforge.net/    ActivePython : http://www.ActiveState.com/ASPN/
+Python/
+newsgroup: comp.lang.python  Help desk: help@python.org
+Resources: http://starship.python.net/
+           http://www.vex.net/parnassus/
+           http://aspn.activestate.com/ASPN/Cookbook/Python
+FAQ:       http://www.python.org/cgi-bin/faqw.py
+Full documentation: http://www.python.org/doc/
+Excellent reference books:
+           Python Essential Reference by David Beazley (New Riders)
+           Python Pocket Reference by Mark Lutz (O'Reilly)
+
+
+Invocation Options
+
+python [-diOStuUvxX?] [-c command | script | - ] [args]
+
+                              Invocation Options
+Option                                  Effect
+-c cmd  program passed in as string (terminates option list)
+-d      Outputs parser debugging information (also PYTHONDEBUG=x)
+-E      ignore environment variables (such as PYTHONPATH)
+-h      print this help message and exit
+-i      Inspect interactively after running script (also PYTHONINSPECT=x) and
+        force prompts, even if stdin appears not to be a terminal
+-m mod  run library module as a script (terminates option list
+-O      optimize generated bytecode (a tad; also PYTHONOPTIMIZE=x)
+-OO     remove doc-strings in addition to the -O optimizations
+-Q arg  division options: -Qold (default), -Qwarn, -Qwarnall, -Qnew
+-S      Don't perform 'import site' on initialization
+-t      Issue warnings about inconsistent tab usage (-tt: issue errors)
+-u      Unbuffered binary stdout and stderr (also PYTHONUNBUFFERED=x).
+-v      Verbose (trace import statements) (also PYTHONVERBOSE=x)
+-W arg : warning control (arg is action:message:category:module:lineno)
+-x      Skip first line of source, allowing use of non-unix Forms of #!cmd
+-?      Help!
+-3      warn about Python 3.x incompatibilities
+-c      Specify the command to execute (see next section). This terminates the
+command option list (following options are passed as arguments to the command).
+        the name of a python file (.py) to execute read from stdin.
+script  Anything afterward is passed as options to python script or command,
+        not interpreted as an option to interpreter itself.
+args    passed to script or command (in sys.argv[1:])
+        If no script or command, Python enters interactive mode.
+
+  * Available IDEs in std distrib: IDLE (tkinter based, portable), Pythonwin
+    (Windows).
+
+
+
+Environment variables
+
+                             Environment variables
+    Variable                                 Effect
+PYTHONHOME       Alternate prefix directory (or prefix;exec_prefix). The
+                 default module search path uses prefix/lib
+                 Augments the default search path for module files. The format
+                 is the same as the shell's $PATH: one or more directory
+                 pathnames separated by ':' or ';' without spaces around
+                 (semi-)colons!
+PYTHONPATH       On Windows first search for Registry key HKEY_LOCAL_MACHINE\
+                 Software\Python\PythonCore\x.y\PythonPath (default value). You
+                 may also define a key named after your application with a
+                 default string value giving the root directory path of your
+                 app.
+                 If this is the name of a readable file, the Python commands in
+PYTHONSTARTUP    that file are executed before the first prompt is displayed in
+                 interactive mode (no default).
+PYTHONDEBUG      If non-empty, same as -d option
+PYTHONINSPECT    If non-empty, same as -i option
+PYTHONSUPPRESS   If non-empty, same as -s option
+PYTHONUNBUFFERED If non-empty, same as -u option
+PYTHONVERBOSE    If non-empty, same as -v option
+PYTHONCASEOK     If non-empty, ignore case in file/module names (imports)
+
+
+
+
+Notable lexical entities
+
+Keywords
+
+    and       del       for       is        raise
+    assert    elif      from      lambda    return
+    break     else      global    not       try
+    class     except    if        or        while
+    continue  exec      import    pass      yield
+    def       finally   in        print
+
+  * (list of keywords in std module: keyword)
+  * Illegitimate Tokens (only valid in strings): @ $ ?
+  * A statement must all be on a single line. To break a statement over
+    multiple lines use "\", as with the C preprocessor.
+    Exception: can always break when inside any (), [], or {} pair, or in
+    triple-quoted strings.
+  * More than one statement can appear on a line if they are separated with
+    semicolons (";").
+  * Comments start with "#" and continue to end of line.
+
+Identifiers
+
+        (letter | "_")  (letter | digit | "_")*
+
+  * Python identifiers keywords, attributes, etc. are case-sensitive.
+  * Special forms: _ident (not imported by 'from module import *'); __ident__
+    (system defined name);
+               __ident (class-private name mangling)
+
+Strings
+
+    "a string enclosed by double quotes"
+    'another string delimited by single quotes and with a " inside'
+    '''a string containing embedded newlines and quote (') marks, can be
+    delimited with triple quotes.'''
+    """ may also use 3- double quotes as delimiters """
+    u'a unicode string'   U"Another unicode string"
+    r'a raw string where \ are kept (literalized): handy for regular
+    expressions and windows paths!'
+    R"another raw string"    -- raw strings cannot end with a \
+    ur'a unicode raw string'   UR"another raw unicode"
+
+        Use \ at end of line to continue a string on next line.
+        adjacent strings are concatened, e.g. 'Monty' ' Python' is the same as
+        'Monty Python'.
+        u'hello' + ' world'  --> u'hello world'   (coerced to unicode)
+
+    String Literal Escapes
+
+     \newline  Ignored (escape newline)
+     \\ Backslash (\)        \e Escape (ESC)        \v Vertical Tab (VT)
+     \' Single quote (')     \f Formfeed (FF)       \OOO char with octal value OOO
+     \" Double quote (")     \n Linefeed (LF)
+     \a Bell (BEL)           \r Carriage Return (CR) \xHH  char with hex value HH
+     \b Backspace (BS)       \t Horizontal Tab (TAB)
+     \uHHHH  unicode char with hex value HHHH, can only be used in unicode string
+     \UHHHHHHHH  unicode char with hex value HHHHHHHH, can only be used in unicode string
+     \AnyOtherChar is left as-is
+
+  * NUL byte (\000) is NOT an end-of-string marker; NULs may be embedded in
+    strings.
+  * Strings (and tuples) are immutable: they cannot be modified.
+
+Numbers
+
+    Decimal integer: 1234, 1234567890546378940L        (or l)
+    Octal integer: 0177, 0177777777777777777 (begin with a 0)
+    Hex integer: 0xFF, 0XFFFFffffFFFFFFFFFF (begin with 0x or 0X)
+    Long integer (unlimited precision): 1234567890123456
+    Float (double precision): 3.14e-10, .001, 10., 1E3
+    Complex: 1J, 2+3J, 4+5j (ends with J or j, + separates (float) real and
+    imaginary parts)
+
+Sequences
+
+  * String of length 0, 1, 2 (see above)
+    '', '1', "12", 'hello\n'
+  * Tuple of length 0, 1, 2, etc:
+    () (1,) (1,2)     # parentheses are optional if len > 0
+  * List of length 0, 1, 2, etc:
+    [] [1] [1,2]
+
+Indexing is 0-based. Negative indices (usually) mean count backwards from end
+of sequence.
+
+Sequence slicing [starting-at-index : but-less-than-index]. Start defaults to
+'0'; End defaults to 'sequence-length'.
+
+a = (0,1,2,3,4,5,6,7)
+    a[3] ==> 3
+    a[-1] ==> 7
+    a[2:4] ==> (2, 3)
+    a[1:] ==> (1, 2, 3, 4, 5, 6, 7)
+    a[:3] ==> (0, 1, 2)
+    a[:] ==> (0,1,2,3,4,5,6,7)  # makes a copy of the sequence.
+
+Dictionaries (Mappings)
+
+    {}                              # Zero length empty dictionary
+    {1 : 'first'}                   # Dictionary with one (key, value) pair
+    {1 : 'first',  'next': 'second'}
+    dict([('one',1),('two',2)])     # Construct a dict from an item list
+    dict('one'=1, 'two'=2)          # Construct a dict using keyword args
+    dict.fromkeys(['one', 'keys'])  # Construct a dict from a sequence
+
+Operators and their evaluation order
+
+                     Operators and their evaluation order
+Highest             Operator                             Comment
+        (...) [...] {...} `...`           Tuple, list & dict. creation; string
+                                          conv.
+        s[i]  s[i:j]  s.attr f(...)       indexing & slicing; attributes, fct
+                                          calls
+        +x, -x, ~x                        Unary operators
+        x**y                              Power
+        x*y  x/y  x%y x//y                mult, division, modulo, floor division
+        x+y  x-y                          addition, subtraction
+        x<<y   x>>y                       Bit shifting
+        x&y                               Bitwise and
+        x^y                               Bitwise exclusive or
+        x|y                               Bitwise or
+        x<y  x<=y  x>y  x>=y  x==y x!=y   Comparison,
+        x<>y                              identity,
+        x is y   x is not y               membership
+        x in s   x not in s
+        not x                             boolean negation
+        x and y                           boolean and
+        x or y                            boolean or
+Lowest  lambda args: expr                 anonymous function
+
+Alternate names are defined in module operator (e.g. __add__ and add for +)
+Most operators are overridable.
+
+Many binary operators also support augmented assignment:
+        x += 1                            # Same as x = x + 1
+
+
+Basic Types and Their Operations
+
+Comparisons (defined between *any* types)
+
+               Comparisons
+Comparison         Meaning          Notes
+<          strictly less than        (1)
+<=         less than or equal to
+>          strictly greater than
+>=         greater than or equal to
+==         equal to
+!= or <>   not equal to
+is         object identity           (2)
+is not     negated object identity   (2)
+
+Notes :
+    Comparison behavior can be overridden for a given class by defining special
+method __cmp__.
+    The above comparisons return True or False which are of type bool
+(a subclass of int) and behave exactly as 1 or 0 except for their type and
+that they print as True or False instead of 1 or 0.
+    (1) X < Y < Z < W has expected meaning, unlike C
+    (2) Compare object identities (i.e. id(object)), not object values.
+
+Boolean values and operators
+
+                         Boolean values and operators
+              Value or Operator                         Returns           Notes
+None, numeric zeros, empty sequences and      False
+mappings
+all other values                              True
+not x                                         True if x is False, else
+                                              True
+x or y                                        if x is False then y, else   (1)
+                                              x
+x and y                                       if x is False then x, else   (1)
+                                              y
+
+Notes :
+    Truth testing behavior can be overridden for a given class by defining
+special method __nonzero__.
+    (1) Evaluate second arg only if necessary to determine outcome.
+
+None
+
+    None is used as default return value on functions. Built-in single object
+    with type NoneType.
+    Input that evaluates to None does not print when running Python
+    interactively.
+
+Numeric types
+
+Floats, integers and long integers.
+
+    Floats are implemented with C doubles.
+    Integers are implemented with C longs.
+    Long integers have unlimited size (only limit is system resources)
+
+Operators on all numeric types
+
+           Operators on all numeric types
+ Operation                    Result
+abs(x)       the absolute value of x
+int(x)       x converted to integer
+long(x)      x converted to long integer
+float(x)     x converted to floating point
+-x           x negated
++x           x unchanged
+x + y        the sum of x and y
+x - y        difference of x and y
+x * y        product of x and y
+x / y        quotient of x and y
+x % y        remainder of x / y
+divmod(x, y) the tuple (x/y, x%y)
+x ** y       x to the power y (the same as pow(x, y))
+
+Bit operators on integers and long integers
+
+              Bit operators
+Operation             >Result
+~x        the bits of x inverted
+x ^ y     bitwise exclusive or of x and y
+x & y     bitwise and of x and y
+x | y     bitwise or of x and y
+x << n    x shifted left by n bits
+x >> n    x shifted right by n bits
+
+Complex Numbers
+
+  * represented as a pair of machine-level double precision floating point
+    numbers.
+  * The real and imaginary value of a complex number z can be retrieved through
+    the attributes z.real and z.imag.
+
+Numeric exceptions
+
+TypeError
+    raised on application of arithmetic operation to non-number
+OverflowError
+     numeric bounds exceeded
+ZeroDivisionError
+     raised when zero second argument of div or modulo op
+FloatingPointError
+     raised when a floating point operation fails
+
+Operations on all sequence types (lists, tuples, strings)
+
+                Operations on all sequence types
+Operation                     Result                     Notes
+x in s     True if an item of s is equal to x, else False
+x not in s False if an item of s is equal to x, else True
+for x in s: loops over the sequence
+s + t      the concatenation of s and t
+s * n, n*s n copies of s concatenated
+s[i]       i'th item of s, origin 0                       (1)
+s[i:j]     slice of s from i (included) to j (excluded) (1), (2)
+len(s)     length of s
+min(s)     smallest item of s
+max(s)     largest item of (s)
+iter(s)    returns an iterator over s.  iterators define __iter__ and next()
+
+Notes :
+    (1) if i or j is negative, the index is relative to the end of the string,
+ie len(s)+ i or len(s)+j is
+         substituted. But note that -0 is still 0.
+    (2) The slice of s from i to j is defined as the sequence of items with
+index k such that i <= k < j.
+          If i or j is greater than len(s), use len(s). If i is omitted, use
+len(s). If i is greater than or
+          equal to j, the slice is empty.
+
+Operations on mutable (=modifiable) sequences (lists)
+
+                 Operations on mutable sequences
+   Operation                      Result                   Notes
+s[i] =x          item i of s is replaced by x
+s[i:j] = t       slice of s from i to j is replaced by t
+del s[i:j]       same as s[i:j] = []
+s.append(x)      same as s[len(s) : len(s)] = [x]
+s.count(x)       return number of i's for which s[i] == x
+s.extend(x)      same as s[len(s):len(s)]= x
+s.index(x)       return smallest i such that s[i] == x      (1)
+s.insert(i, x)   same as s[i:i] = [x] if i >= 0
+s.pop([i])       same as x = s[i]; del s[i]; return x       (4)
+s.remove(x)      same as del s[s.index(x)]                  (1)
+s.reverse()      reverse the items of s in place            (3)
+s.sort([cmpFct]) sort the items of s in place             (2), (3)
+
+Notes :
+    (1) raise a ValueError exception when x is not found in s (i.e. out of
+range).
+     (2) The sort() method takes an optional argument specifying a comparison
+fct of 2 arguments (list items) which should
+          return -1, 0, or 1 depending on whether the 1st argument is
+considered smaller than, equal to, or larger than the 2nd
+          argument. Note that this slows the sorting process down considerably.
+     (3) The sort() and reverse() methods modify the list in place for economy
+of space when sorting or reversing a large list.
+           They don't return the sorted or reversed list to remind you of this
+side effect.
+     (4) [New 1.5.2] The optional  argument i defaults to -1, so that by default the last
+item is removed and returned.
+
+
+
+Operations on mappings (dictionaries)
+
+                         Operations on mappings
+        Operation                          Result                  Notes
+len(d)                     the number of items in d
+d[k]                       the item of d with key k                 (1)
+d[k] = x                   set d[k] to x
+del d[k]                   remove d[k] from d                       (1)
+d.clear()                  remove all items from d
+d.copy()                   a shallow copy of d
+d.get(k,defaultval)        the item of d with key k                 (4)
+d.has_key(k)               True if d has key k, else False
+d.items()                  a copy of d's list of (key, item) pairs  (2)
+d.iteritems()              an iterator over (key, value) pairs      (7)
+d.iterkeys()               an iterator over the keys of d           (7)
+d.itervalues()             an iterator over the values of d         (7)
+d.keys()                   a copy of d's list of keys               (2)
+d1.update(d2)              for k, v in d2.items(): d1[k] = v        (3)
+d.values()                 a copy of d's list of values             (2)
+d.pop(k)                   remove d[k] and return its value
+d.popitem()                remove and return an arbitrary           (6)
+                           (key, item) pair
+d.setdefault(k,defaultval) the item of d with key k                 (5)
+
+    Notes :
+      TypeError is raised if key is not acceptable
+      (1) KeyError is raised if key k is not in the map
+      (2) Keys and values are listed in random order
+      (3) d2 must be of the same type as d1
+      (4) Never raises an exception if k is not in the map, instead it returns
+    defaultVal.
+          defaultVal is optional, when not provided and k is not in the map,
+    None is returned.
+      (5) Never raises an exception if k is not in the map, instead it returns
+    defaultVal, and adds k to map with value defaultVal. defaultVal is
+    optional. When not provided and k is not in the map, None is returned and
+    added to map.
+      (6) Raises a KeyError if the dictionary is emtpy.
+      (7) While iterating over a dictionary, the values may be updated but
+          the keys cannot be changed.
+
+Operations on strings
+
+Note that these string methods largely (but not completely) supersede the
+functions available in the string module.
+
+
+                             Operations on strings
+    Operation                             Result                          Notes
+s.capitalize()    return a copy of s with only its first character
+                  capitalized.
+s.center(width)   return a copy of s centered in a string of length width  (1)
+                  .
+s.count(sub[      return the number of occurrences of substring sub in     (2)
+,start[,end]])    string s.
+s.decode(([       return a decoded version of s.                           (3)
+  encoding
+  [,errors]])
+s.encode([        return an encoded version of s. Default encoding is the
+  encoding        current default string encoding.                         (3)
+  [,errors]])
+s.endswith(suffix return true if s ends with the specified suffix,         (2)
+  [,start[,end]]) otherwise return False.
+s.expandtabs([    return a copy of s where all tab characters are          (4)
+tabsize])         expanded using spaces.
+s.find(sub[,start return the lowest index in s where substring sub is      (2)
+[,end]])          found. Return -1 if sub is not found.
+s.index(sub[      like find(), but raise ValueError when the substring is  (2)
+,start[,end]])    not found.
+s.isalnum()       return True if all characters in s are alphanumeric,     (5)
+                  False otherwise.
+s.isalpha()       return True if all characters in s are alphabetic,       (5)
+                  False otherwise.
+s.isdigit()       return True if all characters in s are digit             (5)
+                  characters, False otherwise.
+s.islower()       return True if all characters in s are lowercase, False  (6)
+                  otherwise.
+s.isspace()       return True if all characters in s are whitespace        (5)
+                  characters, False otherwise.
+s.istitle()       return True if string s is a titlecased string, False    (7)
+                  otherwise.
+s.isupper()       return True if all characters in s are uppercase, False  (6)
+                  otherwise.
+s.join(seq)       return a concatenation of the strings in the sequence
+                  seq, seperated by 's's.
+s.ljust(width)    return s left justified in a string of length width.    (1),
+                                                                           (8)
+s.lower()         return a copy of s converted to lowercase.
+s.lstrip()        return a copy of s with leading whitespace removed.
+s.replace(old,    return a copy of s with all occurrences of substring     (9)
+new[, maxsplit])  old replaced by new.
+s.rfind(sub[      return the highest index in s where substring sub is     (2)
+,start[,end]])    found. Return -1 if sub is not found.
+s.rindex(sub[     like rfind(), but raise ValueError when the substring    (2)
+,start[,end]])    is not found.
+s.rjust(width)    return s right justified in a string of length width.   (1),
+                                                                           (8)
+s.rstrip()        return a copy of s with trailing whitespace removed.
+s.split([sep[     return a list of the words in s, using sep as the       (10)
+,maxsplit]])      delimiter string.
+s.splitlines([    return a list of the lines in s, breaking at line       (11)
+keepends])        boundaries.
+s.startswith      return true if s starts with the specified prefix,
+(prefix[,start[   otherwise return false.                                  (2)
+,end]])
+s.strip()         return a copy of s with leading and trailing whitespace
+                  removed.
+s.swapcase()      return a copy of s with uppercase characters converted
+                  to lowercase and vice versa.
+                  return a titlecased copy of s, i.e. words start with
+s.title()         uppercase characters, all remaining cased characters
+                  are lowercase.
+s.translate(table return a copy of s mapped through translation table     (12)
+[,deletechars])   table.
+s.upper()         return a copy of s converted to uppercase.
+s.zfill(width)    return a string padded with zeroes on the left side and
+                  sliding a minus sign left if necessary.  never truncates.
+
+Notes :
+    (1) Padding is done using spaces.
+    (2) If optional argument start is supplied, substring s[start:] is
+processed. If optional arguments start and end are supplied, substring s[start:
+end] is processed.
+    (3) Optional argument errors may be given to set a different error handling
+scheme. The default for errors is 'strict', meaning that encoding errors raise
+a ValueError. Other possible values are 'ignore' and 'replace'.
+    (4) If optional argument tabsize is not given, a tab size of 8 characters
+is assumed.
+    (5) Returns false if string s does not contain at least one character.
+    (6) Returns false if string s does not contain at least one cased
+character.
+    (7) A titlecased string is a string in which uppercase characters may only
+follow uncased characters and lowercase characters only cased ones.
+    (8) s is returned if width is less than len(s).
+    (9) If the optional argument maxsplit is given, only the first maxsplit
+occurrences are replaced.
+    (10) If sep is not specified or None, any whitespace string is a separator.
+If maxsplit is given, at most maxsplit splits are done.
+    (11) Line breaks are not included in the resulting list unless keepends is
+given and true.
+    (12) table must be a string of length 256. All characters occurring in the
+optional argument deletechars are removed prior to translation.
+
+String formatting with the % operator
+
+formatString % args--> evaluates to a string
+
+  * formatString uses C printf format codes : %, c, s, i, d, u, o, x, X, e, E,
+    f, g, G, r (details below).
+  * Width and precision may be a * to specify that an integer argument gives
+    the actual width or precision.
+  * The flag characters -, +, blank, # and 0 are understood. (details below)
+  * %s will convert any type argument to string (uses str() function)
+  * args may be a single arg or a tuple of args
+
+        '%s has %03d quote types.' % ('Python', 2)  # => 'Python has 002 quote types.'
+
+  * Right-hand-side can also be a mapping:
+
+        a = '%(lang)s has %(c)03d quote types.' % {'c':2, 'lang':'Python}
+(vars() function very handy to use on right-hand-side.)
+
+                                 Format codes
+Conversion                               Meaning
+d          Signed integer decimal.
+i          Signed integer decimal.
+o          Unsigned octal.
+u          Unsigned decimal.
+x          Unsigned hexadecimal (lowercase).
+X          Unsigned hexadecimal (uppercase).
+e          Floating point exponential format (lowercase).
+E          Floating point exponential format (uppercase).
+f          Floating point decimal format.
+F          Floating point decimal format.
+g          Same as "e" if exponent is greater than -4 or less than precision,
+           "f" otherwise.
+G          Same as "E" if exponent is greater than -4 or less than precision,
+           "F" otherwise.
+c          Single character (accepts integer or single character string).
+r          String (converts any python object using repr()).
+s          String (converts any python object using str()).
+%          No argument is converted, results in a "%" character in the result.
+           (The complete specification is %%.)
+
+                          Conversion flag characters
+Flag                                  Meaning
+#    The value conversion will use the ``alternate form''.
+0    The conversion will be zero padded.
+-    The converted value is left adjusted (overrides "-").
+     (a space) A blank should be left before a positive number (or empty
+     string) produced by a signed conversion.
++    A sign character ("+" or "-") will precede the conversion (overrides a
+     "space" flag).
+
+File Objects
+
+Created with built-in function open; may be created by other modules' functions
+as well.
+
+Operators on file objects
+
+                                File operations
+    Operation                                Result
+f.close()         Close file f.
+f.fileno()        Get fileno (fd) for file f.
+f.flush()         Flush file f's internal buffer.
+f.isatty()        True if file f is connected to a tty-like dev, else False.
+f.read([size])    Read at most size bytes from file f and return as a string
+                  object. If size omitted, read to EOF.
+f.readline()      Read one entire line from file f.
+f.readlines()     Read until EOF with readline() and return list of lines read.
+                  Set file f's position, like "stdio's fseek()".
+f.seek(offset[,   whence == 0 then use absolute indexing.
+whence=0])        whence == 1 then offset relative to current pos.
+                  whence == 2 then offset relative to file end.
+f.tell()          Return file f's current position (byte offset).
+f.write(str)      Write string to file f.
+f.writelines(list Write list of strings to file f.
+)
+
+File Exceptions
+
+  EOFError
+     End-of-file hit when reading (may be raised many times, e.g. if f is a
+    tty).
+  IOError
+     Other I/O-related I/O operation failure.
+  OSError
+     OS system call failed.
+
+
+    Advanced Types
+
+    -See manuals for more details -
+      + Module objects
+      + Class objects
+      + Class instance objects
+      + Type objects (see module: types)
+      + File objects (see above)
+      + Slice objects
+      + XRange objects
+      + Callable types:
+          o User-defined (written in Python):
+              # User-defined Function objects
+              # User-defined Method objects
+          o Built-in (written in C):
+              # Built-in Function objects
+              # Built-in Method objects
+      + Internal Types:
+          o Code objects (byte-compile executable Python code: bytecode)
+          o Frame objects (execution frames)
+          o Traceback objects (stack trace of an exception)
+
+
+    Statements
+
+    pass            -- Null statement
+    del name[,name]* -- Unbind name(s) from object. Object will be indirectly
+                        (and automatically) deleted only if no longer referenced.
+    print [>> fileobject,] [s1 [, s2 ]* [,]
+                    -- Writes to sys.stdout, or to fileobject if supplied.
+                       Puts spaces between arguments. Puts newline at end
+                       unless statement ends with comma.
+                       Print is not required when running interactively,
+                       simply typing an expression will print its value,
+                       unless the value is None.
+    exec x [in globals [,locals]]
+                    -- Executes x in namespaces provided. Defaults
+                       to current namespaces. x can be a string, file
+                       object or a function object.
+    callable(value,... [id=value], [*args], [**kw])
+                    -- Call function callable with parameters. Parameters can
+                       be passed by name or be omitted if function
+                       defines default values. E.g. if callable is defined as
+                       "def callable(p1=1, p2=2)"
+                       "callable()"       <=>  "callable(1, 2)"
+                       "callable(10)"     <=>  "callable(10, 2)"
+                       "callable(p2=99)"  <=>  "callable(1, 99)"
+                       *args is a tuple of positional arguments.
+                       **kw is a dictionary of keyword arguments.
+
+    Assignment operators
+
+                              Caption
+    Operator                    Result                     Notes
+    a = b    Basic assignment - assign object b to label a  (1)
+    a += b   Roughly equivalent to a = a + b                (2)
+    a -= b   Roughly equivalent to a = a - b                (2)
+    a *= b   Roughly equivalent to a = a * b                (2)
+    a /= b   Roughly equivalent to a = a / b                (2)
+    a %= b   Roughly equivalent to a = a % b                (2)
+    a **= b  Roughly equivalent to a = a ** b               (2)
+    a &= b   Roughly equivalent to a = a & b                (2)
+    a |= b   Roughly equivalent to a = a | b                (2)
+    a ^= b   Roughly equivalent to a = a ^ b                (2)
+    a >>= b  Roughly equivalent to a = a >> b               (2)
+    a <<= b  Roughly equivalent to a = a << b               (2)
+
+    Notes :
+        (1) Can unpack tuples, lists, and strings.
+           first, second = a[0:2]; [f, s] = range(2); c1,c2,c3='abc'
+           Tip: x,y = y,x swaps x and y.
+        (2) Not exactly equivalent - a is evaluated only once. Also, where
+    possible, operation performed in-place - a is modified rather than
+    replaced.
+
+    Control Flow
+
+    if condition: suite
+    [elif condition: suite]*
+    [else: suite]   -- usual if/else_if/else statement
+    while condition: suite
+    [else: suite]
+                    -- usual while statement. "else" suite is executed
+                       after loop exits, unless the loop is exited with
+                       "break"
+    for element in sequence: suite
+    [else: suite]
+                    -- iterates over sequence, assigning each element to element.
+                       Use built-in range function to iterate a number of times.
+                       "else" suite executed at end unless loop exited
+                       with "break"
+    break           -- immediately exits "for" or "while" loop
+    continue        -- immediately does next iteration of "for" or "while" loop
+    return [result] -- Exits from function (or method) and returns result (use a tuple to
+                       return more than one value). If no result given, then returns None.
+    yield result    -- Freezes the execution frame of a generator and returns the result
+                       to the iterator's .next() method.  Upon the next call to next(),
+                       resumes execution at the frozen point with all of the local variables
+                       still intact.
+
+    Exception Statements
+
+    assert expr[, message]
+                    -- expr is evaluated. if false, raises exception AssertionError
+                       with message. Inhibited if __debug__ is 0.
+    try: suite1
+    [except [exception [, value]: suite2]+
+    [else: suite3]
+                    -- statements in suite1 are executed. If an exception occurs, look
+                       in "except" clauses for matching <exception>. If matches or bare
+                       "except" execute suite of that clause. If no exception happens
+                       suite in "else" clause is executed after suite1.
+                       If exception has a value, it is put in value.
+                       exception can also be tuple of exceptions, e.g.
+                       "except (KeyError, NameError), val: print val"
+    try: suite1
+    finally: suite2
+                    -- statements in suite1 are executed. If no
+                       exception, execute suite2 (even if suite1 is
+                       exited with a "return", "break" or "continue"
+                       statement). If exception did occur, executes
+                       suite2 and then immediately reraises exception.
+    raise exception [,value [, traceback]]
+                    -- raises exception with optional value
+                       value. Arg traceback specifies a traceback object to
+                       use when printing the exception's backtrace.
+    raise           -- a raise statement without arguments re-raises
+                       the last exception raised in the current function
+An exception is either a string (object) or a class instance.
+  Can create a new one simply by creating a new string:
+
+              my_exception = 'You did something wrong'
+      try:
+                   if bad:
+              raise my_exception, bad
+      except my_exception, value:
+                    print 'Oops', value
+
+Exception classes must be derived from the predefined class: Exception, e.g.:
+            class text_exception(Exception): pass
+            try:
+                if bad:
+                    raise text_exception()
+                    # This is a shorthand for the form
+                    # "raise <class>, <instance>"
+             except Exception:
+                 print 'Oops'
+                 # This will be printed because
+                 # text_exception is a subclass of Exception
+When an error message is printed for an unhandled exception which is a
+class, the class name is printed, then a colon and a space, and
+finally the instance converted to a string using the built-in function
+str().
+All built-in exception classes derives from StandardError, itself
+derived from Exception.
+
+Name Space Statements
+
+[1.51: On Mac & Windows, the case of module file names must now match the case
+as used
+  in the import statement]
+Packages (>1.5): a package is a name space which maps to a directory including
+                module(s) and the special initialization module '__init__.py'
+                (possibly empty). Packages/dirs can be nested. You address a
+                module's symbol via '[package.[package...]module.symbol's.
+import module1 [as name1] [, module2]*
+                -- imports modules. Members of module must be
+                   referred to by qualifying with [package.]module name:
+                   "import sys; print sys.argv:"
+                   "import package1.subpackage.module; package1.subpackage.module.foo()"
+                   module1 renamed as name1, if supplied.
+from module import name1 [as othername1] [, name2]*
+                -- imports names from module module in current namespace.
+                   "from sys import argv; print argv"
+                   "from package1 import module; module.foo()"
+                   "from package1.module import foo; foo()"
+                   name1 renamed as othername1, if supplied.
+from module import *
+                -- imports all names in module, except those starting with "_";
+                   *to be used sparsely, beware of name clashes* :
+                   "from sys import *; print argv"
+                   "from package.module import *; print x'
+                    NB: "from package import *" only imports the symbols defined
+                    in the package's __init__.py file, not those in the
+                    template modules!
+global name1 [, name2]*
+                -- names are from global scope (usually meaning from module)
+                   rather than local (usually meaning only in function).
+                -- E.g. in fct without "global" statements, assuming
+                   "a" is name that hasn't been used in fct or module
+                   so far:
+                   -Try to read from "a" -> NameError
+                   -Try to write to "a" -> creates "a" local to fcn
+                   -If "a" not defined in fct, but is in module, then
+                       -Try to read from "a", gets value from module
+                       -Try to write to "a", creates "a" local to fct
+                   But note "a[0]=3" starts with search for "a",
+                   will use to global "a" if no local "a".
+
+Function Definition
+
+def func_id ([param_list]): suite
+                -- Creates a function object & binds it to name func_id.
+
+    param_list ::= [id [, id]*]
+    id ::= value | id = value | *id | **id
+    [Args are passed by value.Thus only args representing a mutable object
+    can be modified (are inout parameters). Use a tuple to return more than
+    one value]
+
+Example:
+        def test (p1, p2 = 1+1, *rest, **keywords):
+            -- Parameters with "=" have default value (v is
+               evaluated when function defined).
+               If list has "*id" then id is assigned a tuple of
+               all remaining args passed to function (like C vararg)
+               If list has "**id" then id is assigned a dictionary of
+               all extra arguments passed as keywords.
+
+Class Definition
+
+class <class_id> [(<super_class1> [,<super_class2>]*)]: <suite>
+        -- Creates a class object and assigns it name <class_id>
+           <suite> may contain local "defs" of class methods and
+           assignments to class attributes.
+Example:
+       class my_class (class1, class_list[3]): ...
+                  Creates a class object inheriting from both "class1" and whatever
+                  class object "class_list[3]" evaluates to. Assigns new
+                  class object to name "my_class".
+        - First arg to class methods is always instance object, called 'self'
+          by convention.
+        - Special method __init__() is called when instance is created.
+        - Special method __del__() called when no more reference to object.
+        - Create instance by "calling" class object, possibly with arg
+          (thus instance=apply(aClassObject, args...) creates an instance!)
+        - In current implementation, can't subclass off built-in
+          classes. But can "wrap" them, see UserDict & UserList modules,
+          and see __getattr__() below.
+Example:
+        class c (c_parent):
+           def __init__(self, name): self.name = name
+           def print_name(self): print "I'm", self.name
+           def call_parent(self): c_parent.print_name(self)
+           instance = c('tom')
+           print instance.name
+           'tom'
+           instance.print_name()
+           "I'm tom"
+        Call parent's super class by accessing parent's method
+        directly and passing "self" explicitly (see "call_parent"
+        in example above).
+        Many other special methods available for implementing
+        arithmetic operators, sequence, mapping indexing, etc.
+
+Documentation Strings
+
+Modules, classes and functions may be documented by placing a string literal by
+itself as the first statement in the suite. The documentation can be retrieved
+by getting the '__doc__' attribute from the module, class or function.
+Example:
+        class C:
+            "A description of C"
+            def __init__(self):
+                "A description of the constructor"
+                # etc.
+Then c.__doc__ == "A description of C".
+Then c.__init__.__doc__ == "A description of the constructor".
+
+Others
+
+lambda [param_list]: returnedExpr
+                -- Creates an anonymous function. returnedExpr must be
+                   an expression, not a statement (e.g., not "if xx:...",
+                   "print xxx", etc.) and thus can't contain newlines.
+                   Used mostly for filter(), map(), reduce() functions, and GUI callbacks..
+List comprehensions
+result = [expression for item1 in sequence1  [if condition1]
+                        [for item2 in sequence2 ... for itemN in sequenceN]
+                      ]
+is equivalent to:
+result = []
+for item1 in sequence1:
+    for item2 in sequence2:
+    ...
+        for itemN in sequenceN:
+             if (condition1) and furthur conditions:
+                  result.append(expression)
+
+
+
+Built-In Functions
+
+                              Built-In Functions
+     Function                                 Result
+__import__(name[,   Imports module within the given context (see lib ref for
+globals[, locals[,  more details)
+fromlist]]])
+abs(x)              Return the absolute value of number x.
+apply(f, args[,     Calls func/method f with arguments args and optional
+keywords])          keywords.
+bool(x)             Returns True when the argument x is true and False otherwise.
+buffer(obj)         Creates a buffer reference to an object.
+callable(x)         Returns True if x callable, else False.
+chr(i)              Returns one-character string whose ASCII code isinteger i
+classmethod(f)      Converts a function f, into a method with the class as the
+                    first argument.  Useful for creating alternative constructors.
+cmp(x,y)            Returns negative, 0, positive if x <, ==, > to y
+coerce(x,y)         Returns a tuple of the two numeric arguments converted to a
+                    common type.
+                    Compiles string into a code object.filename is used in
+                    error message, can be any string. It isusually the file
+compile(string,     from which the code was read, or eg. '<string>'if not read
+filename, kind)     from file.kind can be 'eval' if string is a single stmt, or
+                    'single' which prints the output of expression statements
+                    thatevaluate to something else than None, or be 'exec'.
+complex(real[,      Builds a complex object (can also be done using J or j
+image])             suffix,e.g. 1+3J)
+delattr(obj, name)  deletes attribute named name of object obj <=> del obj.name
+                    If no args, returns the list of names in current
+dict([items])       Create a new dictionary from the specified item list.
+dir([object])       localsymbol table. With a module, class or class
+                    instanceobject as arg, returns list of names in its attr.
+                    dict.
+divmod(a,b)         Returns tuple of (a/b, a%b)
+enumerate(seq)      Return a iterator giving:  (0, seq[0]), (1, seq[1]), ...
+eval(s[, globals[,  Eval string s in (optional) globals, locals contexts.s must
+locals]])           have no NUL's or newlines. s can also be acode object.
+                    Example: x = 1; incr_x = eval('x + 1')
+execfile(file[,     Executes a file without creating a new module, unlike
+globals[, locals]]) import.
+file()              Synonym for open().
+filter(function,    Constructs a list from those elements of sequence for which
+sequence)           function returns true. function takes one parameter.
+float(x)            Converts a number or a string to floating point.
+getattr(object,     [<default> arg added in 1.5.2]Gets attribute called name
+name[, default]))   from object,e.g. getattr(x, 'f') <=> x.f). If not found,
+                    raisesAttributeError or returns default if specified.
+globals()           Returns a dictionary containing current global variables.
+hasattr(object,     Returns true if object has attr called name.
+name)
+hash(object)        Returns the hash value of the object (if it has one)
+help(f)             Display documentation on object f.
+hex(x)              Converts a number x to a hexadecimal string.
+id(object)          Returns a unique 'identity' integer for an object.
+input([prompt])     Prints prompt if given. Reads input and evaluates it.
+                    Converts a number or a string to a plain integer. Optional
+int(x[, base])      base paramenter specifies base from which to convert string
+                    values.
+intern(aString)     Enters aString in the table of "interned strings"
+                    andreturns the string. Interned strings are 'immortals'.
+isinstance(obj,     returns true if obj is an instance of class. Ifissubclass
+class)              (A,B) then isinstance(x,A) => isinstance(x,B)
+issubclass(class1,  returns true if class1 is derived from class2
+class2)
+                    Returns the length (the number of items) of an object
+iter(collection)    Returns an iterator over the collection.
+len(obj)            (sequence, dictionary, or instance of class implementing
+                    __len__).
+list(sequence)      Converts sequence into a list. If already a list,returns a
+                    copy of it.
+locals()            Returns a dictionary containing current local variables.
+                    Converts a number or a string to a long integer. Optional
+long(x[, base])     base paramenter specifies base from which to convert string
+                    values.
+                    Applies function to every item of list and returns a listof
+map(function, list, the results. If additional arguments are passed,function
+...)                must take that many arguments and it is givento function on
+                    each call.
+max(seq)            Returns the largest item of the non-empty sequence seq.
+min(seq)            Returns the smallest item of a non-empty sequence seq.
+oct(x)              Converts a number to an octal string.
+open(filename [,    Returns a new file object. First two args are same asthose
+mode='r', [bufsize= for C's "stdio open" function. bufsize is 0for unbuffered,
+implementation      1 for line-buffered, negative forsys-default, all else, of
+dependent]])        (about) given size.
+ord(c)              Returns integer ASCII value of c (a string of len 1). Works
+                    with Unicode char.
+object()            Create a base type.  Used as a superclass for new-style objects.
+open(name           Open a file.
+  [, mode
+  [, buffering]])
+pow(x, y [, z])     Returns x to power y [modulo z]. See also ** operator.
+property()          Created a property with access controlled by functions.
+range(start [,end   Returns list of ints from >= start and < end.With 1 arg,
+[, step]])          list from 0..arg-1With 2 args, list from start..end-1With 3
+                    args, list from start up to end by step
+raw_input([prompt]) Prints prompt if given, then reads string from stdinput (no
+                    trailing \n). See also input().
+reduce(f, list [,   Applies the binary function f to the items oflist so as to
+init])              reduce the list to a single value.If init given, it is
+                    "prepended" to list.
+                    Re-parses and re-initializes an already imported module.
+                    Useful in interactive mode, if you want to reload amodule
+reload(module)      after fixing it. If module was syntacticallycorrect but had
+                    an error in initialization, mustimport it one more time
+                    before calling reload().
+                    Returns a string containing a printable and if possible
+repr(object)        evaluable representation of an object. <=> `object`
+                    (usingbackquotes). Class redefinissable (__repr__). See
+                    also str()
+round(x, n=0)       Returns the floating point value x rounded to n digitsafter
+                    the decimal point.
+setattr(object,     This is the counterpart of getattr().setattr(o, 'foobar',
+name, value)        3) <=> o.foobar = 3Creates attribute if it doesn't exist!
+slice([start,] stop Returns a slice object representing a range, with R/
+[, step])           Oattributes: start, stop, step.
+                    Returns a string containing a nicely
+staticmethod()      Convert a function to method with no self or class
+                    argument.  Useful for methods associated with a class that
+                    do not need access to an object's internal state.
+str(object)         printablerepresentation of an object. Class overridable
+                    (__str__).See also repr().
+super(type)         Create an unbound super object.  Used to call cooperative
+                    superclass methods.
+sum(sequence,       Add the values in the sequence and return the sum.
+    [start])
+tuple(sequence)     Creates a tuple with same elements as sequence. If already
+                    a tuple, return itself (not a copy).
+                    Returns a type object [see module types] representing
+                    thetype of obj. Example: import typesif type(x) ==
+type(obj)           types.StringType: print 'It is a string'NB: it is
+                    recommanded to use the following form:if isinstance(x,
+                    types.StringType): etc...
+unichr(code)        code.
+unicode(string[,    Creates a Unicode string from a 8-bit string, using
+encoding[, error    thegiven encoding name and error treatment ('strict',
+]]])                'ignore',or 'replace'}.
+                    Without arguments, returns a dictionary correspondingto the
+                    current local symbol table. With a module,class or class
+vars([object])      instance object as argumentreturns a dictionary
+                    corresponding to the object'ssymbol table. Useful with "%"
+                    formatting operator.
+xrange(start [, end Like range(), but doesn't actually store entire listall at
+[, step]])          once. Good to use in "for" loops when there is abig range
+                    and little memory.
+zip(seq1[, seq2,    Returns a list of tuples where each tuple contains the nth
+...])               element of each of the argument sequences.
+
+
+
+
+Built-In Exceptions
+
+Exception>
+         Root class for all exceptions
+    SystemExit
+         On 'sys.exit()'
+    StopIteration
+         Signal the end from iterator.next()
+    StandardError
+                 Base class for all built-in exceptions; derived from Exception
+    root class.
+        ArithmeticError
+                 Base class for OverflowError, ZeroDivisionError,
+    FloatingPointError
+            FloatingPointError
+                       When a floating point operation fails.
+            OverflowError
+                            On excessively large arithmetic operation
+            ZeroDivisionError
+                  On division or modulo operation with 0 as 2nd arg
+            AssertionError
+                When an assert statement fails.
+        AttributeError
+                    On attribute reference or assignment failure
+        EnvironmentError    [new in 1.5.2]
+                On error outside Python; error arg tuple is (errno, errMsg...)
+            IOError    [changed in 1.5.2]
+               I/O-related operation failure
+            OSError    [new in 1.5.2]
+               used by the os module's os.error exception.
+        EOFError
+                    Immediate end-of-file hit by input() or raw_input()
+        ImportError
+         On failure of `import' to find module or name
+        KeyboardInterrupt
+         On user entry of the interrupt key (often `Control-C')
+        LookupError
+                base class for IndexError, KeyError
+            IndexError
+                 On out-of-range sequence subscript
+            KeyError
+                 On reference to a non-existent mapping (dict) key
+        MemoryError
+         On recoverable memory exhaustion
+        NameError
+         On failure to find a local or global (unqualified) name
+        RuntimeError
+         Obsolete catch-all; define a suitable error instead
+          NotImplementedError   [new in 1.5.2]
+                On method not implemented
+        SyntaxError
+         On parser encountering a syntax error
+       IndentationError
+           On parser encountering an indentation syntax error
+       TabError
+           On parser encountering an indentation syntax error
+        SystemError
+         On non-fatal interpreter error - bug - report it
+        TypeError
+         On passing inappropriate type to built-in op or func
+        ValueError
+         On arg error not covered by TypeError or more precise
+    Warning
+              UserWarning
+              DeprecationWarning
+              PendingDeprecationWarning
+              SyntaxWarning
+              RuntimeWarning
+              FutureWarning
+
+
+
+Standard methods & operators redefinition in classes
+
+Standard methods & operators map to special '__methods__' and thus may be
+ redefined (mostly in in user-defined classes), e.g.:
+    class x:
+         def __init__(self, v): self.value = v
+         def __add__(self, r): return self.value + r
+    a = x(3) # sort of like calling x.__init__(a, 3)
+    a + 4    # is equivalent to a.__add__(4)
+
+Special methods for any class
+
+(s: self, o: other)
+        __init__(s, args) instance initialization (on construction)
+        __del__(s)        called on object demise (refcount becomes 0)
+        __repr__(s)       repr() and `...` conversions
+        __str__(s)        str() and 'print' statement
+        __cmp__(s, o)     Compares s to o and returns <0, 0, or >0.
+                          Implements >, <, == etc...
+        __hash__(s)       Compute a 32 bit hash code; hash() and dictionary ops
+        __nonzero__(s)    Returns False or True for truth value testing
+        __getattr__(s, name)  called when attr lookup doesn't find <name>
+        __setattr__(s, name, val) called when setting an attr
+                                  (inside, don't use "self.name = value"
+                                   use "self.__dict__[name] = val")
+        __delattr__(s, name)  called to delete attr <name>
+        __call__(self, *args) called when an instance is called as function.
+
+Operators
+
+    See list in the operator module. Operator function names are provided with
+    2 variants, with or without
+    ading & trailing '__' (eg. __add__ or add).
+
+    Numeric operations special methods
+    (s: self, o: other)
+
+        s+o       =  __add__(s,o)         s-o        =  __sub__(s,o)
+        s*o       =  __mul__(s,o)         s/o        =  __div__(s,o)
+        s%o       =  __mod__(s,o)         divmod(s,o) = __divmod__(s,o)
+        s**o      =  __pow__(s,o)
+        s&o       =  __and__(s,o)
+        s^o       =  __xor__(s,o)         s|o        =  __or__(s,o)
+        s<<o      =  __lshift__(s,o)      s>>o       =  __rshift__(s,o)
+        nonzero(s) = __nonzero__(s) (used in boolean testing)
+        -s        =  __neg__(s)           +s         =  __pos__(s)
+        abs(s)    =  __abs__(s)           ~s         =  __invert__(s)  (bitwise)
+        s+=o      =  __iadd__(s,o)        s-=o       =  __isub__(s,o)
+        s*=o      =  __imul__(s,o)        s/=o       =  __idiv__(s,o)
+        s%=o      =  __imod__(s,o)
+        s**=o     =  __ipow__(s,o)
+        s&=o      =  __iand__(s,o)
+        s^=o      =  __ixor__(s,o)        s|=o       =  __ior__(s,o)
+        s<<=o     =  __ilshift__(s,o)     s>>=o      =  __irshift__(s,o)
+        Conversions
+        int(s)    =  __int__(s)           long(s)    =  __long__(s)
+        float(s)  =  __float__(s)         complex(s)    =  __complex__(s)
+        oct(s)    =  __oct__(s)           hex(s)     =  __hex__(s)
+        coerce(s,o) = __coerce__(s,o)
+        Right-hand-side equivalents for all binary operators exist;
+        are called when class instance is on r-h-s of operator:
+        a + 3  calls __add__(a, 3)
+        3 + a  calls __radd__(a, 3)
+
+    All seqs and maps, general operations plus:
+    (s: self, i: index or key)
+
+        len(s)    = __len__(s)        length of object, >= 0.  Length 0 == false
+        s[i]      = __getitem__(s,i)  Element at index/key i, origin 0
+
+    Sequences, general methods, plus:
+      s[i]=v           = __setitem__(s,i,v)
+      del s[i]         = __delitem__(s,i)
+      s[i:j]           = __getslice__(s,i,j)
+      s[i:j]=seq       = __setslice__(s,i,j,seq)
+      del s[i:j]       = __delslice__(s,i,j)   == s[i:j] = []
+      seq * n          = __repeat__(seq, n)
+      s1 + s2          = __concat__(s1, s2)
+      i in s           = __contains__(s, i)
+    Mappings, general methods, plus
+      hash(s)          = __hash__(s) - hash value for dictionary references
+      s[k]=v           = __setitem__(s,k,v)
+      del s[k]         = __delitem__(s,k)
+
+Special informative state attributes for some types:
+
+    Modules:
+        __doc__ (string/None, R/O): doc string (<=> __dict__['__doc__'])
+        __name__(string, R/O): module name (also in __dict__['__name__'])
+        __dict__ (dict, R/O): module's name space
+        __file__(string/undefined, R/O): pathname of .pyc, .pyo or .pyd (undef for
+                 modules statically linked to the interpreter)
+
+    Classes:    [in bold: writable since 1.5.2]
+        __doc__ (string/None, R/W): doc string (<=> __dict__['__doc__'])
+        __module__ is the module name in which the class was defined
+        __name__(string, R/W): class name (also in __dict__['__name__'])
+        __bases__ (tuple, R/W): parent classes
+        __dict__ (dict, R/W): attributes (class name space)
+
+    Instances:
+        __class__ (class, R/W): instance's class
+        __dict__ (dict, R/W): attributes
+
+    User-defined functions: [bold: writable since 1.5.2]
+        __doc__ (string/None, R/W): doc string
+        __name__(string, R/O): function name
+        func_doc (R/W): same as __doc__
+        func_name (R/O): same as __name__
+        func_defaults (tuple/None, R/W): default args values if any
+        func_code (code, R/W): code object representing the compiled function body
+        func_globals (dict, R/O): ref to dictionary of func global variables
+        func_dict (dict, R/W):  same as __dict__ contains the namespace supporting
+            arbitrary function attributes
+        func_closure (R/O): None or a tuple of cells that contain bindings
+            for the function's free variables.
+
+
+    User-defined Methods:
+        __doc__ (string/None, R/O): doc string
+        __name__(string, R/O): method name (same as im_func.__name__)
+        im_class (class, R/O): class defining the method (may be a base class)
+        im_self (instance/None, R/O): target instance object (None if unbound)
+        im_func (function, R/O): function object
+
+    Built-in Functions & methods:
+        __doc__ (string/None, R/O): doc string
+        __name__ (string, R/O): function name
+        __self__ : [methods only] target object
+
+    Codes:
+        co_name (string, R/O): function name
+        co_argcount (int, R/0): number of positional args
+        co_nlocals (int, R/O): number of local vars (including args)
+        co_varnames (tuple, R/O): names of local vars (starting with args)
+        co_cellvars (tuple, R/O)) the names of local variables referenced by
+            nested functions
+        co_freevars (tuple, R/O)) names of free variables
+        co_code (string, R/O): sequence of bytecode instructions
+        co_consts (tuple, R/O): litterals used by the bytecode, 1st one is
+                                fct doc (or None)
+        co_names (tuple, R/O): names used by the bytecode
+        co_filename (string, R/O): filename from which the code was compiled
+        co_firstlineno (int, R/O): first line number of the function
+        co_lnotab (string, R/O): string encoding bytecode offsets to line numbers.
+        co_stacksize (int, R/O): required stack size (including local vars)
+        co_flags (int, R/O): flags for the interpreter
+                           bit 2 set if fct uses "*arg" syntax
+                           bit 3 set if fct uses '**keywords' syntax
+    Frames:
+        f_back (frame/None, R/O): previous stack frame (toward the caller)
+        f_code (code, R/O): code object being executed in this frame
+        f_locals (dict, R/O): local vars
+        f_globals (dict, R/O): global vars
+        f_builtins (dict, R/O): built-in (intrinsic) names
+        f_restricted (int, R/O): flag indicating whether fct is executed in
+                                 restricted mode
+        f_lineno (int, R/O): current line number
+        f_lasti (int, R/O): precise instruction (index into bytecode)
+        f_trace (function/None, R/W): debug hook called at start of each source line
+        f_exc_type (Type/None, R/W): Most recent exception type
+        f_exc_value (any, R/W): Most recent exception value
+        f_exc_traceback (traceback/None, R/W): Most recent exception traceback
+    Tracebacks:
+        tb_next (frame/None, R/O): next level in stack trace (toward the frame where
+                                  the exception occurred)
+        tb_frame (frame, R/O): execution frame of the current level
+        tb_lineno (int, R/O): line number where the exception occurred
+        tb_lasti (int, R/O): precise instruction (index into bytecode)
+
+    Slices:
+        start (any/None, R/O): lowerbound
+        stop (any/None, R/O): upperbound
+        step (any/None, R/O): step value
+
+    Complex numbers:
+        real (float, R/O): real part
+        imag (float, R/O): imaginary part
+
+
+Important Modules
+
+                                      sys
+
+                              Some sys variables
+      Variable                                Content
+argv                 The list of command line arguments passed to aPython
+                     script. sys.argv[0] is the script name.
+builtin_module_names A list of strings giving the names of all moduleswritten
+                     in C that are linked into this interpreter.
+check_interval       How often to check for thread switches or signals(measured
+                     in number of virtual machine instructions)
+exc_type, exc_value, Deprecated since release 1.5. Use exc_info() instead.
+exc_traceback
+exitfunc             User can set to a parameterless fcn. It will getcalled
+                     before interpreter exits.
+last_type,           Set only when an exception not handled andinterpreter
+last_value,          prints an error. Used by debuggers.
+last_traceback
+maxint               maximum positive value for integers
+modules              Dictionary of modules that have already been loaded.
+path                 Search path for external modules. Can be modifiedby
+                     program. sys.path[0] == dir of script executing
+platform             The current platform, e.g. "sunos5", "win32"
+ps1, ps2             prompts to use in interactive mode.
+                     File objects used for I/O. One can redirect byassigning a
+stdin, stdout,       new file object to them (or any object:.with a method
+stderr               write(string) for stdout/stderr,.with a method readline()
+                     for stdin)
+version              string containing version info about Python interpreter.
+                     (and also: copyright, dllhandle, exec_prefix, prefix)
+version_info         tuple containing Python version info - (major, minor,
+                     micro, level, serial).
+
+                              Some sys functions
+     Function                                 Result
+exit(n)            Exits with status n. Raises SystemExit exception.(Hence can
+                   be caught and ignored by program)
+getrefcount(object Returns the reference count of the object. Generally one
+)                  higher than you might expect, because of object arg temp
+                   reference.
+setcheckinterval(  Sets the interpreter's thread switching interval (in number
+interval)          of virtual code instructions, default:100).
+settrace(func)     Sets a trace function: called before each line ofcode is
+                   exited.
+setprofile(func)   Sets a profile function for performance profiling.
+                   Info on exception currently being handled; this is atuple
+                   (exc_type, exc_value, exc_traceback).Warning: assigning the
+exc_info()         traceback return value to a local variable in a
+                   function handling an exception will cause a circular
+                   reference.
+setdefaultencoding Change default Unicode encoding - defaults to 7-bit ASCII.
+(encoding)
+getrecursionlimit  Retrieve maximum recursion depth.
+()
+setrecursionlimit  Set maximum recursion depth. (Defaults to 1000.)
+()
+
+
+
+                                      os
+"synonym" for whatever O/S-specific module is proper for current environment.
+this module uses posix whenever possible.
+(see also M.A. Lemburg's utility http://www.lemburg.com/files/python/
+platform.py)
+
+                               Some os variables
+     Variable                                 Meaning
+name                name of O/S-specific module (e.g. "posix", "mac", "nt")
+path                O/S-specific module for path manipulations.
+                    On Unix, os.path.split() <=> posixpath.split()
+curdir              string used to represent current directory ('.')
+pardir              string used to represent parent directory ('..')
+sep                 string used to separate directories ('/' or '\'). Tip: use
+                    os.path.join() to build portable paths.
+altsep              Alternate sep
+if applicable (None
+otherwise)
+pathsep             character used to separate search path components (as in
+                    $PATH), eg. ';' for windows.
+linesep             line separator as used in binary files, ie '\n' on Unix, '\
+                    r\n' on Dos/Win, '\r'
+
+                               Some os functions
+     Function                                 Result
+makedirs(path[,     Recursive directory creation (create required intermediary
+mode=0777])         dirs); os.error if fails.
+removedirs(path)    Recursive directory delete (delete intermediary empty
+                    dirs); if fails.
+renames(old, new)   Recursive directory or file renaming; os.error if fails.
+
+
+
+                                     posix
+don't import this module directly, import os instead !
+(see also module: shutil for file copy & remove fcts)
+
+                            posix Variables
+Variable                             Meaning
+environ  dictionary of environment variables, e.g.posix.environ['HOME'].
+error    exception raised on POSIX-related error.
+         Corresponding value is tuple of errno code and perror() string.
+
+                             Some posix functions
+   Function                                 Result
+chdir(path)     Changes current directory to path.
+chmod(path,     Changes the mode of path to the numeric mode
+mode)
+close(fd)       Closes file descriptor fd opened with posix.open.
+_exit(n)        Immediate exit, with no cleanups, no SystemExit,etc. Should use
+                this to exit a child process.
+execv(p, args)  "Become" executable p with args args
+getcwd()        Returns a string representing the current working directory
+getpid()        Returns the current process id
+fork()          Like C's fork(). Returns 0 to child, child pid to parent.[Not
+                on Windows]
+kill(pid,       Like C's kill [Not on Windows]
+signal)
+listdir(path)   Lists (base)names of entries in directory path, excluding '.'
+                and '..'
+lseek(fd, pos,  Sets current position in file fd to position pos, expressedas
+how)            an offset relative to beginning of file (how=0), tocurrent
+                position (how=1), or to end of file (how=2)
+mkdir(path[,    Creates a directory named path with numeric mode (default 0777)
+mode])
+open(file,      Like C's open(). Returns file descriptor. Use file object
+flags, mode)    fctsrather than this low level ones.
+pipe()          Creates a pipe. Returns pair of file descriptors (r, w) [Not on
+                Windows].
+popen(command,  Opens a pipe to or from command. Result is a file object to
+mode='r',       read to orwrite from, as indicated by mode being 'r' or 'w'.
+bufSize=0)      Use it to catch acommand output ('r' mode) or to feed it ('w'
+                mode).
+remove(path)    See unlink.
+rename(src, dst Renames/moves the file or directory src to dst. [error iftarget
+)               name already exists]
+rmdir(path)     Removes the empty directory path
+read(fd, n)     Reads n bytes from file descriptor fd and return as string.
+                Returns st_mode, st_ino, st_dev, st_nlink, st_uid,st_gid,
+stat(path)      st_size, st_atime, st_mtime, st_ctime.[st_ino, st_uid, st_gid
+                are dummy on Windows]
+system(command) Executes string command in a subshell. Returns exitstatus of
+                subshell (usually 0 means OK).
+                Returns accumulated CPU times in sec (user, system, children's
+times()         user,children's sys, elapsed real time). [3 last not on
+                Windows]
+unlink(path)    Unlinks ("deletes") the file (not dir!) path. same as: remove
+utime(path, (   Sets the access & modified time of the file to the given tuple
+aTime, mTime))  of values.
+wait()          Waits for child process completion. Returns tuple ofpid,
+                exit_status [Not on Windows]
+waitpid(pid,    Waits for process pid to complete. Returns tuple ofpid,
+options)        exit_status [Not on Windows]
+write(fd, str)  Writes str to file fd. Returns nb of bytes written.
+
+
+
+                                   posixpath
+Do not import this module directly, import os instead and refer to this module
+as os.path. (e.g. os.path.exists(p)) !
+
+                           Some posixpath functions
+ Function                                 Result
+abspath(p) Returns absolute path for path p, taking current working dir in
+           account.
+dirname/
+basename(p directory and name parts of the path p. See also split.
+)
+exists(p)  True if string p is an existing path (file or directory)
+expanduser Returns string that is (a copy of) p with "~" expansion done.
+(p)
+expandvars Returns string that is (a copy of) p with environment vars expanded.
+(p)        [Windows: case significant; must use Unix: $var notation, not %var%]
+getsize(   return the size in bytes of filename. raise os.error.
+filename)
+getmtime(  return last modification time of filename (integer nb of seconds
+filename)  since epoch).
+getatime(  return last access time of filename (integer nb of seconds since
+filename)  epoch).
+isabs(p)   True if string p is an absolute path.
+isdir(p)   True if string p is a directory.
+islink(p)  True if string p is a symbolic link.
+ismount(p) True if string p is a mount point [true for all dirs on Windows].
+join(p[,q  Joins one or more path components intelligently.
+[,...]])
+           Splits p into (head, tail) where tail is lastpathname component and
+split(p)   <head> is everything leadingup to that. <=> (dirname(p), basename
+           (p))
+splitdrive Splits path p in a pair ('drive:', tail) [Windows]
+(p)
+splitext(p Splits into (root, ext) where last comp of root contains no periods
+)          and ext is empty or startswith a period.
+           Calls the function visit with arguments(arg, dirname, names) for
+           each directory recursively inthe directory tree rooted at p
+walk(p,    (including p itself if it's a dir)The argument dirname specifies the
+visit, arg visited directory, the argumentnames lists the files in the
+)          directory. The visit function maymodify names to influence the set
+           of directories visited belowdirname, e.g., to avoid visiting certain
+           parts of the tree.
+
+
+
+                                    shutil
+high-level file operations (copying, deleting).
+
+                             Main shutil functions
+     Function                                 Result
+copy(src, dst)     Copies the contents of file src to file dst, retaining file
+                   permissions.
+copytree(src, dst  Recursively copies an entire directory tree rooted at src
+[, symlinks])      into dst (which should not already exist). If symlinks is
+                   true, links insrc are kept as such in dst.
+rmtree(path[,      Deletes an entire directory tree, ignoring errors if
+ignore_errors[,    ignore_errors true,or calling onerror(func, path,
+onerror]])         sys.exc_info()) if supplied with
+
+(and also: copyfile, copymode, copystat, copy2)
+
+time
+
+                                  Variables
+Variable                               Meaning
+altzone  signed offset of local DST timezone in sec west of the 0th meridian.
+daylight nonzero if a DST timezone is specified
+
+                                   Functions
+  Function                                 Result
+time()        return a float representing UTC time in seconds since the epoch.
+gmtime(secs), return a tuple representing time : (year aaaa, month(1-12),day
+localtime(    (1-31), hour(0-23), minute(0-59), second(0-59), weekday(0-6, 0 is
+secs)         monday), Julian day(1-366), daylight flag(-1,0 or 1))
+asctime(
+timeTuple),
+strftime(
+format,       return a formated string representing time.
+timeTuple)
+mktime(tuple) inverse of localtime(). Return a float.
+strptime(     parse a formated string representing time, return tuple as in
+string[,      gmtime().
+format])
+sleep(secs)   Suspend execution for <secs> seconds. <secs> can be a float.
+
+and also: clock, ctime.
+
+                                    string
+
+As of Python 2.0, much (though not all) of the functionality provided by the
+string module have been superseded by built-in string methods - see Operations
+on strings for details.
+
+                             Some string variables
+              Variable                                Meaning
+digits                               The string '0123456789'
+hexdigits, octdigits                 legal hexadecimal & octal digits
+letters, uppercase, lowercase,       Strings containing the appropriate
+whitespace                           characters
+index_error                          Exception raised by index() if substr not
+                                     found.
+
+                             Some string functions
+     Function                                 Result
+expandtabs(s,      returns a copy of string <s> with tabs expanded.
+tabSize)
+find/rfind(s, sub  Return the lowest/highest index in <s> where the substring
+[, start=0[, end=  <sub> is found such that <sub> is wholly contained ins
+0])                [start:end]. Return -1 if <sub> not found.
+ljust/rjust/center Return a copy of string <s> left/right justified/centerd in
+(s, width)         afield of given width, padded with spaces. <s> is
+                   nevertruncated.
+lower/upper(s)     Return a string that is (a copy of) <s> in lowercase/
+                   uppercase
+split(s[, sep=     Return a list containing the words of the string <s>,using
+whitespace[,       the string <sep> as a separator.
+maxsplit=0]])
+join(words[, sep=' Concatenate a list or tuple of words with
+'])                interveningseparators; inverse of split.
+replace(s, old,    Returns a copy of string <s> with all occurrences of
+new[, maxsplit=0]  substring<old> replaced by <new>. Limits to <maxsplit>
+                   firstsubstitutions if specified.
+strip(s)           Return a string that is (a copy of) <s> without leadingand
+                   trailing whitespace. see also lstrip, rstrip.
+
+
+
+                                   re (sre)
+
+Handles Unicode strings. Implemented in new module sre, re now a mere front-end
+for compatibility.
+Patterns are specified as strings. Tip: Use raw strings (e.g. r'\w*') to
+litteralize backslashes.
+
+
+                           Regular expression syntax
+   Form                                Description
+.          matches any character (including newline if DOTALL flag specified)
+^          matches start of the string (of every line in MULTILINE mode)
+$          matches end of the string (of every line in MULTILINE mode)
+*          0 or more of preceding regular expression (as many as possible)
++          1 or more of preceding regular expression (as many as possible)
+?          0 or 1 occurrence of preceding regular expression
+*?, +?, ?? Same as *, + and ? but matches as few characters as possible
+{m,n}      matches from m to n repetitions of preceding RE
+{m,n}?     idem, attempting to match as few repetitions as possible
+[ ]        defines character set: e.g. '[a-zA-Z]' to match all letters(see also
+           \w \S)
+[^ ]       defines complemented character set: matches if char is NOT in set
+           escapes special chars '*?+&$|()' and introduces special sequences
+\          (see below). Due to Python string rules, write as '\\' orr'\' in the
+           pattern string.
+\\         matches a litteral '\'; due to Python string rules, write as '\\\\
+           'in pattern string, or better using raw string: r'\\'.
+|          specifies alternative: 'foo|bar' matches 'foo' or 'bar'
+(...)      matches any RE inside (), and delimits a group.
+(?:...)    idem but doesn't delimit a group.
+           matches if ... matches next, but doesn't consume any of the string
+(?=...)    e.g. 'Isaac (?=Asimov)' matches 'Isaac' only if followed by
+           'Asimov'.
+(?!...)    matches if ... doesn't match next. Negative of (?=...)
+(?P<name   matches any RE inside (), and delimits a named group. (e.g. r'(?P
+>...)      <id>[a-zA-Z_]\w*)' defines a group named id)
+(?P=name)  matches whatever text was matched by the earlier group named name.
+(?#...)    A comment; ignored.
+(?letter)  letter is one of 'i','L', 'm', 's', 'x'. Set the corresponding flags
+           (re.I, re.L, re.M, re.S, re.X) for the entire RE.
+
+                               Special sequences
+Sequence                              Description
+number   matches content of the group of the same number; groups are numbered
+         starting from 1
+\A       matches only at the start of the string
+\b       empty str at beg or end of word: '\bis\b' matches 'is', but not 'his'
+\B       empty str NOT at beginning or end of word
+\d       any decimal digit (<=> [0-9])
+\D       any non-decimal digit char (<=> [^O-9])
+\s       any whitespace char (<=> [ \t\n\r\f\v])
+\S       any non-whitespace char (<=> [^ \t\n\r\f\v])
+\w       any alphaNumeric char (depends on LOCALE flag)
+\W       any non-alphaNumeric char (depends on LOCALE flag)
+\Z       matches only at the end of the string
+
+                         Variables
+Variable                       Meaning
+error    Exception when pattern string isn't a valid regexp.
+
+                                   Functions
+   Function                                 Result
+               Compile a RE pattern string into a regular expression object.
+               Flags (combinable by |):
+
+               I or IGNORECASE or (?i)
+                   case insensitive matching
+compile(       L or LOCALE or (?L)
+pattern[,          make \w, \W, \b, \B dependent on thecurrent locale
+flags=0])      M or MULTILINE or (?m)
+                   matches every new line and not onlystart/end of the whole
+                   string
+               S or DOTALL or (?s)
+                   '.' matches ALL chars, including newline
+               X or VERBOSE or (?x)
+                   Ignores whitespace outside character sets
+escape(string) return (a copy of) string with all non-alphanumerics
+               backslashed.
+match(pattern, if 0 or more chars at beginning of <string> match the RE pattern
+string[, flags string,return a corresponding MatchObject instance, or None if
+])             no match.
+search(pattern scan thru <string> for a location matching <pattern>, return
+, string[,     acorresponding MatchObject instance, or None if no match.
+flags])
+split(pattern, split <string> by occurrences of <pattern>. If capturing () are
+string[,       used inpattern, then occurrences of patterns or subpatterns are
+maxsplit=0])   also returned.
+findall(       return a list of non-overlapping matches in <pattern>, either a
+pattern,       list ofgroups or a list of tuples if the pattern has more than 1
+string)        group.
+               return string obtained by replacing the (<count> first) lefmost
+sub(pattern,   non-overlapping occurrences of <pattern> (a string or a RE
+repl, string[, object) in <string>by <repl>; <repl> can be a string or a fct
+count=0])      called with a single MatchObj arg, which must return the
+               replacement string.
+subn(pattern,
+repl, string[, same as sub(), but returns a tuple (newString, numberOfSubsMade)
+count=0])
+
+Regular Expression Objects
+
+
+(RE objects are returned by the compile fct)
+
+                          re object attributes
+Attribute                            Descrition
+flags      flags arg used when RE obj was compiled, or 0 if none provided
+groupindex dictionary of {group name: group number} in pattern
+pattern    pattern string from which RE obj was compiled
+
+                               re object methods
+  Method                                  Result
+            If zero or more characters at the beginning of string match this
+            regular expression, return a corresponding MatchObject instance.
+            Return None if the string does not match the pattern; note that
+            this is different from a zero-length match.
+            The optional second parameter pos gives an index in the string
+match(      where the search is to start; it defaults to 0. This is not
+string[,    completely equivalent to slicing the string; the '' pattern
+pos][,      character matches at the real beginning of the string and at
+endpos])    positions just after a newline, but not necessarily at the index
+            where the search is to start.
+            The optional parameter endpos limits how far the string will be
+            searched; it will be as if the string is endpos characters long, so
+            only the characters from pos to endpos will be searched for a
+            match.
+            Scan through string looking for a location where this regular
+search(     expression produces a match, and return a corresponding MatchObject
+string[,    instance. Return None if no position in the string matches the
+pos][,      pattern; note that this is different from finding a zero-length
+endpos])    match at some point in the string.
+            The optional pos and endpos parameters have the same meaning as for
+            the match() method.
+split(
+string[,    Identical to the split() function, using the compiled pattern.
+maxsplit=
+0])
+findall(    Identical to the findall() function, using the compiled pattern.
+string)
+sub(repl,
+string[,    Identical to the sub() function, using the compiled pattern.
+count=0])
+subn(repl,
+string[,    Identical to the subn() function, using the compiled pattern.
+count=0])
+
+Match Objects
+
+
+(Match objects are returned by the match & search functions)
+
+                            Match object attributes
+Attribute                              Description
+pos       value of pos passed to search or match functions; index intostring at
+          which RE engine started search.
+endpos    value of endpos passed to search or match functions; index intostring
+          beyond which RE engine won't go.
+re        RE object whose match or search fct produced this MatchObj instance
+string    string passed to match() or search()
+
+                            Match object functions
+Function                                 Result
+          returns one or more groups of the match. If one arg, result is a
+group([g1 string;if multiple args, result is a tuple with one item per arg. If
+, g2,     gi is 0,return value is entire matching string; if 1 <= gi <= 99,
+...])     returnstring matching group #gi (or None if no such group); gi may
+          also bea group name.
+          returns a tuple of all groups of the match; groups not
+groups()  participatingto the match have a value of None. Returns a string
+          instead of tupleif len(tuple)=1
+start(
+group),   returns indices of start & end of substring matched by group (or
+end(group Noneif group exists but doesn't contribute to the match)
+)
+span(     returns the 2-tuple (start(group), end(group)); can be (None, None)if
+group)    group didn't contibute to the match.
+
+
+
+                                     math
+
+Variables:
+pi
+e
+Functions (see ordinary C man pages for info):
+acos(x)
+asin(x)
+atan(x)
+atan2(x, y)
+ceil(x)
+cos(x)
+cosh(x)
+degrees(x)
+exp(x)
+fabs(x)
+floor(x)
+fmod(x, y)
+frexp(x)        -- Unlike C: (float, int) = frexp(float)
+ldexp(x, y)
+log(x [,base])
+log10(x)
+modf(x)         -- Unlike C: (float, float) = modf(float)
+pow(x, y)
+radians(x)
+sin(x)
+sinh(x)
+sqrt(x)
+tan(x)
+tanh(x)
+
+                                    getopt
+
+Functions:
+getopt(list, optstr)    -- Similar to C. <optstr> is option
+                           letters to look for. Put ':' after letter
+                           if option takes arg. E.g.
+    # invocation was "python test.py -c hi -a arg1 arg2"
+       opts, args =  getopt.getopt(sys.argv[1:], 'ab:c:')
+    # opts would be
+       [('-c', 'hi'), ('-a', '')]
+    # args would be
+       ['arg1', 'arg2']
+
+
+List of modules and packages in base distribution
+
+(built-ins and content of python Lib directory)
+(Python NT distribution, may be slightly different in other distributions)
+
+                           Standard library modules
+   Operation                                 Result
+aifc             Stuff to parse AIFF-C and AIFF files.
+anydbm           Generic interface to all dbm clones. (dbhash, gdbm,
+                 dbm,dumbdbm)
+asynchat         Support for 'chat' style protocols
+asyncore         Asynchronous File I/O (in select style)
+atexit           Register functions to be called at exit of Python interpreter.
+audiodev         Audio support for a few platforms.
+base64           Conversions to/from base64 RFC-MIME transport encoding .
+BaseHTTPServer   Base class forhttp services.
+Bastion          "Bastionification" utility (control access to instance vars)
+bdb              A generic Python debugger base class.
+binhex           Macintosh binhex compression/decompression.
+bisect           List bisection algorithms.
+bz2              Support for bz2 compression/decompression.
+calendar         Calendar printing functions.
+cgi              Wraps the WWW Forms Common Gateway Interface (CGI).
+cgitb            Utility for handling CGI tracebacks.
+CGIHTTPServer    CGI http services.
+cmd              A generic class to build line-oriented command interpreters.
+datetime         Basic date and time types.
+code             Utilities needed to emulate Python's interactive interpreter
+codecs           Lookup existing Unicode encodings and register new ones.
+colorsys         Conversion functions between RGB and other color systems.
+commands         Tools for executing UNIX commands .
+compileall       Force "compilation" of all .py files in a directory.
+ConfigParser     Configuration file parser (much like windows .ini files)
+copy             Generic shallow and deep copying operations.
+copy_reg         Helper to provide extensibility for pickle/cPickle.
+csv              Read and write files with comma separated values.
+dbhash           (g)dbm-compatible interface to bsdhash.hashopen.
+dircache         Sorted list of files in a dir, using a cache.
+[DEL:dircmp:DEL] [DEL:Defines a class to build directory diff tools on.:DEL]
+difflib          Tool for creating delta between sequences.
+dis              Bytecode disassembler.
+distutils        Package installation system.
+doctest          Tool for running and verifying tests inside doc strings.
+dospath          Common operations on DOS pathnames.
+dumbdbm          A dumb and slow but simple dbm clone.
+[DEL:dump:DEL]   [DEL:Print python code that reconstructs a variable.:DEL]
+email            Comprehensive support for internet email.
+exceptions       Class based built-in exception hierarchy.
+filecmp          File comparison.
+fileinput        Helper class to quickly write a loop over all standard input
+                 files.
+[DEL:find:DEL]   [DEL:Find files directory hierarchy matching a pattern.:DEL]
+fnmatch          Filename matching with shell patterns.
+formatter        A test formatter.
+fpformat         General floating point formatting functions.
+ftplib           An FTP client class. Based on RFC 959.
+gc               Perform garbacge collection, obtain GC debug stats, and tune
+                 GC parameters.
+getopt           Standard command line processing. See also ftp://
+                 www.pauahtun.org/pub/getargspy.zip
+getpass          Utilities to get a password and/or the current user name.
+glob             filename globbing.
+gopherlib        Gopher protocol client interface.
+[DEL:grep:DEL]   [DEL:'grep' utilities.:DEL]
+gzip             Read & write gzipped files.
+heapq            Priority queue implemented using lists organized as heaps.
+HMAC             Keyed-Hashing for Message Authentication -- RFC 2104.
+htmlentitydefs   Proposed entity definitions for HTML.
+htmllib          HTML parsing utilities.
+HTMLParser       A parser for HTML and XHTML.
+httplib          HTTP client class.
+ihooks           Hooks into the "import" mechanism.
+imaplib          IMAP4 client.Based on RFC 2060.
+imghdr           Recognizing image files based on their first few bytes.
+imputil          Privides a way of writing customised import hooks.
+inspect          Tool for probing live Python objects.
+keyword          List of Python keywords.
+knee             A Python re-implementation of hierarchical module import.
+linecache        Cache lines from files.
+linuxaudiodev    Lunix /dev/audio support.
+locale           Support for number formatting using the current locale
+                 settings.
+logging          Python logging facility.
+macpath          Pathname (or related) operations for the Macintosh.
+macurl2path      Mac specific module for conversion between pathnames and URLs.
+mailbox          A class to handle a unix-style or mmdf-style mailbox.
+mailcap          Mailcap file handling (RFC 1524).
+mhlib            MH (mailbox) interface.
+mimetools        Various tools used by MIME-reading or MIME-writing programs.
+mimetypes        Guess the MIME type of a file.
+MimeWriter       Generic MIME writer.
+mimify           Mimification and unmimification of mail messages.
+mmap             Interface to memory-mapped files - they behave like mutable
+                 strings./font>
+multifile        Class to make multi-file messages easier to handle.
+mutex            Mutual exclusion -- for use with module sched.
+netrc
+nntplib          An NNTP client class. Based on RFC 977.
+ntpath           Common operations on DOS pathnames.
+nturl2path       Mac specific module for conversion between pathnames and URLs.
+optparse         A comprehensive tool for processing command line options.
+os               Either mac, dos or posix depending system.
+[DEL:packmail:   [DEL:Create a self-unpacking shell archive.:DEL]
+DEL]
+pdb              A Python debugger.
+pickle           Pickling (save and restore) of Python objects (a faster
+                 Cimplementation exists in built-in module: cPickle).
+pipes            Conversion pipeline templates.
+pkgunil          Utilities for working with Python packages.
+popen2           variations on pipe open.
+poplib           A POP3 client class. Based on the J. Myers POP3 draft.
+posixfile        Extended (posix) file operations.
+posixpath        Common operations on POSIX pathnames.
+pprint           Support to pretty-print lists, tuples, & dictionaries
+                 recursively.
+profile          Class for profiling python code.
+pstats           Class for printing reports on profiled python code.
+pydoc            Utility for generating documentation from source files.
+pty              Pseudo terminal utilities.
+pyexpat          Interface to the Expay XML parser.
+py_compile       Routine to "compile" a .py file to a .pyc file.
+pyclbr           Parse a Python file and retrieve classes and methods.
+Queue            A multi-producer, multi-consumer queue.
+quopri           Conversions to/from quoted-printable transport encoding.
+rand             Don't use unless you want compatibility with C's rand().
+random           Random variable generators
+re               Regular Expressions.
+repr             Redo repr() but with limits on most sizes.
+rexec            Restricted execution facilities ("safe" exec, eval, etc).
+rfc822           RFC-822 message manipulation class.
+rlcompleter      Word completion for GNU readline 2.0.
+robotparser      Parse robots.txt files, useful for web spiders.
+sched            A generally useful event scheduler class.
+sets             Module for a set datatype.
+sgmllib          A parser for SGML.
+shelve           Manage shelves of pickled objects.
+shlex            Lexical analyzer class for simple shell-like syntaxes.
+shutil           Utility functions usable in a shell-like program.
+SimpleHTTPServer Simple extension to base http class
+site             Append module search paths for third-party packages to
+                 sys.path.
+smtplib          SMTP Client class (RFC 821)
+sndhdr           Several routines that help recognizing sound.
+SocketServer     Generic socket server classes.
+stat             Constants and functions for interpreting stat/lstat struct.
+statcache        Maintain a cache of file stats.
+statvfs          Constants for interpreting statvfs struct as returned by
+                 os.statvfs()and os.fstatvfs() (if they exist).
+string           A collection of string operations.
+StringIO         File-like objects that read/write a string buffer (a fasterC
+                 implementation exists in built-in module: cStringIO).
+sunau            Stuff to parse Sun and NeXT audio files.
+sunaudio         Interpret sun audio headers.
+symbol           Non-terminal symbols of Python grammar (from "graminit.h").
+tabnanny,/font>  Check Python source for ambiguous indentation.
+tarfile          Facility for reading and writing to the *nix tarfile format.
+telnetlib        TELNET client class. Based on RFC 854.
+tempfile         Temporary file name allocation.
+textwrap         Object for wrapping and filling text.
+threading        Proposed new higher-level threading interfaces
+threading_api    (doc of the threading module)
+toaiff           Convert "arbitrary" sound files to AIFF files .
+token            Tokens (from "token.h").
+tokenize         Compiles a regular expression that recognizes Python tokens.
+traceback        Format and print Python stack traces.
+tty              Terminal utilities.
+turtle           LogoMation-like turtle graphics
+types            Define names for all type symbols in the std interpreter.
+tzparse          Parse a timezone specification.
+unicodedata      Interface to unicode properties.
+urllib           Open an arbitrary URL.
+urlparse         Parse URLs according to latest draft of standard.
+user             Hook to allow user-specified customization code to run.
+UserDict         A wrapper to allow subclassing of built-in dict class.
+UserList         A wrapper to allow subclassing of built-in list class.
+UserString       A wrapper to allow subclassing of built-in string class.
+[DEL:util:DEL]   [DEL:some useful functions that don't fit elsewhere !!:DEL]
+uu               UUencode/UUdecode.
+unittest         Utilities for implementing unit testing.
+wave             Stuff to parse WAVE files.
+weakref          Tools for creating and managing weakly referenced objects.
+webbrowser       Platform independent URL launcher.
+[DEL:whatsound:  [DEL:Several routines that help recognizing sound files.:DEL]
+DEL]
+whichdb          Guess which db package to use to open a db file.
+xdrlib           Implements (a subset of) Sun XDR (eXternal Data
+                 Representation)
+xmllib           A parser for XML, using the derived class as static DTD.
+xml.dom          Classes for processing XML using the Document Object Model.
+xml.sax          Classes for processing XML using the SAX API.
+xmlrpclib        Support for remote procedure calls using XML.
+zipfile          Read & write PK zipped files.
+[DEL:zmod:DEL]   [DEL:Demonstration of abstruse mathematical concepts.:DEL]
+
+
+
+* Built-ins *
+
+            sys                 Interpreter state vars and functions
+            __built-in__        Access to all built-in python identifiers
+            __main__            Scope of the interpreters main program, script or stdin
+            array               Obj efficiently representing arrays of basic values
+            math                Math functions of C standard
+            time                Time-related functions (also the newer datetime module)
+            marshal             Read and write some python values in binary format
+            struct              Convert between python values and C structs
+
+* Standard *
+
+            getopt              Parse cmd line args in sys.argv.  A la UNIX 'getopt'.
+            os                  A more portable interface to OS dependent functionality
+            re                  Functions useful for working with regular expressions
+            string              Useful string and characters functions and exceptions
+            random              Mersenne Twister pseudo-random number generator
+            thread              Low-level primitives for working with process threads
+            threading           idem, new recommanded interface.
+
+* Unix/Posix *
+
+            dbm                 Interface to Unix ndbm database library
+            grp                 Interface to Unix group database
+            posix               OS functionality standardized by C and POSIX standards
+            posixpath           POSIX pathname functions
+            pwd                 Access to the Unix password database
+            select              Access to Unix select multiplex file synchronization
+            socket              Access to BSD socket interface
+
+* Tk User-interface Toolkit *
+
+            tkinter             Main interface to Tk
+
+* Multimedia *
+
+            audioop             Useful operations on sound fragments
+            imageop             Useful operations on images
+            jpeg                Access to jpeg image compressor and decompressor
+            rgbimg              Access SGI imglib image files
+
+* Cryptographic Extensions *
+
+            md5         Interface to RSA's MD5 message digest algorithm
+            sha         Interface to the SHA message digest algorithm
+            HMAC        Keyed-Hashing for Message Authentication -- RFC 2104.
+
+* SGI IRIX * (4 & 5)
+
+            al          SGI audio facilities
+            AL          al constants
+            fl          Interface to FORMS library
+            FL          fl constants
+            flp Functions for form designer
+            fm          Access to font manager library
+            gl          Access to graphics library
+            GL          Constants for gl
+            DEVICE      More constants for gl
+            imgfile     Imglib image file interface
+
+* Suns *
+
+            sunaudiodev Access to sun audio interface
+
+
+Workspace exploration and idiom hints
+
+        dir(<module>)   list functions, variables in <module>
+        dir()           get object keys, defaults to local name space
+        if __name__ == '__main__': main()            invoke main if running as script
+        map(None, lst1, lst2, ...)                   merge lists
+        b = a[:]                                     create copy of seq structure
+        _                       in interactive mode, is last value printed
+
+
+
+
+
+
+
+Python Mode for Emacs
+
+(Not revised, possibly not up to date)
+Type C-c ? when in python-mode for extensive help.
+INDENTATION
+Primarily for entering new code:
+        TAB      indent line appropriately
+        LFD      insert newline, then indent
+        DEL      reduce indentation, or delete single character
+Primarily for reindenting existing code:
+        C-c :    guess py-indent-offset from file content; change locally
+        C-u C-c :        ditto, but change globally
+        C-c TAB  reindent region to match its context
+        C-c <    shift region left by py-indent-offset
+        C-c >    shift region right by py-indent-offset
+MARKING & MANIPULATING REGIONS OF CODE
+C-c C-b         mark block of lines
+M-C-h           mark smallest enclosing def
+C-u M-C-h       mark smallest enclosing class
+C-c #           comment out region of code
+C-u C-c #       uncomment region of code
+MOVING POINT
+C-c C-p         move to statement preceding point
+C-c C-n         move to statement following point
+C-c C-u         move up to start of current block
+M-C-a           move to start of def
+C-u M-C-a       move to start of class
+M-C-e           move to end of def
+C-u M-C-e       move to end of class
+EXECUTING PYTHON CODE
+C-c C-c sends the entire buffer to the Python interpreter
+C-c |   sends the current region
+C-c !   starts a Python interpreter window; this will be used by
+        subsequent C-c C-c or C-c | commands
+C-c C-w runs PyChecker
+
+VARIABLES
+py-indent-offset        indentation increment
+py-block-comment-prefix comment string used by py-comment-region
+py-python-command       shell command to invoke Python interpreter
+py-scroll-process-buffer        t means always scroll Python process buffer
+py-temp-directory       directory used for temp files (if needed)
+py-beep-if-tab-change   ring the bell if tab-width is changed
+
+
+The Python Debugger
+
+(Not revised, possibly not up to date, see 1.5.2 Library Ref section 9.1; in 1.5.2, you may also use debugger integrated in IDLE)
+
+Accessing
+
+import pdb      (it's a module written in Python)
+        -- defines functions :
+           run(statement[,globals[, locals]])
+                        -- execute statement string under debugger control, with optional
+                           global & local environment.
+           runeval(expression[,globals[, locals]])
+                        -- same as run, but evaluate expression and return value.
+           runcall(function[, argument, ...])
+                        -- run function object with given arg(s)
+           pm()         -- run postmortem on last exception (like debugging a core file)
+           post_mortem(t)
+                        -- run postmortem on traceback object <t>
+
+        -- defines class Pdb :
+           use Pdb to create reusable debugger objects. Object
+           preserves state (i.e. break points) between calls.
+
+        runs until a breakpoint hit, exception, or end of program
+        If exception, variable '__exception__' holds (exception,value).
+
+Commands
+
+h, help
+        brief reminder of commands
+b, break [<arg>]
+        if <arg> numeric, break at line <arg> in current file
+        if <arg> is function object, break on entry to fcn <arg>
+        if no arg, list breakpoints
+cl, clear [<arg>]
+        if <arg> numeric, clear breakpoint at <arg> in current file
+        if no arg, clear all breakpoints after confirmation
+w, where
+        print current call stack
+u, up
+        move up one stack frame (to top-level caller)
+d, down
+        move down one stack frame
+s, step
+        advance one line in the program, stepping into calls
+n, next
+        advance one line, stepping over calls
+r, return
+        continue execution until current function returns
+        (return value is saved in variable "__return__", which
+        can be printed or manipulated from debugger)
+c, continue
+        continue until next breakpoint
+j, jump lineno
+        Set the next line that will be executed
+a, args
+        print args to current function
+rv, retval
+        prints return value from last function that returned
+p, print <arg>
+        prints value of <arg> in current stack frame
+l, list [<first> [, <last>]]
+               List source code for the current file.
+               Without arguments, list 11 lines around the current line
+               or continue the previous listing.
+               With one argument, list 11 lines starting at that line.
+               With two arguments, list the given range;
+               if the second argument is less than the first, it is a count.
+whatis <arg>
+        prints type of <arg>
+!
+        executes rest of line as a Python statement in the current stack frame
+q quit
+        immediately stop execution and leave debugger
+<return>
+        executes last command again
+Any input debugger doesn't recognize as a command is assumed to be a
+Python statement to execute in the current stack frame, the same way
+the exclamation mark ("!") command does.
+
+Example
+
+(1394) python
+Python 1.0.3 (Sep 26 1994)
+Copyright 1991-1994 Stichting Mathematisch Centrum, Amsterdam
+>>> import rm
+>>> rm.run()
+Traceback (innermost last):
+         File "<stdin>", line 1
+         File "./rm.py", line 7
+           x = div(3)
+         File "./rm.py", line 2
+           return a / r
+ZeroDivisionError: integer division or modulo
+>>> import pdb
+>>> pdb.pm()
+> ./rm.py(2)div: return a / r
+(Pdb) list
+         1     def div(a):
+         2  ->     return a / r
+         3
+         4     def run():
+         5         global r
+         6         r = 0
+         7         x = div(3)
+         8         print x
+[EOF]
+(Pdb) print r
+0
+(Pdb) q
+>>> pdb.runcall(rm.run)
+etc.
+
+Quirks
+
+Breakpoints are stored as filename, line number tuples. If a module is reloaded
+after editing, any remembered breakpoints are likely to be wrong.
+
+Always single-steps through top-most stack frame. That is, "c" acts like "n".