[Python-Dev] Would like to add Edward Loper as a Python developer

John Belmonte john at neggie.net
Fri Aug 6 14:54:45 CEST 2004


Tim Peters wrote:
> better support for writing "whole file" doctests (tutorial narratives
> liberally illustrated with Python examples -- Zope3 is finding these very
> helpful); and documenting all the additions that snuck into Python 2.3.

I noticed that the "whole file doctests" item didn't make it to the 
DoctestIdeas page.  I was looking for more details about that.

I've found that for tutorial narratives, I really don't want to bother 
with expected output.  For complex software, the output may not always 
be the same anyway.  Also, it's not fun to manipulate input code that 
has prompts and is within a multi-line string.  Syntax highlighting is 
not available, for one thing.

I've made my own tutorial generator.  Given this input script:

     ## Double hash comments treated as meta comments and not output to
     ## the tutorial.

     """
     Triple-quote comments that start in the first column are treated as
     tutorial text.

     First we'll import some modules:
     """
     import os

     """
     Some code follows.  In addition to hash comments, and triple-quote
     comments not starting in the first column are preserved.  Note that
     code blocks such as functions must end with a blank line, just as
     is done in the interactive interpreter.
     """

     def foo():
         """foo description here"""
         print 'hello'  # be friendly

     #my_path = 'foo/bar'
     my_path = os.path.join('foo', 'bar')
     my_path
     foo()

the output is:

     Triple-quote comments that start in the first column are treated as
     tutorial text.

     First we'll import some modules:

         >>> import os

     Some code follows.  In addition to hash comments, and triple-quote
     comments not starting in the first column are preserved.  Note that
     code blocks such as functions must end with a blank line, just as
     is done in the interactive interpreter.

         >>> def foo():
         ...     """foo description here"""
         ...     print 'hello'  # be friendly
         ...
         >>> #my_path = 'foo/bar'
         >>> my_path = os.path.join('foo', 'bar')
         >>> my_path
         'foo/bar'
         >>> foo()
         hello


-John


-- 
http://giftfile.org/  ::  giftfile project


More information about the Python-Dev mailing list