[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