[Zope3-dev] Re: A Take on the Hello World Acid Test - from Mandatory Viewing

Paul Winkler pw_lists at slinkp.com
Thu Mar 9 10:44:56 EST 2006


On Thu, Mar 09, 2006 at 02:38:48PM +0100, Paul Everitt wrote:
> One little Python script, maintained as part of the standard 
> distribution, referred to ubiquitously as the right way to start, would 
> have more impact on Zope adoption than nearly any other software 
> activity (save, perhaps, for zope.bobo).  All IMO, of course.

We do already have bin/pyskel, which is useful as far
as it goes, but that's of course not very far. 

I'd really like to see some more scaffolding.
Unfortunately there are so many use cases, we could
easily get bogged down on the details.
For example, I can imagine:

* Create a skeletal package structure.

  input:  name of package, e.g. foo

  creates (if they don't exist):

    lib/python/foo
    lib/python/foo/__init__.py
    lib/python/foo/browser
    lib/python/foo/browser/__init__.py
    lib/python/foo/tests/
    lib/python/foo/tests/__init__.py
    lib/python/foo/tests/test_foo.py
    lib/python/foo/ftests/
    lib/python/foo/ftests/__init__.py
    lib/python/foo/ftests/test_foo.py
    etc/package-includes/foo-configure.zcml ?
    lib/python/foo/configure.zcml ?
    lib/python/foo/browser/configure.zcml ?

* Given interface(s), generate a skeletal class
  and supporting files.

  input: lib/python/foo/interfaces.py

  creates (but warns and exits if files exist):

    lib/python/foo/foo.py

    create an interface test in 
    lib/python/foo/tests/test_foo.py

    add some wiring to 
    lib/python/foo/configure.zcml


  options:
    create a view class in
    lib/python/foo/browser/views.py?

    create a template for that view class?

    create an edit form using a template? or
    zope.formlib? or what?

    create an add form using zope.formlib?
    or a template? or...??


Lots of options here!

Probably the best initial approach would be
to make it modest but trivially extensible so
you could write scripts that leverage it but 
do what *you* want for *your* project.

Several obvious candidates for implementing stuff like this:

Skeletor
https://svn.plone.org/svn/collective/skeletor/trunk/

Paste Script and Paste Templates
http://pythonpaste.org/script/developer.html#templates



-- 

Paul Winkler
http://www.slinkp.com


More information about the Zope3-dev mailing list