home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_1720 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  2.1 KB  |  64 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import doctest
  5. import sys
  6. import IPython.ipapi as IPython
  7. ip = IPython.ipapi.get()
  8.  
  9. def rundoctest(text, ns = None, eraise = False):
  10.     name = 'interactive doctest'
  11.     filename = '<IPython console>'
  12.     if eraise:
  13.         runner = doctest.DebugRunner()
  14.     else:
  15.         runner = doctest.DocTestRunner()
  16.     parser = doctest.DocTestParser()
  17.     if ns is None:
  18.         f = sys._getframe(1)
  19.         ns = f.f_globals.copy()
  20.         ns.update(f.f_locals)
  21.     
  22.     test = parser.get_doctest(text, ns, name, filename, 0)
  23.     runner.run(test)
  24.     runner.summarize(True)
  25.  
  26.  
  27. def idoctest(ns = None, eraise = False):
  28.     inlines = []
  29.     empty_lines = 0
  30.     run_test = True
  31.     if ns is None:
  32.         ns = ip.user_ns
  33.     
  34.     ip.IP.savehist()
  35.     
  36.     try:
  37.         while True:
  38.             line = raw_input()
  39.             if not line or line.isspace():
  40.                 empty_lines += 1
  41.             else:
  42.                 empty_lines = 0
  43.             if empty_lines >= 2:
  44.                 break
  45.             
  46.             inlines.append(line)
  47.     except EOFError:
  48.         pass
  49.     except KeyboardInterrupt:
  50.         print 'KeyboardInterrupt - Discarding input.'
  51.         run_test = False
  52.  
  53.     ip.IP.reloadhist()
  54.     if run_test:
  55.         inlines.append('')
  56.         rundoctest('\n'.join(inlines), ns, eraise)
  57.     
  58.  
  59. if __name__ == '__main__':
  60.     t = '\n    >>> for i in range(10):\n    ...     print i,\n    ...\n    0 1 2 3 4 5 6 7 8 9\n    '
  61.     t2 = '\n        A simple example::\n\n          >>> for i in range(10):\n          ...     print i,\n          ...\n          0 1 2 3 4 5 6 7 8 9\n\n        Some more details::\n\n          >>> print "hello"\n          hello\n    '
  62.     t3 = '\n        A failing example::\n\n          >>> x=1\n          >>> x+1\n          3\n    '
  63.  
  64.