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