[Zope] Python -> ZopePython cheat sheet?

Chris McDonough chrism@zope.com
04 Nov 2002 20:41:16 -0500


On Mon, 2002-11-04 at 20:09, Skip Montanaro wrote:
> This part is frustrating.  Stuff seems to be scattered all over the place.
> Part of my frustration is that when I find something that looks promising I
> generally have to figure out what the page template equivalent of a dtml
> example is.  I really don't want to wade into dtml again.  I used it for a
> few years outside of Zope and didn't like it.

Uh huh.  Stuff is scattered all over the place.  The Zope Book is a
best-effort attempt at bringing a lot of it together.

>     Chris> Were you successful at accessing your Zope objects in a Python
>     Chris> prompt?
> 
> Yes, thanks.  I can get to the static stuff without too much trouble using
> the medusa/monitor_client script.  It's a tad frustrating to not have
> readline, but I guess that's the price I have to pay for using a canned
> install on a not-quite-yet wrung out platform (MacOSX).  Perhaps I can coax
> IPython or pyrepl into working for me.  I haven't yet tried submitting a
> form with several fields.  I anticipate that will be tedious.

You can have readline and whatnot by following the steps I outlined in
my last email instead of going in to the monitor client.  If you're
using ZEO, you can even be connected to a database that is currently in
use by a running Zope instance.  It's particularly nice if you run Zope
under emacs shell-mode and have Ken Manheimer's pdbtrack installed. 
When a pdb session is fired up, it tracks the progress of the code in a
separate window.

> Is there some way I can make dir() and type() available to scripts for
> development purposes and make sys importable once again?

Not without hacking source, but if you go into
ZOPEHOME/lib/python/RestrictedPython, you can add them to the
"safe_builtins" module-level global.  This is not recommended.  Instead,
use an external method or write a Python product.  See the Zope
Developer's guide on how to write a Python product and the Zope Book 2.6
edition on how to write an external method.

- C