[PEAK] Option parsing prototype + new-style documentation

Ulrich Eck ueck at net-labs.de
Fri Nov 26 05:15:58 EST 2004


Hi Phillip,

i've used doctests in z3 development already and i like this way of
writing and using documentation/tests very much. 

options.txt is written very well and having lots of these snippets will
give really good developer docs imho.

cheers Ulrich

On Fri, 2004-11-26 at 05:40, Phillip J. Eby wrote:
> I've just checked in an almost-finished version of the new 
> 'peak.running.options' framework, to let you do option parsing via 
> attribute metadata, like this:
> 
>      from peak.running import commands, options
> 
>      class MyClass(commands.AbstractCommand):
> 
>          dbURL = binding.Obtain(
>              PropertyName('myapp.dburl'),
>              [options.Set('--db', type=str,
>                           metavar="URL", help="Database URL")
>              ]
>          )
> 
> It's not actually integrated with the 'commands' framework yet, so the 
> '_run()' method of the above class would have to do something like:
> 
>       args = options.parse(self, self.argv[1:], description=self.usage)
> 
> in order to set its attributes from the provided options, and to receive 
> the non-option arguments in 'args'.
> 
> Included in the check-in is some *extremely* in-depth documentation, chock 
> full of examples.  It's written in reStructuredText format, so if you have 
> the docutils package you can create a nice hyperlinked HTML version for 
> more convenient reading.  (Or a PDF, or whatever other format you might 
> like, that docutils supports.)
> 
> I would be very interested in any feedback that anyone has about the format 
> or content of the documentation.  This is the direction I'd like to move in 
> for future PEAK documentation and unit tests.  That is, writing them in 
> reStructuredText and processing them with doctest to verify the examples, 
> thus ensuring that every feature has one or more known-working examples.
> 
> So, if there are any issues with the comprehensibility or usability of the 
> docs I'm doing in this format, I'd like to know.  Currently, there are four 
> such documents in PEAK:
> 
> * peak.running/options.txt -- the doc I described above
> 
> * peak.binding/attributes.txt -- work in progress, describes the metadata 
> framework and attribute initialization API, but should eventually grow to 
> encompass all attribute-related features of peak.binding.
> 
> * peak.util/unittrace.txt -- a somewhat more polished document explaining 
> the peak.util.unittrace module.
> 
> * dispatch/combiners.txt -- work in progress, currently describes only the 
> MapCombiner base class, but should eventually grow to encompass all 
> method-combining features of the PyProtocols dispatch package.
> 
> So, if you get a chance, please take a look at some of the above, more or 
> less in the order shown, and let me know what you think.  Thanks.
> 
> _______________________________________________
> PEAK mailing list
> PEAK at eby-sarna.com
> http://www.eby-sarna.com/mailman/listinfo/peak
-- 
--------------------------

Ulrich Eck
net-labs Systemhaus GmbH
CEO & Code-Artist
Ebersberger Str. 46
85570 Markt Schwaben - Germany

eMail: ueck <at> net-labs.de
phone: +49 8121 4747 10
fax:   +49 8121 4747 77




More information about the PEAK mailing list