Add better error reporting for MemoryErrors caused by str->float conversions.
[python.git] / Misc / cheatsheet
blob98e3399ff9d0352e71c4a5f420d9c65f1df4cab9
1                           Python 2.3 Quick Reference
4  25 Jan 2003  upgraded by Raymond Hettinger for Python 2.3
5  16 May 2001  upgraded by Richard Gruet and Simon Brunning for Python 2.0
6  2000/07/18  upgraded by Richard Gruet, rgruet@intraware.com for Python 1.5.2
7 from V1.3 ref
8 1995/10/30, by Chris Hoffmann, choffman@vicorp.com
10 Based on:
11     Python Bestiary, Author: Ken Manheimer, ken.manheimer@nist.gov
12     Python manuals, Authors: Guido van Rossum and Fred Drake
13     What's new in Python 2.0, Authors: A.M. Kuchling and Moshe Zadka
14     python-mode.el, Author: Tim Peters, tim_one@email.msn.com
16     and the readers of comp.lang.python
18 Python's nest: http://www.python.org     Developement: http://
19 python.sourceforge.net/    ActivePython : http://www.ActiveState.com/ASPN/
20 Python/
21 newsgroup: comp.lang.python  Help desk: help@python.org
22 Resources: http://starship.python.net/
23            http://www.vex.net/parnassus/
24            http://aspn.activestate.com/ASPN/Cookbook/Python
25 FAQ:       http://www.python.org/cgi-bin/faqw.py
26 Full documentation: http://www.python.org/doc/
27 Excellent reference books:
28            Python Essential Reference by David Beazley (New Riders)
29            Python Pocket Reference by Mark Lutz (O'Reilly)
32 Invocation Options
34 python [-diOStuUvxX?] [-c command | script | - ] [args]
36                               Invocation Options
37 Option                                  Effect
38 -c cmd  program passed in as string (terminates option list)
39 -d      Outputs parser debugging information (also PYTHONDEBUG=x)
40 -E      ignore environment variables (such as PYTHONPATH)
41 -h      print this help message and exit
42 -i      Inspect interactively after running script (also PYTHONINSPECT=x) and
43         force prompts, even if stdin appears not to be a terminal
44 -m mod  run library module as a script (terminates option list
45 -O      optimize generated bytecode (a tad; also PYTHONOPTIMIZE=x)
46 -OO     remove doc-strings in addition to the -O optimizations
47 -Q arg  division options: -Qold (default), -Qwarn, -Qwarnall, -Qnew
48 -S      Don't perform 'import site' on initialization
49 -t      Issue warnings about inconsistent tab usage (-tt: issue errors)
50 -u      Unbuffered binary stdout and stderr (also PYTHONUNBUFFERED=x).
51 -v      Verbose (trace import statements) (also PYTHONVERBOSE=x)
52 -W arg : warning control (arg is action:message:category:module:lineno)
53 -x      Skip first line of source, allowing use of non-unix Forms of #!cmd
54 -?      Help!
55 -3      warn about Python 3.x incompatibilities
56 -c      Specify the command to execute (see next section). This terminates the
57 command option list (following options are passed as arguments to the command).
58         the name of a python file (.py) to execute read from stdin.
59 script  Anything afterward is passed as options to python script or command,
60         not interpreted as an option to interpreter itself.
61 args    passed to script or command (in sys.argv[1:])
62         If no script or command, Python enters interactive mode.
64   * Available IDEs in std distrib: IDLE (tkinter based, portable), Pythonwin
65     (Windows).
69 Environment variables
71                              Environment variables
72     Variable                                 Effect
73 PYTHONHOME       Alternate prefix directory (or prefix;exec_prefix). The
74                  default module search path uses prefix/lib
75                  Augments the default search path for module files. The format
76                  is the same as the shell's $PATH: one or more directory
77                  pathnames separated by ':' or ';' without spaces around
78                  (semi-)colons!
79 PYTHONPATH       On Windows first search for Registry key HKEY_LOCAL_MACHINE\
80                  Software\Python\PythonCore\x.y\PythonPath (default value). You
81                  may also define a key named after your application with a
82                  default string value giving the root directory path of your
83                  app.
84                  If this is the name of a readable file, the Python commands in
85 PYTHONSTARTUP    that file are executed before the first prompt is displayed in
86                  interactive mode (no default).
87 PYTHONDEBUG      If non-empty, same as -d option
88 PYTHONINSPECT    If non-empty, same as -i option
89 PYTHONSUPPRESS   If non-empty, same as -s option
90 PYTHONUNBUFFERED If non-empty, same as -u option
91 PYTHONVERBOSE    If non-empty, same as -v option
92 PYTHONCASEOK     If non-empty, ignore case in file/module names (imports)
97 Notable lexical entities
99 Keywords
101     and       del       for       is        raise
102     assert    elif      from      lambda    return
103     break     else      global    not       try
104     class     except    if        or        while
105     continue  exec      import    pass      yield
106     def       finally   in        print
108   * (list of keywords in std module: keyword)
109   * Illegitimate Tokens (only valid in strings): @ $ ?
110   * A statement must all be on a single line. To break a statement over
111     multiple lines use "\", as with the C preprocessor.
112     Exception: can always break when inside any (), [], or {} pair, or in
113     triple-quoted strings.
114   * More than one statement can appear on a line if they are separated with
115     semicolons (";").
116   * Comments start with "#" and continue to end of line.
118 Identifiers
120         (letter | "_")  (letter | digit | "_")*
122   * Python identifiers keywords, attributes, etc. are case-sensitive.
123   * Special forms: _ident (not imported by 'from module import *'); __ident__
124     (system defined name);
125                __ident (class-private name mangling)
127 Strings
129     "a string enclosed by double quotes"
130     'another string delimited by single quotes and with a " inside'
131     '''a string containing embedded newlines and quote (') marks, can be
132     delimited with triple quotes.'''
133     """ may also use 3- double quotes as delimiters """
134     u'a unicode string'   U"Another unicode string"
135     r'a raw string where \ are kept (literalized): handy for regular
136     expressions and windows paths!'
137     R"another raw string"    -- raw strings cannot end with a \
138     ur'a unicode raw string'   UR"another raw unicode"
140         Use \ at end of line to continue a string on next line.
141         adjacent strings are concatened, e.g. 'Monty' ' Python' is the same as
142         'Monty Python'.
143         u'hello' + ' world'  --> u'hello world'   (coerced to unicode)
145     String Literal Escapes
147      \newline  Ignored (escape newline)
148      \\ Backslash (\)        \e Escape (ESC)        \v Vertical Tab (VT)
149      \' Single quote (')     \f Formfeed (FF)       \OOO char with octal value OOO
150      \" Double quote (")     \n Linefeed (LF)
151      \a Bell (BEL)           \r Carriage Return (CR) \xHH  char with hex value HH
152      \b Backspace (BS)       \t Horizontal Tab (TAB)
153      \uHHHH  unicode char with hex value HHHH, can only be used in unicode string
154      \UHHHHHHHH  unicode char with hex value HHHHHHHH, can only be used in unicode string
155      \AnyOtherChar is left as-is
157   * NUL byte (\000) is NOT an end-of-string marker; NULs may be embedded in
158     strings.
159   * Strings (and tuples) are immutable: they cannot be modified.
161 Numbers
163     Decimal integer: 1234, 1234567890546378940L        (or l)
164     Octal integer: 0177, 0177777777777777777 (begin with a 0)
165     Hex integer: 0xFF, 0XFFFFffffFFFFFFFFFF (begin with 0x or 0X)
166     Long integer (unlimited precision): 1234567890123456
167     Float (double precision): 3.14e-10, .001, 10., 1E3
168     Complex: 1J, 2+3J, 4+5j (ends with J or j, + separates (float) real and
169     imaginary parts)
171 Sequences
173   * String of length 0, 1, 2 (see above)
174     '', '1', "12", 'hello\n'
175   * Tuple of length 0, 1, 2, etc:
176     () (1,) (1,2)     # parentheses are optional if len > 0
177   * List of length 0, 1, 2, etc:
178     [] [1] [1,2]
180 Indexing is 0-based. Negative indices (usually) mean count backwards from end
181 of sequence.
183 Sequence slicing [starting-at-index : but-less-than-index]. Start defaults to
184 '0'; End defaults to 'sequence-length'.
186 a = (0,1,2,3,4,5,6,7)
187     a[3] ==> 3
188     a[-1] ==> 7
189     a[2:4] ==> (2, 3)
190     a[1:] ==> (1, 2, 3, 4, 5, 6, 7)
191     a[:3] ==> (0, 1, 2)
192     a[:] ==> (0,1,2,3,4,5,6,7)  # makes a copy of the sequence.
194 Dictionaries (Mappings)
196     {}                              # Zero length empty dictionary
197     {1 : 'first'}                   # Dictionary with one (key, value) pair
198     {1 : 'first',  'next': 'second'}
199     dict([('one',1),('two',2)])     # Construct a dict from an item list
200     dict('one'=1, 'two'=2)          # Construct a dict using keyword args
201     dict.fromkeys(['one', 'keys'])  # Construct a dict from a sequence
203 Operators and their evaluation order
205                      Operators and their evaluation order
206 Highest             Operator                             Comment
207         (...) [...] {...} `...`           Tuple, list & dict. creation; string
208                                           conv.
209         s[i]  s[i:j]  s.attr f(...)       indexing & slicing; attributes, fct
210                                           calls
211         +x, -x, ~x                        Unary operators
212         x**y                              Power
213         x*y  x/y  x%y x//y                mult, division, modulo, floor division
214         x+y  x-y                          addition, subtraction
215         x<<y   x>>y                       Bit shifting
216         x&y                               Bitwise and
217         x^y                               Bitwise exclusive or
218         x|y                               Bitwise or
219         x<y  x<=y  x>y  x>=y  x==y x!=y   Comparison,
220         x<>y                              identity,
221         x is y   x is not y               membership
222         x in s   x not in s
223         not x                             boolean negation
224         x and y                           boolean and
225         x or y                            boolean or
226 Lowest  lambda args: expr                 anonymous function
228 Alternate names are defined in module operator (e.g. __add__ and add for +)
229 Most operators are overridable.
231 Many binary operators also support augmented assignment:
232         x += 1                            # Same as x = x + 1
235 Basic Types and Their Operations
237 Comparisons (defined between *any* types)
239                Comparisons
240 Comparison         Meaning          Notes
241 <          strictly less than        (1)
242 <=         less than or equal to
243 >          strictly greater than
244 >=         greater than or equal to
245 ==         equal to
246 != or <>   not equal to
247 is         object identity           (2)
248 is not     negated object identity   (2)
250 Notes :
251     Comparison behavior can be overridden for a given class by defining special
252 method __cmp__.
253     The above comparisons return True or False which are of type bool
254 (a subclass of int) and behave exactly as 1 or 0 except for their type and
255 that they print as True or False instead of 1 or 0.
256     (1) X < Y < Z < W has expected meaning, unlike C
257     (2) Compare object identities (i.e. id(object)), not object values.
259 Boolean values and operators
261                          Boolean values and operators
262               Value or Operator                         Returns           Notes
263 None, numeric zeros, empty sequences and      False
264 mappings
265 all other values                              True
266 not x                                         True if x is False, else
267                                               True
268 x or y                                        if x is False then y, else   (1)
269                                               x
270 x and y                                       if x is False then x, else   (1)
271                                               y
273 Notes :
274     Truth testing behavior can be overridden for a given class by defining
275 special method __nonzero__.
276     (1) Evaluate second arg only if necessary to determine outcome.
278 None
280     None is used as default return value on functions. Built-in single object
281     with type NoneType.
282     Input that evaluates to None does not print when running Python
283     interactively.
285 Numeric types
287 Floats, integers and long integers.
289     Floats are implemented with C doubles.
290     Integers are implemented with C longs.
291     Long integers have unlimited size (only limit is system resources)
293 Operators on all numeric types
295            Operators on all numeric types
296  Operation                    Result
297 abs(x)       the absolute value of x
298 int(x)       x converted to integer
299 long(x)      x converted to long integer
300 float(x)     x converted to floating point
301 -x           x negated
302 +x           x unchanged
303 x + y        the sum of x and y
304 x - y        difference of x and y
305 x * y        product of x and y
306 x / y        quotient of x and y
307 x % y        remainder of x / y
308 divmod(x, y) the tuple (x/y, x%y)
309 x ** y       x to the power y (the same as pow(x, y))
311 Bit operators on integers and long integers
313               Bit operators
314 Operation             >Result
315 ~x        the bits of x inverted
316 x ^ y     bitwise exclusive or of x and y
317 x & y     bitwise and of x and y
318 x | y     bitwise or of x and y
319 x << n    x shifted left by n bits
320 x >> n    x shifted right by n bits
322 Complex Numbers
324   * represented as a pair of machine-level double precision floating point
325     numbers.
326   * The real and imaginary value of a complex number z can be retrieved through
327     the attributes z.real and z.imag.
329 Numeric exceptions
331 TypeError
332     raised on application of arithmetic operation to non-number
333 OverflowError
334      numeric bounds exceeded
335 ZeroDivisionError
336      raised when zero second argument of div or modulo op
337 FloatingPointError
338      raised when a floating point operation fails
340 Operations on all sequence types (lists, tuples, strings)
342                 Operations on all sequence types
343 Operation                     Result                     Notes
344 x in s     True if an item of s is equal to x, else False
345 x not in s False if an item of s is equal to x, else True
346 for x in s: loops over the sequence
347 s + t      the concatenation of s and t
348 s * n, n*s n copies of s concatenated
349 s[i]       i'th item of s, origin 0                       (1)
350 s[i:j]     slice of s from i (included) to j (excluded) (1), (2)
351 len(s)     length of s
352 min(s)     smallest item of s
353 max(s)     largest item of (s)
354 iter(s)    returns an iterator over s.  iterators define __iter__ and next()
356 Notes :
357     (1) if i or j is negative, the index is relative to the end of the string,
358 ie len(s)+ i or len(s)+j is
359          substituted. But note that -0 is still 0.
360     (2) The slice of s from i to j is defined as the sequence of items with
361 index k such that i <= k < j.
362           If i or j is greater than len(s), use len(s). If i is omitted, use
363 len(s). If i is greater than or
364           equal to j, the slice is empty.
366 Operations on mutable (=modifiable) sequences (lists)
368                  Operations on mutable sequences
369    Operation                      Result                   Notes
370 s[i] =x          item i of s is replaced by x
371 s[i:j] = t       slice of s from i to j is replaced by t
372 del s[i:j]       same as s[i:j] = []
373 s.append(x)      same as s[len(s) : len(s)] = [x]
374 s.count(x)       return number of i's for which s[i] == x
375 s.extend(x)      same as s[len(s):len(s)]= x
376 s.index(x)       return smallest i such that s[i] == x      (1)
377 s.insert(i, x)   same as s[i:i] = [x] if i >= 0
378 s.pop([i])       same as x = s[i]; del s[i]; return x       (4)
379 s.remove(x)      same as del s[s.index(x)]                  (1)
380 s.reverse()      reverse the items of s in place            (3)
381 s.sort([cmpFct]) sort the items of s in place             (2), (3)
383 Notes :
384     (1) raise a ValueError exception when x is not found in s (i.e. out of
385 range).
386      (2) The sort() method takes an optional argument specifying a comparison
387 fct of 2 arguments (list items) which should
388           return -1, 0, or 1 depending on whether the 1st argument is
389 considered smaller than, equal to, or larger than the 2nd
390           argument. Note that this slows the sorting process down considerably.
391      (3) The sort() and reverse() methods modify the list in place for economy
392 of space when sorting or reversing a large list.
393            They don't return the sorted or reversed list to remind you of this
394 side effect.
395      (4) [New 1.5.2] The optional  argument i defaults to -1, so that by default the last
396 item is removed and returned.
400 Operations on mappings (dictionaries)
402                          Operations on mappings
403         Operation                          Result                  Notes
404 len(d)                     the number of items in d
405 d[k]                       the item of d with key k                 (1)
406 d[k] = x                   set d[k] to x
407 del d[k]                   remove d[k] from d                       (1)
408 d.clear()                  remove all items from d
409 d.copy()                   a shallow copy of d
410 d.get(k,defaultval)        the item of d with key k                 (4)
411 d.has_key(k)               True if d has key k, else False
412 d.items()                  a copy of d's list of (key, item) pairs  (2)
413 d.iteritems()              an iterator over (key, value) pairs      (7)
414 d.iterkeys()               an iterator over the keys of d           (7)
415 d.itervalues()             an iterator over the values of d         (7)
416 d.keys()                   a copy of d's list of keys               (2)
417 d1.update(d2)              for k, v in d2.items(): d1[k] = v        (3)
418 d.values()                 a copy of d's list of values             (2)
419 d.pop(k)                   remove d[k] and return its value
420 d.popitem()                remove and return an arbitrary           (6)
421                            (key, item) pair
422 d.setdefault(k,defaultval) the item of d with key k                 (5)
424     Notes :
425       TypeError is raised if key is not acceptable
426       (1) KeyError is raised if key k is not in the map
427       (2) Keys and values are listed in random order
428       (3) d2 must be of the same type as d1
429       (4) Never raises an exception if k is not in the map, instead it returns
430     defaultVal.
431           defaultVal is optional, when not provided and k is not in the map,
432     None is returned.
433       (5) Never raises an exception if k is not in the map, instead it returns
434     defaultVal, and adds k to map with value defaultVal. defaultVal is
435     optional. When not provided and k is not in the map, None is returned and
436     added to map.
437       (6) Raises a KeyError if the dictionary is emtpy.
438       (7) While iterating over a dictionary, the values may be updated but
439           the keys cannot be changed.
441 Operations on strings
443 Note that these string methods largely (but not completely) supersede the
444 functions available in the string module.
447                              Operations on strings
448     Operation                             Result                          Notes
449 s.capitalize()    return a copy of s with only its first character
450                   capitalized.
451 s.center(width)   return a copy of s centered in a string of length width  (1)
452                   .
453 s.count(sub[      return the number of occurrences of substring sub in     (2)
454 ,start[,end]])    string s.
455 s.decode(([       return a decoded version of s.                           (3)
456   encoding
457   [,errors]])
458 s.encode([        return an encoded version of s. Default encoding is the
459   encoding        current default string encoding.                         (3)
460   [,errors]])
461 s.endswith(suffix return true if s ends with the specified suffix,         (2)
462   [,start[,end]]) otherwise return False.
463 s.expandtabs([    return a copy of s where all tab characters are          (4)
464 tabsize])         expanded using spaces.
465 s.find(sub[,start return the lowest index in s where substring sub is      (2)
466 [,end]])          found. Return -1 if sub is not found.
467 s.index(sub[      like find(), but raise ValueError when the substring is  (2)
468 ,start[,end]])    not found.
469 s.isalnum()       return True if all characters in s are alphanumeric,     (5)
470                   False otherwise.
471 s.isalpha()       return True if all characters in s are alphabetic,       (5)
472                   False otherwise.
473 s.isdigit()       return True if all characters in s are digit             (5)
474                   characters, False otherwise.
475 s.islower()       return True if all characters in s are lowercase, False  (6)
476                   otherwise.
477 s.isspace()       return True if all characters in s are whitespace        (5)
478                   characters, False otherwise.
479 s.istitle()       return True if string s is a titlecased string, False    (7)
480                   otherwise.
481 s.isupper()       return True if all characters in s are uppercase, False  (6)
482                   otherwise.
483 s.join(seq)       return a concatenation of the strings in the sequence
484                   seq, separated by 's's.
485 s.ljust(width)    return s left justified in a string of length width.    (1),
486                                                                            (8)
487 s.lower()         return a copy of s converted to lowercase.
488 s.lstrip()        return a copy of s with leading whitespace removed.
489 s.replace(old,    return a copy of s with all occurrences of substring     (9)
490 new[, maxsplit])  old replaced by new.
491 s.rfind(sub[      return the highest index in s where substring sub is     (2)
492 ,start[,end]])    found. Return -1 if sub is not found.
493 s.rindex(sub[     like rfind(), but raise ValueError when the substring    (2)
494 ,start[,end]])    is not found.
495 s.rjust(width)    return s right justified in a string of length width.   (1),
496                                                                            (8)
497 s.rstrip()        return a copy of s with trailing whitespace removed.
498 s.split([sep[     return a list of the words in s, using sep as the       (10)
499 ,maxsplit]])      delimiter string.
500 s.splitlines([    return a list of the lines in s, breaking at line       (11)
501 keepends])        boundaries.
502 s.startswith      return true if s starts with the specified prefix,
503 (prefix[,start[   otherwise return false.                                  (2)
504 ,end]])
505 s.strip()         return a copy of s with leading and trailing whitespace
506                   removed.
507 s.swapcase()      return a copy of s with uppercase characters converted
508                   to lowercase and vice versa.
509                   return a titlecased copy of s, i.e. words start with
510 s.title()         uppercase characters, all remaining cased characters
511                   are lowercase.
512 s.translate(table return a copy of s mapped through translation table     (12)
513 [,deletechars])   table.
514 s.upper()         return a copy of s converted to uppercase.
515 s.zfill(width)    return a string padded with zeroes on the left side and
516                   sliding a minus sign left if necessary.  never truncates.
518 Notes :
519     (1) Padding is done using spaces.
520     (2) If optional argument start is supplied, substring s[start:] is
521 processed. If optional arguments start and end are supplied, substring s[start:
522 end] is processed.
523     (3) Optional argument errors may be given to set a different error handling
524 scheme. The default for errors is 'strict', meaning that encoding errors raise
525 a ValueError. Other possible values are 'ignore' and 'replace'.
526     (4) If optional argument tabsize is not given, a tab size of 8 characters
527 is assumed.
528     (5) Returns false if string s does not contain at least one character.
529     (6) Returns false if string s does not contain at least one cased
530 character.
531     (7) A titlecased string is a string in which uppercase characters may only
532 follow uncased characters and lowercase characters only cased ones.
533     (8) s is returned if width is less than len(s).
534     (9) If the optional argument maxsplit is given, only the first maxsplit
535 occurrences are replaced.
536     (10) If sep is not specified or None, any whitespace string is a separator.
537 If maxsplit is given, at most maxsplit splits are done.
538     (11) Line breaks are not included in the resulting list unless keepends is
539 given and true.
540     (12) table must be a string of length 256. All characters occurring in the
541 optional argument deletechars are removed prior to translation.
543 String formatting with the % operator
545 formatString % args--> evaluates to a string
547   * formatString uses C printf format codes : %, c, s, i, d, u, o, x, X, e, E,
548     f, g, G, r (details below).
549   * Width and precision may be a * to specify that an integer argument gives
550     the actual width or precision.
551   * The flag characters -, +, blank, # and 0 are understood. (details below)
552   * %s will convert any type argument to string (uses str() function)
553   * args may be a single arg or a tuple of args
555         '%s has %03d quote types.' % ('Python', 2)  # => 'Python has 002 quote types.'
557   * Right-hand-side can also be a mapping:
559         a = '%(lang)s has %(c)03d quote types.' % {'c':2, 'lang':'Python}
560 (vars() function very handy to use on right-hand-side.)
562                                  Format codes
563 Conversion                               Meaning
564 d          Signed integer decimal.
565 i          Signed integer decimal.
566 o          Unsigned octal.
567 u          Unsigned decimal.
568 x          Unsigned hexadecimal (lowercase).
569 X          Unsigned hexadecimal (uppercase).
570 e          Floating point exponential format (lowercase).
571 E          Floating point exponential format (uppercase).
572 f          Floating point decimal format.
573 F          Floating point decimal format.
574 g          Same as "e" if exponent is greater than -4 or less than precision,
575            "f" otherwise.
576 G          Same as "E" if exponent is greater than -4 or less than precision,
577            "F" otherwise.
578 c          Single character (accepts integer or single character string).
579 r          String (converts any python object using repr()).
580 s          String (converts any python object using str()).
581 %          No argument is converted, results in a "%" character in the result.
582            (The complete specification is %%.)
584                           Conversion flag characters
585 Flag                                  Meaning
586 #    The value conversion will use the ``alternate form''.
587 0    The conversion will be zero padded.
588 -    The converted value is left adjusted (overrides "-").
589      (a space) A blank should be left before a positive number (or empty
590      string) produced by a signed conversion.
591 +    A sign character ("+" or "-") will precede the conversion (overrides a
592      "space" flag).
594 File Objects
596 Created with built-in function open; may be created by other modules' functions
597 as well.
599 Operators on file objects
601                                 File operations
602     Operation                                Result
603 f.close()         Close file f.
604 f.fileno()        Get fileno (fd) for file f.
605 f.flush()         Flush file f's internal buffer.
606 f.isatty()        True if file f is connected to a tty-like dev, else False.
607 f.read([size])    Read at most size bytes from file f and return as a string
608                   object. If size omitted, read to EOF.
609 f.readline()      Read one entire line from file f.
610 f.readlines()     Read until EOF with readline() and return list of lines read.
611                   Set file f's position, like "stdio's fseek()".
612 f.seek(offset[,   whence == 0 then use absolute indexing.
613 whence=0])        whence == 1 then offset relative to current pos.
614                   whence == 2 then offset relative to file end.
615 f.tell()          Return file f's current position (byte offset).
616 f.write(str)      Write string to file f.
617 f.writelines(list Write list of strings to file f.
620 File Exceptions
622   EOFError
623      End-of-file hit when reading (may be raised many times, e.g. if f is a
624     tty).
625   IOError
626      Other I/O-related I/O operation failure.
627   OSError
628      OS system call failed.
631     Advanced Types
633     -See manuals for more details -
634       + Module objects
635       + Class objects
636       + Class instance objects
637       + Type objects (see module: types)
638       + File objects (see above)
639       + Slice objects
640       + XRange objects
641       + Callable types:
642           o User-defined (written in Python):
643               # User-defined Function objects
644               # User-defined Method objects
645           o Built-in (written in C):
646               # Built-in Function objects
647               # Built-in Method objects
648       + Internal Types:
649           o Code objects (byte-compile executable Python code: bytecode)
650           o Frame objects (execution frames)
651           o Traceback objects (stack trace of an exception)
654     Statements
656     pass            -- Null statement
657     del name[,name]* -- Unbind name(s) from object. Object will be indirectly
658                         (and automatically) deleted only if no longer referenced.
659     print [>> fileobject,] [s1 [, s2 ]* [,]
660                     -- Writes to sys.stdout, or to fileobject if supplied.
661                        Puts spaces between arguments. Puts newline at end
662                        unless statement ends with comma.
663                        Print is not required when running interactively,
664                        simply typing an expression will print its value,
665                        unless the value is None.
666     exec x [in globals [,locals]]
667                     -- Executes x in namespaces provided. Defaults
668                        to current namespaces. x can be a string, file
669                        object or a function object.
670     callable(value,... [id=value], [*args], [**kw])
671                     -- Call function callable with parameters. Parameters can
672                        be passed by name or be omitted if function
673                        defines default values. E.g. if callable is defined as
674                        "def callable(p1=1, p2=2)"
675                        "callable()"       <=>  "callable(1, 2)"
676                        "callable(10)"     <=>  "callable(10, 2)"
677                        "callable(p2=99)"  <=>  "callable(1, 99)"
678                        *args is a tuple of positional arguments.
679                        **kw is a dictionary of keyword arguments.
681     Assignment operators
683                               Caption
684     Operator                    Result                     Notes
685     a = b    Basic assignment - assign object b to label a  (1)
686     a += b   Roughly equivalent to a = a + b                (2)
687     a -= b   Roughly equivalent to a = a - b                (2)
688     a *= b   Roughly equivalent to a = a * b                (2)
689     a /= b   Roughly equivalent to a = a / b                (2)
690     a %= b   Roughly equivalent to a = a % b                (2)
691     a **= b  Roughly equivalent to a = a ** b               (2)
692     a &= b   Roughly equivalent to a = a & b                (2)
693     a |= b   Roughly equivalent to a = a | b                (2)
694     a ^= b   Roughly equivalent to a = a ^ b                (2)
695     a >>= b  Roughly equivalent to a = a >> b               (2)
696     a <<= b  Roughly equivalent to a = a << b               (2)
698     Notes :
699         (1) Can unpack tuples, lists, and strings.
700            first, second = a[0:2]; [f, s] = range(2); c1,c2,c3='abc'
701            Tip: x,y = y,x swaps x and y.
702         (2) Not exactly equivalent - a is evaluated only once. Also, where
703     possible, operation performed in-place - a is modified rather than
704     replaced.
706     Control Flow
708     if condition: suite
709     [elif condition: suite]*
710     [else: suite]   -- usual if/else_if/else statement
711     while condition: suite
712     [else: suite]
713                     -- usual while statement. "else" suite is executed
714                        after loop exits, unless the loop is exited with
715                        "break"
716     for element in sequence: suite
717     [else: suite]
718                     -- iterates over sequence, assigning each element to element.
719                        Use built-in range function to iterate a number of times.
720                        "else" suite executed at end unless loop exited
721                        with "break"
722     break           -- immediately exits "for" or "while" loop
723     continue        -- immediately does next iteration of "for" or "while" loop
724     return [result] -- Exits from function (or method) and returns result (use a tuple to
725                        return more than one value). If no result given, then returns None.
726     yield result    -- Freezes the execution frame of a generator and returns the result
727                        to the iterator's .next() method.  Upon the next call to next(),
728                        resumes execution at the frozen point with all of the local variables
729                        still intact.
731     Exception Statements
733     assert expr[, message]
734                     -- expr is evaluated. if false, raises exception AssertionError
735                        with message. Inhibited if __debug__ is 0.
736     try: suite1
737     [except [exception [, value]: suite2]+
738     [else: suite3]
739                     -- statements in suite1 are executed. If an exception occurs, look
740                        in "except" clauses for matching <exception>. If matches or bare
741                        "except" execute suite of that clause. If no exception happens
742                        suite in "else" clause is executed after suite1.
743                        If exception has a value, it is put in value.
744                        exception can also be tuple of exceptions, e.g.
745                        "except (KeyError, NameError), val: print val"
746     try: suite1
747     finally: suite2
748                     -- statements in suite1 are executed. If no
749                        exception, execute suite2 (even if suite1 is
750                        exited with a "return", "break" or "continue"
751                        statement). If exception did occur, executes
752                        suite2 and then immediately reraises exception.
753     raise exception [,value [, traceback]]
754                     -- raises exception with optional value
755                        value. Arg traceback specifies a traceback object to
756                        use when printing the exception's backtrace.
757     raise           -- a raise statement without arguments re-raises
758                        the last exception raised in the current function
759 An exception is either a string (object) or a class instance.
760   Can create a new one simply by creating a new string:
762               my_exception = 'You did something wrong'
763       try:
764                    if bad:
765               raise my_exception, bad
766       except my_exception, value:
767                     print 'Oops', value
769 Exception classes must be derived from the predefined class: Exception, e.g.:
770             class text_exception(Exception): pass
771             try:
772                 if bad:
773                     raise text_exception()
774                     # This is a shorthand for the form
775                     # "raise <class>, <instance>"
776              except Exception:
777                  print 'Oops'
778                  # This will be printed because
779                  # text_exception is a subclass of Exception
780 When an error message is printed for an unhandled exception which is a
781 class, the class name is printed, then a colon and a space, and
782 finally the instance converted to a string using the built-in function
783 str().
784 All built-in exception classes derives from StandardError, itself
785 derived from Exception.
787 Name Space Statements
789 [1.51: On Mac & Windows, the case of module file names must now match the case
790 as used
791   in the import statement]
792 Packages (>1.5): a package is a name space which maps to a directory including
793                 module(s) and the special initialization module '__init__.py'
794                 (possibly empty). Packages/dirs can be nested. You address a
795                 module's symbol via '[package.[package...]module.symbol's.
796 import module1 [as name1] [, module2]*
797                 -- imports modules. Members of module must be
798                    referred to by qualifying with [package.]module name:
799                    "import sys; print sys.argv:"
800                    "import package1.subpackage.module; package1.subpackage.module.foo()"
801                    module1 renamed as name1, if supplied.
802 from module import name1 [as othername1] [, name2]*
803                 -- imports names from module module in current namespace.
804                    "from sys import argv; print argv"
805                    "from package1 import module; module.foo()"
806                    "from package1.module import foo; foo()"
807                    name1 renamed as othername1, if supplied.
808 from module import *
809                 -- imports all names in module, except those starting with "_";
810                    *to be used sparsely, beware of name clashes* :
811                    "from sys import *; print argv"
812                    "from package.module import *; print x'
813                     NB: "from package import *" only imports the symbols defined
814                     in the package's __init__.py file, not those in the
815                     template modules!
816 global name1 [, name2]*
817                 -- names are from global scope (usually meaning from module)
818                    rather than local (usually meaning only in function).
819                 -- E.g. in fct without "global" statements, assuming
820                    "a" is name that hasn't been used in fct or module
821                    so far:
822                    -Try to read from "a" -> NameError
823                    -Try to write to "a" -> creates "a" local to fcn
824                    -If "a" not defined in fct, but is in module, then
825                        -Try to read from "a", gets value from module
826                        -Try to write to "a", creates "a" local to fct
827                    But note "a[0]=3" starts with search for "a",
828                    will use to global "a" if no local "a".
830 Function Definition
832 def func_id ([param_list]): suite
833                 -- Creates a function object & binds it to name func_id.
835     param_list ::= [id [, id]*]
836     id ::= value | id = value | *id | **id
837     [Args are passed by value.Thus only args representing a mutable object
838     can be modified (are inout parameters). Use a tuple to return more than
839     one value]
841 Example:
842         def test (p1, p2 = 1+1, *rest, **keywords):
843             -- Parameters with "=" have default value (v is
844                evaluated when function defined).
845                If list has "*id" then id is assigned a tuple of
846                all remaining args passed to function (like C vararg)
847                If list has "**id" then id is assigned a dictionary of
848                all extra arguments passed as keywords.
850 Class Definition
852 class <class_id> [(<super_class1> [,<super_class2>]*)]: <suite>
853         -- Creates a class object and assigns it name <class_id>
854            <suite> may contain local "defs" of class methods and
855            assignments to class attributes.
856 Example:
857        class my_class (class1, class_list[3]): ...
858                   Creates a class object inheriting from both "class1" and whatever
859                   class object "class_list[3]" evaluates to. Assigns new
860                   class object to name "my_class".
861         - First arg to class methods is always instance object, called 'self'
862           by convention.
863         - Special method __init__() is called when instance is created.
864         - Special method __del__() called when no more reference to object.
865         - Create instance by "calling" class object, possibly with arg
866           (thus instance=apply(aClassObject, args...) creates an instance!)
867         - In current implementation, can't subclass off built-in
868           classes. But can "wrap" them, see UserDict & UserList modules,
869           and see __getattr__() below.
870 Example:
871         class c (c_parent):
872            def __init__(self, name): self.name = name
873            def print_name(self): print "I'm", self.name
874            def call_parent(self): c_parent.print_name(self)
875            instance = c('tom')
876            print instance.name
877            'tom'
878            instance.print_name()
879            "I'm tom"
880         Call parent's super class by accessing parent's method
881         directly and passing "self" explicitly (see "call_parent"
882         in example above).
883         Many other special methods available for implementing
884         arithmetic operators, sequence, mapping indexing, etc.
886 Documentation Strings
888 Modules, classes and functions may be documented by placing a string literal by
889 itself as the first statement in the suite. The documentation can be retrieved
890 by getting the '__doc__' attribute from the module, class or function.
891 Example:
892         class C:
893             "A description of C"
894             def __init__(self):
895                 "A description of the constructor"
896                 # etc.
897 Then c.__doc__ == "A description of C".
898 Then c.__init__.__doc__ == "A description of the constructor".
900 Others
902 lambda [param_list]: returnedExpr
903                 -- Creates an anonymous function. returnedExpr must be
904                    an expression, not a statement (e.g., not "if xx:...",
905                    "print xxx", etc.) and thus can't contain newlines.
906                    Used mostly for filter(), map(), reduce() functions, and GUI callbacks..
907 List comprehensions
908 result = [expression for item1 in sequence1  [if condition1]
909                         [for item2 in sequence2 ... for itemN in sequenceN]
910                       ]
911 is equivalent to:
912 result = []
913 for item1 in sequence1:
914     for item2 in sequence2:
915     ...
916         for itemN in sequenceN:
917              if (condition1) and furthur conditions:
918                   result.append(expression)
922 Built-In Functions
924                               Built-In Functions
925      Function                                 Result
926 __import__(name[,   Imports module within the given context (see lib ref for
927 globals[, locals[,  more details)
928 fromlist]]])
929 abs(x)              Return the absolute value of number x.
930 apply(f, args[,     Calls func/method f with arguments args and optional
931 keywords])          keywords.
932 bool(x)             Returns True when the argument x is true and False otherwise.
933 buffer(obj)         Creates a buffer reference to an object.
934 callable(x)         Returns True if x callable, else False.
935 chr(i)              Returns one-character string whose ASCII code isinteger i
936 classmethod(f)      Converts a function f, into a method with the class as the
937                     first argument.  Useful for creating alternative constructors.
938 cmp(x,y)            Returns negative, 0, positive if x <, ==, > to y
939 coerce(x,y)         Returns a tuple of the two numeric arguments converted to a
940                     common type.
941                     Compiles string into a code object.filename is used in
942                     error message, can be any string. It isusually the file
943 compile(string,     from which the code was read, or eg. '<string>'if not read
944 filename, kind)     from file.kind can be 'eval' if string is a single stmt, or
945                     'single' which prints the output of expression statements
946                     thatevaluate to something else than None, or be 'exec'.
947 complex(real[,      Builds a complex object (can also be done using J or j
948 image])             suffix,e.g. 1+3J)
949 delattr(obj, name)  deletes attribute named name of object obj <=> del obj.name
950                     If no args, returns the list of names in current
951 dict([items])       Create a new dictionary from the specified item list.
952 dir([object])       localsymbol table. With a module, class or class
953                     instanceobject as arg, returns list of names in its attr.
954                     dict.
955 divmod(a,b)         Returns tuple of (a/b, a%b)
956 enumerate(seq)      Return a iterator giving:  (0, seq[0]), (1, seq[1]), ...
957 eval(s[, globals[,  Eval string s in (optional) globals, locals contexts.s must
958 locals]])           have no NUL's or newlines. s can also be acode object.
959                     Example: x = 1; incr_x = eval('x + 1')
960 execfile(file[,     Executes a file without creating a new module, unlike
961 globals[, locals]]) import.
962 file()              Synonym for open().
963 filter(function,    Constructs a list from those elements of sequence for which
964 sequence)           function returns true. function takes one parameter.
965 float(x)            Converts a number or a string to floating point.
966 getattr(object,     [<default> arg added in 1.5.2]Gets attribute called name
967 name[, default]))   from object,e.g. getattr(x, 'f') <=> x.f). If not found,
968                     raisesAttributeError or returns default if specified.
969 globals()           Returns a dictionary containing current global variables.
970 hasattr(object,     Returns true if object has attr called name.
971 name)
972 hash(object)        Returns the hash value of the object (if it has one)
973 help(f)             Display documentation on object f.
974 hex(x)              Converts a number x to a hexadecimal string.
975 id(object)          Returns a unique 'identity' integer for an object.
976 input([prompt])     Prints prompt if given. Reads input and evaluates it.
977                     Converts a number or a string to a plain integer. Optional
978 int(x[, base])      base paramenter specifies base from which to convert string
979                     values.
980 intern(aString)     Enters aString in the table of "interned strings"
981                     andreturns the string. Interned strings are 'immortals'.
982 isinstance(obj,     returns true if obj is an instance of class. Ifissubclass
983 class)              (A,B) then isinstance(x,A) => isinstance(x,B)
984 issubclass(class1,  returns true if class1 is derived from class2
985 class2)
986                     Returns the length (the number of items) of an object
987 iter(collection)    Returns an iterator over the collection.
988 len(obj)            (sequence, dictionary, or instance of class implementing
989                     __len__).
990 list(sequence)      Converts sequence into a list. If already a list,returns a
991                     copy of it.
992 locals()            Returns a dictionary containing current local variables.
993                     Converts a number or a string to a long integer. Optional
994 long(x[, base])     base paramenter specifies base from which to convert string
995                     values.
996                     Applies function to every item of list and returns a listof
997 map(function, list, the results. If additional arguments are passed,function
998 ...)                must take that many arguments and it is givento function on
999                     each call.
1000 max(seq)            Returns the largest item of the non-empty sequence seq.
1001 min(seq)            Returns the smallest item of a non-empty sequence seq.
1002 oct(x)              Converts a number to an octal string.
1003 open(filename [,    Returns a new file object. First two args are same asthose
1004 mode='r', [bufsize= for C's "stdio open" function. bufsize is 0for unbuffered,
1005 implementation      1 for line-buffered, negative forsys-default, all else, of
1006 dependent]])        (about) given size.
1007 ord(c)              Returns integer ASCII value of c (a string of len 1). Works
1008                     with Unicode char.
1009 object()            Create a base type.  Used as a superclass for new-style objects.
1010 open(name           Open a file.
1011   [, mode
1012   [, buffering]])
1013 pow(x, y [, z])     Returns x to power y [modulo z]. See also ** operator.
1014 property()          Created a property with access controlled by functions.
1015 range(start [,end   Returns list of ints from >= start and < end.With 1 arg,
1016 [, step]])          list from 0..arg-1With 2 args, list from start..end-1With 3
1017                     args, list from start up to end by step
1018 raw_input([prompt]) Prints prompt if given, then reads string from stdinput (no
1019                     trailing \n). See also input().
1020 reduce(f, list [,   Applies the binary function f to the items oflist so as to
1021 init])              reduce the list to a single value.If init given, it is
1022                     "prepended" to list.
1023                     Re-parses and re-initializes an already imported module.
1024                     Useful in interactive mode, if you want to reload amodule
1025 reload(module)      after fixing it. If module was syntacticallycorrect but had
1026                     an error in initialization, mustimport it one more time
1027                     before calling reload().
1028                     Returns a string containing a printable and if possible
1029 repr(object)        evaluable representation of an object. <=> `object`
1030                     (usingbackquotes). Class redefinissable (__repr__). See
1031                     also str()
1032 round(x, n=0)       Returns the floating point value x rounded to n digitsafter
1033                     the decimal point.
1034 setattr(object,     This is the counterpart of getattr().setattr(o, 'foobar',
1035 name, value)        3) <=> o.foobar = 3Creates attribute if it doesn't exist!
1036 slice([start,] stop Returns a slice object representing a range, with R/
1037 [, step])           Oattributes: start, stop, step.
1038                     Returns a string containing a nicely
1039 staticmethod()      Convert a function to method with no self or class
1040                     argument.  Useful for methods associated with a class that
1041                     do not need access to an object's internal state.
1042 str(object)         printablerepresentation of an object. Class overridable
1043                     (__str__).See also repr().
1044 super(type)         Create an unbound super object.  Used to call cooperative
1045                     superclass methods.
1046 sum(sequence,       Add the values in the sequence and return the sum.
1047     [start])
1048 tuple(sequence)     Creates a tuple with same elements as sequence. If already
1049                     a tuple, return itself (not a copy).
1050                     Returns a type object [see module types] representing
1051                     thetype of obj. Example: import typesif type(x) ==
1052 type(obj)           types.StringType: print 'It is a string'NB: it is
1053                     recommanded to use the following form:if isinstance(x,
1054                     types.StringType): etc...
1055 unichr(code)        code.
1056 unicode(string[,    Creates a Unicode string from a 8-bit string, using
1057 encoding[, error    thegiven encoding name and error treatment ('strict',
1058 ]]])                'ignore',or 'replace'}.
1059                     Without arguments, returns a dictionary correspondingto the
1060                     current local symbol table. With a module,class or class
1061 vars([object])      instance object as argumentreturns a dictionary
1062                     corresponding to the object'ssymbol table. Useful with "%"
1063                     formatting operator.
1064 xrange(start [, end Like range(), but doesn't actually store entire listall at
1065 [, step]])          once. Good to use in "for" loops when there is abig range
1066                     and little memory.
1067 zip(seq1[, seq2,    Returns a list of tuples where each tuple contains the nth
1068 ...])               element of each of the argument sequences.
1073 Built-In Exceptions
1075 Exception>
1076          Root class for all exceptions
1077     SystemExit
1078          On 'sys.exit()'
1079     StopIteration
1080          Signal the end from iterator.next()
1081     StandardError
1082                  Base class for all built-in exceptions; derived from Exception
1083     root class.
1084         ArithmeticError
1085                  Base class for OverflowError, ZeroDivisionError,
1086     FloatingPointError
1087             FloatingPointError
1088                        When a floating point operation fails.
1089             OverflowError
1090                             On excessively large arithmetic operation
1091             ZeroDivisionError
1092                   On division or modulo operation with 0 as 2nd arg
1093             AssertionError
1094                 When an assert statement fails.
1095         AttributeError
1096                     On attribute reference or assignment failure
1097         EnvironmentError    [new in 1.5.2]
1098                 On error outside Python; error arg tuple is (errno, errMsg...)
1099             IOError    [changed in 1.5.2]
1100                I/O-related operation failure
1101             OSError    [new in 1.5.2]
1102                used by the os module's os.error exception.
1103         EOFError
1104                     Immediate end-of-file hit by input() or raw_input()
1105         ImportError
1106          On failure of `import' to find module or name
1107         KeyboardInterrupt
1108          On user entry of the interrupt key (often `Control-C')
1109         LookupError
1110                 base class for IndexError, KeyError
1111             IndexError
1112                  On out-of-range sequence subscript
1113             KeyError
1114                  On reference to a non-existent mapping (dict) key
1115         MemoryError
1116          On recoverable memory exhaustion
1117         NameError
1118          On failure to find a local or global (unqualified) name
1119         RuntimeError
1120          Obsolete catch-all; define a suitable error instead
1121           NotImplementedError   [new in 1.5.2]
1122                 On method not implemented
1123         SyntaxError
1124          On parser encountering a syntax error
1125        IndentationError
1126            On parser encountering an indentation syntax error
1127        TabError
1128            On parser encountering an indentation syntax error
1129         SystemError
1130          On non-fatal interpreter error - bug - report it
1131         TypeError
1132          On passing inappropriate type to built-in op or func
1133         ValueError
1134          On arg error not covered by TypeError or more precise
1135     Warning
1136               UserWarning
1137               DeprecationWarning
1138               PendingDeprecationWarning
1139               SyntaxWarning
1140               RuntimeWarning
1141               FutureWarning
1145 Standard methods & operators redefinition in classes
1147 Standard methods & operators map to special '__methods__' and thus may be
1148  redefined (mostly in user-defined classes), e.g.:
1149     class x:
1150          def __init__(self, v): self.value = v
1151          def __add__(self, r): return self.value + r
1152     a = x(3) # sort of like calling x.__init__(a, 3)
1153     a + 4    # is equivalent to a.__add__(4)
1155 Special methods for any class
1157 (s: self, o: other)
1158         __init__(s, args) instance initialization (on construction)
1159         __del__(s)        called on object demise (refcount becomes 0)
1160         __repr__(s)       repr() and `...` conversions
1161         __str__(s)        str() and 'print' statement
1162         __cmp__(s, o)     Compares s to o and returns <0, 0, or >0.
1163                           Implements >, <, == etc...
1164         __hash__(s)       Compute a 32 bit hash code; hash() and dictionary ops
1165         __nonzero__(s)    Returns False or True for truth value testing
1166         __getattr__(s, name)  called when attr lookup doesn't find <name>
1167         __setattr__(s, name, val) called when setting an attr
1168                                   (inside, don't use "self.name = value"
1169                                    use "self.__dict__[name] = val")
1170         __delattr__(s, name)  called to delete attr <name>
1171         __call__(self, *args) called when an instance is called as function.
1173 Operators
1175     See list in the operator module. Operator function names are provided with
1176     2 variants, with or without
1177     ading & trailing '__' (eg. __add__ or add).
1179     Numeric operations special methods
1180     (s: self, o: other)
1182         s+o       =  __add__(s,o)         s-o        =  __sub__(s,o)
1183         s*o       =  __mul__(s,o)         s/o        =  __div__(s,o)
1184         s%o       =  __mod__(s,o)         divmod(s,o) = __divmod__(s,o)
1185         s**o      =  __pow__(s,o)
1186         s&o       =  __and__(s,o)
1187         s^o       =  __xor__(s,o)         s|o        =  __or__(s,o)
1188         s<<o      =  __lshift__(s,o)      s>>o       =  __rshift__(s,o)
1189         nonzero(s) = __nonzero__(s) (used in boolean testing)
1190         -s        =  __neg__(s)           +s         =  __pos__(s)
1191         abs(s)    =  __abs__(s)           ~s         =  __invert__(s)  (bitwise)
1192         s+=o      =  __iadd__(s,o)        s-=o       =  __isub__(s,o)
1193         s*=o      =  __imul__(s,o)        s/=o       =  __idiv__(s,o)
1194         s%=o      =  __imod__(s,o)
1195         s**=o     =  __ipow__(s,o)
1196         s&=o      =  __iand__(s,o)
1197         s^=o      =  __ixor__(s,o)        s|=o       =  __ior__(s,o)
1198         s<<=o     =  __ilshift__(s,o)     s>>=o      =  __irshift__(s,o)
1199         Conversions
1200         int(s)    =  __int__(s)           long(s)    =  __long__(s)
1201         float(s)  =  __float__(s)         complex(s)    =  __complex__(s)
1202         oct(s)    =  __oct__(s)           hex(s)     =  __hex__(s)
1203         coerce(s,o) = __coerce__(s,o)
1204         Right-hand-side equivalents for all binary operators exist;
1205         are called when class instance is on r-h-s of operator:
1206         a + 3  calls __add__(a, 3)
1207         3 + a  calls __radd__(a, 3)
1209     All seqs and maps, general operations plus:
1210     (s: self, i: index or key)
1212         len(s)    = __len__(s)        length of object, >= 0.  Length 0 == false
1213         s[i]      = __getitem__(s,i)  Element at index/key i, origin 0
1215     Sequences, general methods, plus:
1216       s[i]=v           = __setitem__(s,i,v)
1217       del s[i]         = __delitem__(s,i)
1218       s[i:j]           = __getslice__(s,i,j)
1219       s[i:j]=seq       = __setslice__(s,i,j,seq)
1220       del s[i:j]       = __delslice__(s,i,j)   == s[i:j] = []
1221       seq * n          = __repeat__(seq, n)
1222       s1 + s2          = __concat__(s1, s2)
1223       i in s           = __contains__(s, i)
1224     Mappings, general methods, plus
1225       hash(s)          = __hash__(s) - hash value for dictionary references
1226       s[k]=v           = __setitem__(s,k,v)
1227       del s[k]         = __delitem__(s,k)
1229 Special informative state attributes for some types:
1231     Modules:
1232         __doc__ (string/None, R/O): doc string (<=> __dict__['__doc__'])
1233         __name__(string, R/O): module name (also in __dict__['__name__'])
1234         __dict__ (dict, R/O): module's name space
1235         __file__(string/undefined, R/O): pathname of .pyc, .pyo or .pyd (undef for
1236                  modules statically linked to the interpreter)
1238     Classes:    [in bold: writable since 1.5.2]
1239         __doc__ (string/None, R/W): doc string (<=> __dict__['__doc__'])
1240         __module__ is the module name in which the class was defined
1241         __name__(string, R/W): class name (also in __dict__['__name__'])
1242         __bases__ (tuple, R/W): parent classes
1243         __dict__ (dict, R/W): attributes (class name space)
1245     Instances:
1246         __class__ (class, R/W): instance's class
1247         __dict__ (dict, R/W): attributes
1249     User-defined functions: [bold: writable since 1.5.2]
1250         __doc__ (string/None, R/W): doc string
1251         __name__(string, R/O): function name
1252         func_doc (R/W): same as __doc__
1253         func_name (R/O): same as __name__
1254         func_defaults (tuple/None, R/W): default args values if any
1255         func_code (code, R/W): code object representing the compiled function body
1256         func_globals (dict, R/O): ref to dictionary of func global variables
1257         func_dict (dict, R/W):  same as __dict__ contains the namespace supporting
1258             arbitrary function attributes
1259         func_closure (R/O): None or a tuple of cells that contain bindings
1260             for the function's free variables.
1263     User-defined Methods:
1264         __doc__ (string/None, R/O): doc string
1265         __name__(string, R/O): method name (same as im_func.__name__)
1266         im_class (class, R/O): class defining the method (may be a base class)
1267         im_self (instance/None, R/O): target instance object (None if unbound)
1268         im_func (function, R/O): function object
1270     Built-in Functions & methods:
1271         __doc__ (string/None, R/O): doc string
1272         __name__ (string, R/O): function name
1273         __self__ : [methods only] target object
1275     Codes:
1276         co_name (string, R/O): function name
1277         co_argcount (int, R/0): number of positional args
1278         co_nlocals (int, R/O): number of local vars (including args)
1279         co_varnames (tuple, R/O): names of local vars (starting with args)
1280         co_cellvars (tuple, R/O)) the names of local variables referenced by
1281             nested functions
1282         co_freevars (tuple, R/O)) names of free variables
1283         co_code (string, R/O): sequence of bytecode instructions
1284         co_consts (tuple, R/O): litterals used by the bytecode, 1st one is
1285                                 fct doc (or None)
1286         co_names (tuple, R/O): names used by the bytecode
1287         co_filename (string, R/O): filename from which the code was compiled
1288         co_firstlineno (int, R/O): first line number of the function
1289         co_lnotab (string, R/O): string encoding bytecode offsets to line numbers.
1290         co_stacksize (int, R/O): required stack size (including local vars)
1291         co_flags (int, R/O): flags for the interpreter
1292                            bit 2 set if fct uses "*arg" syntax
1293                            bit 3 set if fct uses '**keywords' syntax
1294     Frames:
1295         f_back (frame/None, R/O): previous stack frame (toward the caller)
1296         f_code (code, R/O): code object being executed in this frame
1297         f_locals (dict, R/O): local vars
1298         f_globals (dict, R/O): global vars
1299         f_builtins (dict, R/O): built-in (intrinsic) names
1300         f_restricted (int, R/O): flag indicating whether fct is executed in
1301                                  restricted mode
1302         f_lineno (int, R/O): current line number
1303         f_lasti (int, R/O): precise instruction (index into bytecode)
1304         f_trace (function/None, R/W): debug hook called at start of each source line
1305         f_exc_type (Type/None, R/W): Most recent exception type
1306         f_exc_value (any, R/W): Most recent exception value
1307         f_exc_traceback (traceback/None, R/W): Most recent exception traceback
1308     Tracebacks:
1309         tb_next (frame/None, R/O): next level in stack trace (toward the frame where
1310                                   the exception occurred)
1311         tb_frame (frame, R/O): execution frame of the current level
1312         tb_lineno (int, R/O): line number where the exception occurred
1313         tb_lasti (int, R/O): precise instruction (index into bytecode)
1315     Slices:
1316         start (any/None, R/O): lowerbound
1317         stop (any/None, R/O): upperbound
1318         step (any/None, R/O): step value
1320     Complex numbers:
1321         real (float, R/O): real part
1322         imag (float, R/O): imaginary part
1325 Important Modules
1327                                       sys
1329                               Some sys variables
1330       Variable                                Content
1331 argv                 The list of command line arguments passed to aPython
1332                      script. sys.argv[0] is the script name.
1333 builtin_module_names A list of strings giving the names of all moduleswritten
1334                      in C that are linked into this interpreter.
1335 check_interval       How often to check for thread switches or signals(measured
1336                      in number of virtual machine instructions)
1337 exc_type, exc_value, Deprecated since release 1.5. Use exc_info() instead.
1338 exc_traceback
1339 exitfunc             User can set to a parameterless fcn. It will getcalled
1340                      before interpreter exits.
1341 last_type,           Set only when an exception not handled andinterpreter
1342 last_value,          prints an error. Used by debuggers.
1343 last_traceback
1344 maxint               maximum positive value for integers
1345 modules              Dictionary of modules that have already been loaded.
1346 path                 Search path for external modules. Can be modifiedby
1347                      program. sys.path[0] == dir of script executing
1348 platform             The current platform, e.g. "sunos5", "win32"
1349 ps1, ps2             prompts to use in interactive mode.
1350                      File objects used for I/O. One can redirect byassigning a
1351 stdin, stdout,       new file object to them (or any object:.with a method
1352 stderr               write(string) for stdout/stderr,.with a method readline()
1353                      for stdin)
1354 version              string containing version info about Python interpreter.
1355                      (and also: copyright, dllhandle, exec_prefix, prefix)
1356 version_info         tuple containing Python version info - (major, minor,
1357                      micro, level, serial).
1359                               Some sys functions
1360      Function                                 Result
1361 exit(n)            Exits with status n. Raises SystemExit exception.(Hence can
1362                    be caught and ignored by program)
1363 getrefcount(object Returns the reference count of the object. Generally one
1364 )                  higher than you might expect, because of object arg temp
1365                    reference.
1366 setcheckinterval(  Sets the interpreter's thread switching interval (in number
1367 interval)          of virtual code instructions, default:100).
1368 settrace(func)     Sets a trace function: called before each line ofcode is
1369                    exited.
1370 setprofile(func)   Sets a profile function for performance profiling.
1371                    Info on exception currently being handled; this is atuple
1372                    (exc_type, exc_value, exc_traceback).Warning: assigning the
1373 exc_info()         traceback return value to a local variable in a
1374                    function handling an exception will cause a circular
1375                    reference.
1376 setdefaultencoding Change default Unicode encoding - defaults to 7-bit ASCII.
1377 (encoding)
1378 getrecursionlimit  Retrieve maximum recursion depth.
1380 setrecursionlimit  Set maximum recursion depth. (Defaults to 1000.)
1385                                       os
1386 "synonym" for whatever O/S-specific module is proper for current environment.
1387 this module uses posix whenever possible.
1388 (see also M.A. Lemburg's utility http://www.lemburg.com/files/python/
1389 platform.py)
1391                                Some os variables
1392      Variable                                 Meaning
1393 name                name of O/S-specific module (e.g. "posix", "mac", "nt")
1394 path                O/S-specific module for path manipulations.
1395                     On Unix, os.path.split() <=> posixpath.split()
1396 curdir              string used to represent current directory ('.')
1397 pardir              string used to represent parent directory ('..')
1398 sep                 string used to separate directories ('/' or '\'). Tip: use
1399                     os.path.join() to build portable paths.
1400 altsep              Alternate sep
1401 if applicable (None
1402 otherwise)
1403 pathsep             character used to separate search path components (as in
1404                     $PATH), eg. ';' for windows.
1405 linesep             line separator as used in binary files, ie '\n' on Unix, '\
1406                     r\n' on Dos/Win, '\r'
1408                                Some os functions
1409      Function                                 Result
1410 makedirs(path[,     Recursive directory creation (create required intermediary
1411 mode=0777])         dirs); os.error if fails.
1412 removedirs(path)    Recursive directory delete (delete intermediary empty
1413                     dirs); if fails.
1414 renames(old, new)   Recursive directory or file renaming; os.error if fails.
1418                                      posix
1419 don't import this module directly, import os instead !
1420 (see also module: shutil for file copy & remove fcts)
1422                             posix Variables
1423 Variable                             Meaning
1424 environ  dictionary of environment variables, e.g.posix.environ['HOME'].
1425 error    exception raised on POSIX-related error.
1426          Corresponding value is tuple of errno code and perror() string.
1428                              Some posix functions
1429    Function                                 Result
1430 chdir(path)     Changes current directory to path.
1431 chmod(path,     Changes the mode of path to the numeric mode
1432 mode)
1433 close(fd)       Closes file descriptor fd opened with posix.open.
1434 _exit(n)        Immediate exit, with no cleanups, no SystemExit,etc. Should use
1435                 this to exit a child process.
1436 execv(p, args)  "Become" executable p with args args
1437 getcwd()        Returns a string representing the current working directory
1438 getpid()        Returns the current process id
1439 fork()          Like C's fork(). Returns 0 to child, child pid to parent.[Not
1440                 on Windows]
1441 kill(pid,       Like C's kill [Not on Windows]
1442 signal)
1443 listdir(path)   Lists (base)names of entries in directory path, excluding '.'
1444                 and '..'
1445 lseek(fd, pos,  Sets current position in file fd to position pos, expressedas
1446 how)            an offset relative to beginning of file (how=0), tocurrent
1447                 position (how=1), or to end of file (how=2)
1448 mkdir(path[,    Creates a directory named path with numeric mode (default 0777)
1449 mode])
1450 open(file,      Like C's open(). Returns file descriptor. Use file object
1451 flags, mode)    fctsrather than this low level ones.
1452 pipe()          Creates a pipe. Returns pair of file descriptors (r, w) [Not on
1453                 Windows].
1454 popen(command,  Opens a pipe to or from command. Result is a file object to
1455 mode='r',       read to orwrite from, as indicated by mode being 'r' or 'w'.
1456 bufSize=0)      Use it to catch acommand output ('r' mode) or to feed it ('w'
1457                 mode).
1458 remove(path)    See unlink.
1459 rename(src, dst Renames/moves the file or directory src to dst. [error iftarget
1460 )               name already exists]
1461 rmdir(path)     Removes the empty directory path
1462 read(fd, n)     Reads n bytes from file descriptor fd and return as string.
1463                 Returns st_mode, st_ino, st_dev, st_nlink, st_uid,st_gid,
1464 stat(path)      st_size, st_atime, st_mtime, st_ctime.[st_ino, st_uid, st_gid
1465                 are dummy on Windows]
1466 system(command) Executes string command in a subshell. Returns exitstatus of
1467                 subshell (usually 0 means OK).
1468                 Returns accumulated CPU times in sec (user, system, children's
1469 times()         user,children's sys, elapsed real time). [3 last not on
1470                 Windows]
1471 unlink(path)    Unlinks ("deletes") the file (not dir!) path. same as: remove
1472 utime(path, (   Sets the access & modified time of the file to the given tuple
1473 aTime, mTime))  of values.
1474 wait()          Waits for child process completion. Returns tuple ofpid,
1475                 exit_status [Not on Windows]
1476 waitpid(pid,    Waits for process pid to complete. Returns tuple ofpid,
1477 options)        exit_status [Not on Windows]
1478 write(fd, str)  Writes str to file fd. Returns nb of bytes written.
1482                                    posixpath
1483 Do not import this module directly, import os instead and refer to this module
1484 as os.path. (e.g. os.path.exists(p)) !
1486                            Some posixpath functions
1487  Function                                 Result
1488 abspath(p) Returns absolute path for path p, taking current working dir in
1489            account.
1490 dirname/
1491 basename(p directory and name parts of the path p. See also split.
1493 exists(p)  True if string p is an existing path (file or directory)
1494 expanduser Returns string that is (a copy of) p with "~" expansion done.
1496 expandvars Returns string that is (a copy of) p with environment vars expanded.
1497 (p)        [Windows: case significant; must use Unix: $var notation, not %var%]
1498 getsize(   return the size in bytes of filename. raise os.error.
1499 filename)
1500 getmtime(  return last modification time of filename (integer nb of seconds
1501 filename)  since epoch).
1502 getatime(  return last access time of filename (integer nb of seconds since
1503 filename)  epoch).
1504 isabs(p)   True if string p is an absolute path.
1505 isdir(p)   True if string p is a directory.
1506 islink(p)  True if string p is a symbolic link.
1507 ismount(p) True if string p is a mount point [true for all dirs on Windows].
1508 join(p[,q  Joins one or more path components intelligently.
1509 [,...]])
1510            Splits p into (head, tail) where tail is lastpathname component and
1511 split(p)   <head> is everything leadingup to that. <=> (dirname(p), basename
1512            (p))
1513 splitdrive Splits path p in a pair ('drive:', tail) [Windows]
1515 splitext(p Splits into (root, ext) where last comp of root contains no periods
1516 )          and ext is empty or startswith a period.
1517            Calls the function visit with arguments(arg, dirname, names) for
1518            each directory recursively inthe directory tree rooted at p
1519 walk(p,    (including p itself if it's a dir)The argument dirname specifies the
1520 visit, arg visited directory, the argumentnames lists the files in the
1521 )          directory. The visit function maymodify names to influence the set
1522            of directories visited belowdirname, e.g., to avoid visiting certain
1523            parts of the tree.
1527                                     shutil
1528 high-level file operations (copying, deleting).
1530                              Main shutil functions
1531      Function                                 Result
1532 copy(src, dst)     Copies the contents of file src to file dst, retaining file
1533                    permissions.
1534 copytree(src, dst  Recursively copies an entire directory tree rooted at src
1535 [, symlinks])      into dst (which should not already exist). If symlinks is
1536                    true, links insrc are kept as such in dst.
1537 rmtree(path[,      Deletes an entire directory tree, ignoring errors if
1538 ignore_errors[,    ignore_errors true,or calling onerror(func, path,
1539 onerror]])         sys.exc_info()) if supplied with
1541 (and also: copyfile, copymode, copystat, copy2)
1543 time
1545                                   Variables
1546 Variable                               Meaning
1547 altzone  signed offset of local DST timezone in sec west of the 0th meridian.
1548 daylight nonzero if a DST timezone is specified
1550                                    Functions
1551   Function                                 Result
1552 time()        return a float representing UTC time in seconds since the epoch.
1553 gmtime(secs), return a tuple representing time : (year aaaa, month(1-12),day
1554 localtime(    (1-31), hour(0-23), minute(0-59), second(0-59), weekday(0-6, 0 is
1555 secs)         monday), Julian day(1-366), daylight flag(-1,0 or 1))
1556 asctime(
1557 timeTuple),
1558 strftime(
1559 format,       return a formatted string representing time.
1560 timeTuple)
1561 mktime(tuple) inverse of localtime(). Return a float.
1562 strptime(     parse a formatted string representing time, return tuple as in
1563 string[,      gmtime().
1564 format])
1565 sleep(secs)   Suspend execution for <secs> seconds. <secs> can be a float.
1567 and also: clock, ctime.
1569                                     string
1571 As of Python 2.0, much (though not all) of the functionality provided by the
1572 string module have been superseded by built-in string methods - see Operations
1573 on strings for details.
1575                              Some string variables
1576               Variable                                Meaning
1577 digits                               The string '0123456789'
1578 hexdigits, octdigits                 legal hexadecimal & octal digits
1579 letters, uppercase, lowercase,       Strings containing the appropriate
1580 whitespace                           characters
1581 index_error                          Exception raised by index() if substr not
1582                                      found.
1584                              Some string functions
1585      Function                                 Result
1586 expandtabs(s,      returns a copy of string <s> with tabs expanded.
1587 tabSize)
1588 find/rfind(s, sub  Return the lowest/highest index in <s> where the substring
1589 [, start=0[, end=  <sub> is found such that <sub> is wholly contained ins
1590 0])                [start:end]. Return -1 if <sub> not found.
1591 ljust/rjust/center Return a copy of string <s> left/right justified/centerd in
1592 (s, width)         afield of given width, padded with spaces. <s> is
1593                    nevertruncated.
1594 lower/upper(s)     Return a string that is (a copy of) <s> in lowercase/
1595                    uppercase
1596 split(s[, sep=     Return a list containing the words of the string <s>,using
1597 whitespace[,       the string <sep> as a separator.
1598 maxsplit=0]])
1599 join(words[, sep=' Concatenate a list or tuple of words with
1600 '])                interveningseparators; inverse of split.
1601 replace(s, old,    Returns a copy of string <s> with all occurrences of
1602 new[, maxsplit=0]  substring<old> replaced by <new>. Limits to <maxsplit>
1603                    firstsubstitutions if specified.
1604 strip(s)           Return a string that is (a copy of) <s> without leadingand
1605                    trailing whitespace. see also lstrip, rstrip.
1609                                    re (sre)
1611 Handles Unicode strings. Implemented in new module sre, re now a mere front-end
1612 for compatibility.
1613 Patterns are specified as strings. Tip: Use raw strings (e.g. r'\w*') to
1614 litteralize backslashes.
1617                            Regular expression syntax
1618    Form                                Description
1619 .          matches any character (including newline if DOTALL flag specified)
1620 ^          matches start of the string (of every line in MULTILINE mode)
1621 $          matches end of the string (of every line in MULTILINE mode)
1622 *          0 or more of preceding regular expression (as many as possible)
1623 +          1 or more of preceding regular expression (as many as possible)
1624 ?          0 or 1 occurrence of preceding regular expression
1625 *?, +?, ?? Same as *, + and ? but matches as few characters as possible
1626 {m,n}      matches from m to n repetitions of preceding RE
1627 {m,n}?     idem, attempting to match as few repetitions as possible
1628 [ ]        defines character set: e.g. '[a-zA-Z]' to match all letters(see also
1629            \w \S)
1630 [^ ]       defines complemented character set: matches if char is NOT in set
1631            escapes special chars '*?+&$|()' and introduces special sequences
1632 \          (see below). Due to Python string rules, write as '\\' orr'\' in the
1633            pattern string.
1634 \\         matches a litteral '\'; due to Python string rules, write as '\\\\
1635            'in pattern string, or better using raw string: r'\\'.
1636 |          specifies alternative: 'foo|bar' matches 'foo' or 'bar'
1637 (...)      matches any RE inside (), and delimits a group.
1638 (?:...)    idem but doesn't delimit a group.
1639            matches if ... matches next, but doesn't consume any of the string
1640 (?=...)    e.g. 'Isaac (?=Asimov)' matches 'Isaac' only if followed by
1641            'Asimov'.
1642 (?!...)    matches if ... doesn't match next. Negative of (?=...)
1643 (?P<name   matches any RE inside (), and delimits a named group. (e.g. r'(?P
1644 >...)      <id>[a-zA-Z_]\w*)' defines a group named id)
1645 (?P=name)  matches whatever text was matched by the earlier group named name.
1646 (?#...)    A comment; ignored.
1647 (?letter)  letter is one of 'i','L', 'm', 's', 'x'. Set the corresponding flags
1648            (re.I, re.L, re.M, re.S, re.X) for the entire RE.
1650                                Special sequences
1651 Sequence                              Description
1652 number   matches content of the group of the same number; groups are numbered
1653          starting from 1
1654 \A       matches only at the start of the string
1655 \b       empty str at beg or end of word: '\bis\b' matches 'is', but not 'his'
1656 \B       empty str NOT at beginning or end of word
1657 \d       any decimal digit (<=> [0-9])
1658 \D       any non-decimal digit char (<=> [^O-9])
1659 \s       any whitespace char (<=> [ \t\n\r\f\v])
1660 \S       any non-whitespace char (<=> [^ \t\n\r\f\v])
1661 \w       any alphaNumeric char (depends on LOCALE flag)
1662 \W       any non-alphaNumeric char (depends on LOCALE flag)
1663 \Z       matches only at the end of the string
1665                          Variables
1666 Variable                       Meaning
1667 error    Exception when pattern string isn't a valid regexp.
1669                                    Functions
1670    Function                                 Result
1671                Compile a RE pattern string into a regular expression object.
1672                Flags (combinable by |):
1674                I or IGNORECASE or (?i)
1675                    case insensitive matching
1676 compile(       L or LOCALE or (?L)
1677 pattern[,          make \w, \W, \b, \B dependent on thecurrent locale
1678 flags=0])      M or MULTILINE or (?m)
1679                    matches every new line and not onlystart/end of the whole
1680                    string
1681                S or DOTALL or (?s)
1682                    '.' matches ALL chars, including newline
1683                X or VERBOSE or (?x)
1684                    Ignores whitespace outside character sets
1685 escape(string) return (a copy of) string with all non-alphanumerics
1686                backslashed.
1687 match(pattern, if 0 or more chars at beginning of <string> match the RE pattern
1688 string[, flags string,return a corresponding MatchObject instance, or None if
1689 ])             no match.
1690 search(pattern scan thru <string> for a location matching <pattern>, return
1691 , string[,     acorresponding MatchObject instance, or None if no match.
1692 flags])
1693 split(pattern, split <string> by occurrences of <pattern>. If capturing () are
1694 string[,       used inpattern, then occurrences of patterns or subpatterns are
1695 maxsplit=0])   also returned.
1696 findall(       return a list of non-overlapping matches in <pattern>, either a
1697 pattern,       list ofgroups or a list of tuples if the pattern has more than 1
1698 string)        group.
1699                return string obtained by replacing the (<count> first) lefmost
1700 sub(pattern,   non-overlapping occurrences of <pattern> (a string or a RE
1701 repl, string[, object) in <string>by <repl>; <repl> can be a string or a fct
1702 count=0])      called with a single MatchObj arg, which must return the
1703                replacement string.
1704 subn(pattern,
1705 repl, string[, same as sub(), but returns a tuple (newString, numberOfSubsMade)
1706 count=0])
1708 Regular Expression Objects
1711 (RE objects are returned by the compile fct)
1713                           re object attributes
1714 Attribute                            Descrition
1715 flags      flags arg used when RE obj was compiled, or 0 if none provided
1716 groupindex dictionary of {group name: group number} in pattern
1717 pattern    pattern string from which RE obj was compiled
1719                                re object methods
1720   Method                                  Result
1721             If zero or more characters at the beginning of string match this
1722             regular expression, return a corresponding MatchObject instance.
1723             Return None if the string does not match the pattern; note that
1724             this is different from a zero-length match.
1725             The optional second parameter pos gives an index in the string
1726 match(      where the search is to start; it defaults to 0. This is not
1727 string[,    completely equivalent to slicing the string; the '' pattern
1728 pos][,      character matches at the real beginning of the string and at
1729 endpos])    positions just after a newline, but not necessarily at the index
1730             where the search is to start.
1731             The optional parameter endpos limits how far the string will be
1732             searched; it will be as if the string is endpos characters long, so
1733             only the characters from pos to endpos will be searched for a
1734             match.
1735             Scan through string looking for a location where this regular
1736 search(     expression produces a match, and return a corresponding MatchObject
1737 string[,    instance. Return None if no position in the string matches the
1738 pos][,      pattern; note that this is different from finding a zero-length
1739 endpos])    match at some point in the string.
1740             The optional pos and endpos parameters have the same meaning as for
1741             the match() method.
1742 split(
1743 string[,    Identical to the split() function, using the compiled pattern.
1744 maxsplit=
1746 findall(    Identical to the findall() function, using the compiled pattern.
1747 string)
1748 sub(repl,
1749 string[,    Identical to the sub() function, using the compiled pattern.
1750 count=0])
1751 subn(repl,
1752 string[,    Identical to the subn() function, using the compiled pattern.
1753 count=0])
1755 Match Objects
1758 (Match objects are returned by the match & search functions)
1760                             Match object attributes
1761 Attribute                              Description
1762 pos       value of pos passed to search or match functions; index intostring at
1763           which RE engine started search.
1764 endpos    value of endpos passed to search or match functions; index intostring
1765           beyond which RE engine won't go.
1766 re        RE object whose match or search fct produced this MatchObj instance
1767 string    string passed to match() or search()
1769                             Match object functions
1770 Function                                 Result
1771           returns one or more groups of the match. If one arg, result is a
1772 group([g1 string;if multiple args, result is a tuple with one item per arg. If
1773 , g2,     gi is 0,return value is entire matching string; if 1 <= gi <= 99,
1774 ...])     returnstring matching group #gi (or None if no such group); gi may
1775           also bea group name.
1776           returns a tuple of all groups of the match; groups not
1777 groups()  participatingto the match have a value of None. Returns a string
1778           instead of tupleif len(tuple)=1
1779 start(
1780 group),   returns indices of start & end of substring matched by group (or
1781 end(group Noneif group exists but doesn't contribute to the match)
1783 span(     returns the 2-tuple (start(group), end(group)); can be (None, None)if
1784 group)    group didn't contibute to the match.
1788                                      math
1790 Variables:
1793 Functions (see ordinary C man pages for info):
1794 acos(x)
1795 asin(x)
1796 atan(x)
1797 atan2(x, y)
1798 ceil(x)
1799 cos(x)
1800 cosh(x)
1801 degrees(x)
1802 exp(x)
1803 fabs(x)
1804 floor(x)
1805 fmod(x, y)
1806 frexp(x)        -- Unlike C: (float, int) = frexp(float)
1807 ldexp(x, y)
1808 log(x [,base])
1809 log10(x)
1810 modf(x)         -- Unlike C: (float, float) = modf(float)
1811 pow(x, y)
1812 radians(x)
1813 sin(x)
1814 sinh(x)
1815 sqrt(x)
1816 tan(x)
1817 tanh(x)
1819                                     getopt
1821 Functions:
1822 getopt(list, optstr)    -- Similar to C. <optstr> is option
1823                            letters to look for. Put ':' after letter
1824                            if option takes arg. E.g.
1825     # invocation was "python test.py -c hi -a arg1 arg2"
1826        opts, args =  getopt.getopt(sys.argv[1:], 'ab:c:')
1827     # opts would be
1828        [('-c', 'hi'), ('-a', '')]
1829     # args would be
1830        ['arg1', 'arg2']
1833 List of modules and packages in base distribution
1835 (built-ins and content of python Lib directory)
1836 (Python NT distribution, may be slightly different in other distributions)
1838                            Standard library modules
1839    Operation                                 Result
1840 aifc             Stuff to parse AIFF-C and AIFF files.
1841 anydbm           Generic interface to all dbm clones. (dbhash, gdbm,
1842                  dbm,dumbdbm)
1843 asynchat         Support for 'chat' style protocols
1844 asyncore         Asynchronous File I/O (in select style)
1845 atexit           Register functions to be called at exit of Python interpreter.
1846 audiodev         Audio support for a few platforms.
1847 base64           Conversions to/from base64 RFC-MIME transport encoding .
1848 BaseHTTPServer   Base class forhttp services.
1849 Bastion          "Bastionification" utility (control access to instance vars)
1850 bdb              A generic Python debugger base class.
1851 binhex           Macintosh binhex compression/decompression.
1852 bisect           List bisection algorithms.
1853 bz2              Support for bz2 compression/decompression.
1854 calendar         Calendar printing functions.
1855 cgi              Wraps the WWW Forms Common Gateway Interface (CGI).
1856 cgitb            Utility for handling CGI tracebacks.
1857 CGIHTTPServer    CGI http services.
1858 cmd              A generic class to build line-oriented command interpreters.
1859 datetime         Basic date and time types.
1860 code             Utilities needed to emulate Python's interactive interpreter
1861 codecs           Lookup existing Unicode encodings and register new ones.
1862 colorsys         Conversion functions between RGB and other color systems.
1863 commands         Tools for executing UNIX commands .
1864 compileall       Force "compilation" of all .py files in a directory.
1865 ConfigParser     Configuration file parser (much like windows .ini files)
1866 copy             Generic shallow and deep copying operations.
1867 copy_reg         Helper to provide extensibility for pickle/cPickle.
1868 csv              Read and write files with comma separated values.
1869 dbhash           (g)dbm-compatible interface to bsdhash.hashopen.
1870 dircache         Sorted list of files in a dir, using a cache.
1871 [DEL:dircmp:DEL] [DEL:Defines a class to build directory diff tools on.:DEL]
1872 difflib          Tool for creating delta between sequences.
1873 dis              Bytecode disassembler.
1874 distutils        Package installation system.
1875 doctest          Tool for running and verifying tests inside doc strings.
1876 dospath          Common operations on DOS pathnames.
1877 dumbdbm          A dumb and slow but simple dbm clone.
1878 [DEL:dump:DEL]   [DEL:Print python code that reconstructs a variable.:DEL]
1879 email            Comprehensive support for internet email.
1880 exceptions       Class based built-in exception hierarchy.
1881 filecmp          File comparison.
1882 fileinput        Helper class to quickly write a loop over all standard input
1883                  files.
1884 [DEL:find:DEL]   [DEL:Find files directory hierarchy matching a pattern.:DEL]
1885 fnmatch          Filename matching with shell patterns.
1886 formatter        A test formatter.
1887 fpformat         General floating point formatting functions.
1888 ftplib           An FTP client class. Based on RFC 959.
1889 gc               Perform garbacge collection, obtain GC debug stats, and tune
1890                  GC parameters.
1891 getopt           Standard command line processing. See also ftp://
1892                  www.pauahtun.org/pub/getargspy.zip
1893 getpass          Utilities to get a password and/or the current user name.
1894 glob             filename globbing.
1895 gopherlib        Gopher protocol client interface.
1896 [DEL:grep:DEL]   [DEL:'grep' utilities.:DEL]
1897 gzip             Read & write gzipped files.
1898 heapq            Priority queue implemented using lists organized as heaps.
1899 HMAC             Keyed-Hashing for Message Authentication -- RFC 2104.
1900 htmlentitydefs   Proposed entity definitions for HTML.
1901 htmllib          HTML parsing utilities.
1902 HTMLParser       A parser for HTML and XHTML.
1903 httplib          HTTP client class.
1904 ihooks           Hooks into the "import" mechanism.
1905 imaplib          IMAP4 client.Based on RFC 2060.
1906 imghdr           Recognizing image files based on their first few bytes.
1907 imputil          Privides a way of writing customised import hooks.
1908 inspect          Tool for probing live Python objects.
1909 keyword          List of Python keywords.
1910 knee             A Python re-implementation of hierarchical module import.
1911 linecache        Cache lines from files.
1912 linuxaudiodev    Lunix /dev/audio support.
1913 locale           Support for number formatting using the current locale
1914                  settings.
1915 logging          Python logging facility.
1916 macpath          Pathname (or related) operations for the Macintosh.
1917 macurl2path      Mac specific module for conversion between pathnames and URLs.
1918 mailbox          A class to handle a unix-style or mmdf-style mailbox.
1919 mailcap          Mailcap file handling (RFC 1524).
1920 mhlib            MH (mailbox) interface.
1921 mimetools        Various tools used by MIME-reading or MIME-writing programs.
1922 mimetypes        Guess the MIME type of a file.
1923 MimeWriter       Generic MIME writer.
1924 mimify           Mimification and unmimification of mail messages.
1925 mmap             Interface to memory-mapped files - they behave like mutable
1926                  strings./font>
1927 multifile        Class to make multi-file messages easier to handle.
1928 mutex            Mutual exclusion -- for use with module sched.
1929 netrc
1930 nntplib          An NNTP client class. Based on RFC 977.
1931 ntpath           Common operations on DOS pathnames.
1932 nturl2path       Mac specific module for conversion between pathnames and URLs.
1933 optparse         A comprehensive tool for processing command line options.
1934 os               Either mac, dos or posix depending system.
1935 [DEL:packmail:   [DEL:Create a self-unpacking shell archive.:DEL]
1936 DEL]
1937 pdb              A Python debugger.
1938 pickle           Pickling (save and restore) of Python objects (a faster
1939                  Cimplementation exists in built-in module: cPickle).
1940 pipes            Conversion pipeline templates.
1941 pkgunil          Utilities for working with Python packages.
1942 popen2           variations on pipe open.
1943 poplib           A POP3 client class. Based on the J. Myers POP3 draft.
1944 posixfile        Extended (posix) file operations.
1945 posixpath        Common operations on POSIX pathnames.
1946 pprint           Support to pretty-print lists, tuples, & dictionaries
1947                  recursively.
1948 profile          Class for profiling python code.
1949 pstats           Class for printing reports on profiled python code.
1950 pydoc            Utility for generating documentation from source files.
1951 pty              Pseudo terminal utilities.
1952 pyexpat          Interface to the Expay XML parser.
1953 py_compile       Routine to "compile" a .py file to a .pyc file.
1954 pyclbr           Parse a Python file and retrieve classes and methods.
1955 Queue            A multi-producer, multi-consumer queue.
1956 quopri           Conversions to/from quoted-printable transport encoding.
1957 rand             Don't use unless you want compatibility with C's rand().
1958 random           Random variable generators
1959 re               Regular Expressions.
1960 repr             Redo repr() but with limits on most sizes.
1961 rexec            Restricted execution facilities ("safe" exec, eval, etc).
1962 rfc822           RFC-822 message manipulation class.
1963 rlcompleter      Word completion for GNU readline 2.0.
1964 robotparser      Parse robots.txt files, useful for web spiders.
1965 sched            A generally useful event scheduler class.
1966 sets             Module for a set datatype.
1967 sgmllib          A parser for SGML.
1968 shelve           Manage shelves of pickled objects.
1969 shlex            Lexical analyzer class for simple shell-like syntaxes.
1970 shutil           Utility functions usable in a shell-like program.
1971 SimpleHTTPServer Simple extension to base http class
1972 site             Append module search paths for third-party packages to
1973                  sys.path.
1974 smtplib          SMTP Client class (RFC 821)
1975 sndhdr           Several routines that help recognizing sound.
1976 SocketServer     Generic socket server classes.
1977 stat             Constants and functions for interpreting stat/lstat struct.
1978 statcache        Maintain a cache of file stats.
1979 statvfs          Constants for interpreting statvfs struct as returned by
1980                  os.statvfs()and os.fstatvfs() (if they exist).
1981 string           A collection of string operations.
1982 StringIO         File-like objects that read/write a string buffer (a fasterC
1983                  implementation exists in built-in module: cStringIO).
1984 sunau            Stuff to parse Sun and NeXT audio files.
1985 sunaudio         Interpret sun audio headers.
1986 symbol           Non-terminal symbols of Python grammar (from "graminit.h").
1987 tabnanny,/font>  Check Python source for ambiguous indentation.
1988 tarfile          Facility for reading and writing to the *nix tarfile format.
1989 telnetlib        TELNET client class. Based on RFC 854.
1990 tempfile         Temporary file name allocation.
1991 textwrap         Object for wrapping and filling text.
1992 threading        Proposed new higher-level threading interfaces
1993 threading_api    (doc of the threading module)
1994 toaiff           Convert "arbitrary" sound files to AIFF files .
1995 token            Tokens (from "token.h").
1996 tokenize         Compiles a regular expression that recognizes Python tokens.
1997 traceback        Format and print Python stack traces.
1998 tty              Terminal utilities.
1999 turtle           LogoMation-like turtle graphics
2000 types            Define names for all type symbols in the std interpreter.
2001 tzparse          Parse a timezone specification.
2002 unicodedata      Interface to unicode properties.
2003 urllib           Open an arbitrary URL.
2004 urlparse         Parse URLs according to latest draft of standard.
2005 user             Hook to allow user-specified customization code to run.
2006 UserDict         A wrapper to allow subclassing of built-in dict class.
2007 UserList         A wrapper to allow subclassing of built-in list class.
2008 UserString       A wrapper to allow subclassing of built-in string class.
2009 [DEL:util:DEL]   [DEL:some useful functions that don't fit elsewhere !!:DEL]
2010 uu               UUencode/UUdecode.
2011 unittest         Utilities for implementing unit testing.
2012 wave             Stuff to parse WAVE files.
2013 weakref          Tools for creating and managing weakly referenced objects.
2014 webbrowser       Platform independent URL launcher.
2015 [DEL:whatsound:  [DEL:Several routines that help recognizing sound files.:DEL]
2016 DEL]
2017 whichdb          Guess which db package to use to open a db file.
2018 xdrlib           Implements (a subset of) Sun XDR (eXternal Data
2019                  Representation)
2020 xmllib           A parser for XML, using the derived class as static DTD.
2021 xml.dom          Classes for processing XML using the Document Object Model.
2022 xml.sax          Classes for processing XML using the SAX API.
2023 xmlrpclib        Support for remote procedure calls using XML.
2024 zipfile          Read & write PK zipped files.
2025 [DEL:zmod:DEL]   [DEL:Demonstration of abstruse mathematical concepts.:DEL]
2029 * Built-ins *
2031             sys                 Interpreter state vars and functions
2032             __built-in__        Access to all built-in python identifiers
2033             __main__            Scope of the interpreters main program, script or stdin
2034             array               Obj efficiently representing arrays of basic values
2035             math                Math functions of C standard
2036             time                Time-related functions (also the newer datetime module)
2037             marshal             Read and write some python values in binary format
2038             struct              Convert between python values and C structs
2040 * Standard *
2042             getopt              Parse cmd line args in sys.argv.  A la UNIX 'getopt'.
2043             os                  A more portable interface to OS dependent functionality
2044             re                  Functions useful for working with regular expressions
2045             string              Useful string and characters functions and exceptions
2046             random              Mersenne Twister pseudo-random number generator
2047             thread              Low-level primitives for working with process threads
2048             threading           idem, new recommanded interface.
2050 * Unix/Posix *
2052             dbm                 Interface to Unix ndbm database library
2053             grp                 Interface to Unix group database
2054             posix               OS functionality standardized by C and POSIX standards
2055             posixpath           POSIX pathname functions
2056             pwd                 Access to the Unix password database
2057             select              Access to Unix select multiplex file synchronization
2058             socket              Access to BSD socket interface
2060 * Tk User-interface Toolkit *
2062             tkinter             Main interface to Tk
2064 * Multimedia *
2066             audioop             Useful operations on sound fragments
2067             imageop             Useful operations on images
2068             jpeg                Access to jpeg image compressor and decompressor
2069             rgbimg              Access SGI imglib image files
2071 * Cryptographic Extensions *
2073             md5         Interface to RSA's MD5 message digest algorithm
2074             sha         Interface to the SHA message digest algorithm
2075             HMAC        Keyed-Hashing for Message Authentication -- RFC 2104.
2077 * SGI IRIX * (4 & 5)
2079             al          SGI audio facilities
2080             AL          al constants
2081             fl          Interface to FORMS library
2082             FL          fl constants
2083             flp Functions for form designer
2084             fm          Access to font manager library
2085             gl          Access to graphics library
2086             GL          Constants for gl
2087             DEVICE      More constants for gl
2088             imgfile     Imglib image file interface
2090 * Suns *
2092             sunaudiodev Access to sun audio interface
2095 Workspace exploration and idiom hints
2097         dir(<module>)   list functions, variables in <module>
2098         dir()           get object keys, defaults to local name space
2099         if __name__ == '__main__': main()            invoke main if running as script
2100         map(None, lst1, lst2, ...)                   merge lists
2101         b = a[:]                                     create copy of seq structure
2102         _                       in interactive mode, is last value printed
2110 Python Mode for Emacs
2112 (Not revised, possibly not up to date)
2113 Type C-c ? when in python-mode for extensive help.
2114 INDENTATION
2115 Primarily for entering new code:
2116         TAB      indent line appropriately
2117         LFD      insert newline, then indent
2118         DEL      reduce indentation, or delete single character
2119 Primarily for reindenting existing code:
2120         C-c :    guess py-indent-offset from file content; change locally
2121         C-u C-c :        ditto, but change globally
2122         C-c TAB  reindent region to match its context
2123         C-c <    shift region left by py-indent-offset
2124         C-c >    shift region right by py-indent-offset
2125 MARKING & MANIPULATING REGIONS OF CODE
2126 C-c C-b         mark block of lines
2127 M-C-h           mark smallest enclosing def
2128 C-u M-C-h       mark smallest enclosing class
2129 C-c #           comment out region of code
2130 C-u C-c #       uncomment region of code
2131 MOVING POINT
2132 C-c C-p         move to statement preceding point
2133 C-c C-n         move to statement following point
2134 C-c C-u         move up to start of current block
2135 M-C-a           move to start of def
2136 C-u M-C-a       move to start of class
2137 M-C-e           move to end of def
2138 C-u M-C-e       move to end of class
2139 EXECUTING PYTHON CODE
2140 C-c C-c sends the entire buffer to the Python interpreter
2141 C-c |   sends the current region
2142 C-c !   starts a Python interpreter window; this will be used by
2143         subsequent C-c C-c or C-c | commands
2144 C-c C-w runs PyChecker
2146 VARIABLES
2147 py-indent-offset        indentation increment
2148 py-block-comment-prefix comment string used by py-comment-region
2149 py-python-command       shell command to invoke Python interpreter
2150 py-scroll-process-buffer        t means always scroll Python process buffer
2151 py-temp-directory       directory used for temp files (if needed)
2152 py-beep-if-tab-change   ring the bell if tab-width is changed
2155 The Python Debugger
2157 (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)
2159 Accessing
2161 import pdb      (it's a module written in Python)
2162         -- defines functions :
2163            run(statement[,globals[, locals]])
2164                         -- execute statement string under debugger control, with optional
2165                            global & local environment.
2166            runeval(expression[,globals[, locals]])
2167                         -- same as run, but evaluate expression and return value.
2168            runcall(function[, argument, ...])
2169                         -- run function object with given arg(s)
2170            pm()         -- run postmortem on last exception (like debugging a core file)
2171            post_mortem(t)
2172                         -- run postmortem on traceback object <t>
2174         -- defines class Pdb :
2175            use Pdb to create reusable debugger objects. Object
2176            preserves state (i.e. break points) between calls.
2178         runs until a breakpoint hit, exception, or end of program
2179         If exception, variable '__exception__' holds (exception,value).
2181 Commands
2183 h, help
2184         brief reminder of commands
2185 b, break [<arg>]
2186         if <arg> numeric, break at line <arg> in current file
2187         if <arg> is function object, break on entry to fcn <arg>
2188         if no arg, list breakpoints
2189 cl, clear [<arg>]
2190         if <arg> numeric, clear breakpoint at <arg> in current file
2191         if no arg, clear all breakpoints after confirmation
2192 w, where
2193         print current call stack
2194 u, up
2195         move up one stack frame (to top-level caller)
2196 d, down
2197         move down one stack frame
2198 s, step
2199         advance one line in the program, stepping into calls
2200 n, next
2201         advance one line, stepping over calls
2202 r, return
2203         continue execution until current function returns
2204         (return value is saved in variable "__return__", which
2205         can be printed or manipulated from debugger)
2206 c, continue
2207         continue until next breakpoint
2208 j, jump lineno
2209         Set the next line that will be executed
2210 a, args
2211         print args to current function
2212 rv, retval
2213         prints return value from last function that returned
2214 p, print <arg>
2215         prints value of <arg> in current stack frame
2216 l, list [<first> [, <last>]]
2217                List source code for the current file.
2218                Without arguments, list 11 lines around the current line
2219                or continue the previous listing.
2220                With one argument, list 11 lines starting at that line.
2221                With two arguments, list the given range;
2222                if the second argument is less than the first, it is a count.
2223 whatis <arg>
2224         prints type of <arg>
2226         executes rest of line as a Python statement in the current stack frame
2227 q quit
2228         immediately stop execution and leave debugger
2229 <return>
2230         executes last command again
2231 Any input debugger doesn't recognize as a command is assumed to be a
2232 Python statement to execute in the current stack frame, the same way
2233 the exclamation mark ("!") command does.
2235 Example
2237 (1394) python
2238 Python 1.0.3 (Sep 26 1994)
2239 Copyright 1991-1994 Stichting Mathematisch Centrum, Amsterdam
2240 >>> import rm
2241 >>> rm.run()
2242 Traceback (innermost last):
2243          File "<stdin>", line 1
2244          File "./rm.py", line 7
2245            x = div(3)
2246          File "./rm.py", line 2
2247            return a / r
2248 ZeroDivisionError: integer division or modulo
2249 >>> import pdb
2250 >>> pdb.pm()
2251 > ./rm.py(2)div: return a / r
2252 (Pdb) list
2253          1     def div(a):
2254          2  ->     return a / r
2255          3
2256          4     def run():
2257          5         global r
2258          6         r = 0
2259          7         x = div(3)
2260          8         print x
2261 [EOF]
2262 (Pdb) print r
2264 (Pdb) q
2265 >>> pdb.runcall(rm.run)
2266 etc.
2268 Quirks
2270 Breakpoints are stored as filename, line number tuples. If a module is reloaded
2271 after editing, any remembered breakpoints are likely to be wrong.
2273 Always single-steps through top-most stack frame. That is, "c" acts like "n".