[Zope3-dev] Plans for z3.py

Casey Duncan c.duncan@nlada.org
Wed, 13 Feb 2002 11:42:06 -0500


Sounds like a winner to me. Not hard coding all of the switches and behavior 
would be very cool. And, hey extensibility, what a concept.

Maybe new classes could be registered through zcml for use by z3.py

-Casey

On Wednesday 13 February 2002 11:31 am, Shane Hathaway allegedly wrote:
> Hi folks,
>
> z3.py is expanding and it's about time to make it smarter.  However,
> before anyone proceeds with this, I have an idea.  I'd like to consider
> reusing some code I created in the "pma" project (an NNTP server built
> on ZODB--see the zodbex project at SourceForge.)
>
> The ObjectCLI class lets you invoke methods of a Python object directly
> from the command line.  The concept is similar to Zope's publisher,
> which lets you call methods directly from the Web.  Say you created a
> class like this:
>
> class ServerControl:
>    """A proxy server."""
>
>    def start(port):
>      """Starts the server on the specified port."""
>
>    def stop():
>      """Stops the server."""
>
>
> With two or three lines of glue, you can then invoke the methods of a
> ServerControl instance directly from the command line:
>
> python server_control.py start --port=3128
> python server_control.py stop
>
> You can also get the documentation of ServerControl, primarily derived
> from the docstrings:
>
> python server_control.py --help
>
> And you can get more in-depth documentation about each method:
>
> python server_control.py start --help
>
>
> The author of the ServerControl class never has to use getopt().  All
> you have to do is expose an object to the command line via ObjectCLI.
> (ObjectCLI uses getopt() to do its work.)  A major benefit is that the
> command line arguments and the implementation are less likely to fall
> out of sync.
>
> Thoughts?
>
> Shane