Tab completion in zopectl debug
Hi, I have recently learned how to add tab completion to an interactive python session and to pdb, thanks to Tom Lazar and to Jacob at ParTecs. More info with links on my first blog entry in three months: http://maurits.vanrees.org/weblog/2006/10/tab-completion.html At the end of that entry I ask a question: Can we add tab completion to the zopectl debugger? Or actually more general: can we load the ~/.pythonrc.py file when the zopectl debugger is started? In that file, the user can arrange tab completion or anything else he wants to have available for interactive python sessions. It is very easy to do: just add 'import user;' to the command line in the do_debug function of $SOFTWARE_HOME/Zope2/Startup/zopectl.py. For details, see that blog entry. I don't think there are security risks (but don't take my word for it). If someone can put malicious python code in that rc file, than that someone could just as easily start a python session and enter the malicious code there. This would just be for convenience. Would this be enough of a convenience to put into the Zope source code? -- Maurits van Rees | http://maurits.vanrees.org/ [NL] Work | http://zestsoftware.nl/ "Do not worry about your difficulties in computers, I can assure you mine are still greater."
On Tue, Oct 17, 2006 at 11:43:50PM +0000, Maurits van Rees wrote:
This would just be for convenience. Would this be enough of a convenience to put into the Zope source code?
Yes please! -- Paul Winkler http://www.slinkp.com
Am Mittwoch, 18. Oktober 2006 01:43 schrieb Maurits van Rees:
Hi,
I have recently learned how to add tab completion to an interactive python session and to pdb, thanks to Tom Lazar and to Jacob at ParTecs. More info with links on my first blog entry in three months:
http://maurits.vanrees.org/weblog/2006/10/tab-completion.html
just a thought: you might also use ipython, which has tab-completion by default: http://ipython.scipy.org/moin/About Cheers, Sascha -- Lalisio GmbH www.lalisio.com Puschkinstraße 1 fon +49-(0)361/541 43 80 99084 Erfurt fax +49-(0)361/541 43 79 kontakt@lalisio.com +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ AKTUELLER HINWEIS (Oktober 2006) Wussten Sie schon, dass Lalisio ab sofort den Dokumentenlieferdienst CISTI in seine Literatursuchmaschine einbindet? Sobald Sie über unsere Literatursuchmaschine in den Datenbanken Ingenta oder Projekt MUSE relevante Artikel finden, können Sie die bibliographischen Daten per Mausklick an CISTI übermitteln und Kopien der Artikel bestellen. Testen Sie unser Angebot unter www.lalisio.com! +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Sascha Ottolski, on 2006-10-18:
http://maurits.vanrees.org/weblog/2006/10/tab-completion.html
just a thought: you might also use ipython, which has tab-completion by default: http://ipython.scipy.org/moin/About
I saw that mentioned in one of the links on my page as well; looks promising; I'll try it out, thanks. The following also mention ipython in the light of zope: http://tomster.org/blog/archive/2006/10/09/ipython-as-zope-shell http://michaelthornhill.blogspot.com/2005/09/how-to-debug-zopeplone-with-ide... -- Maurits van Rees | http://maurits.vanrees.org/ [NL] Work | http://zestsoftware.nl/ "Do not worry about your difficulties in computers, I can assure you mine are still greater."
Maurits van Rees wrote:
Hi,
I have recently learned how to add tab completion to an interactive python session and to pdb, thanks to Tom Lazar and to Jacob at ParTecs. More info with links on my first blog entry in three months:
http://maurits.vanrees.org/weblog/2006/10/tab-completion.html
At the end of that entry I ask a question: Can we add tab completion to the zopectl debugger? Or actually more general: can we load the ~/.pythonrc.py file when the zopectl debugger is started? In that file, the user can arrange tab completion or anything else he wants to have available for interactive python sessions.
It is very easy to do: just add 'import user;' to the command line in the do_debug function of $SOFTWARE_HOME/Zope2/Startup/zopectl.py. For details, see that blog entry.
Looks good, is there any way this can be done by putting more code in do_debug and not usering .pythonrc.py? In any case, this would be cool, please add a feature request + patch in the collector: http://www.zope.org/Collectors/Zope cheers, Chris -- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk
Chris Withers, on 2006-10-18:
Looks good, is there any way this can be done by putting more code in do_debug and not usering .pythonrc.py?
Sure. Instead of adding 'import user' in do_debug, you can add print "Hello Chris, good luck with your debugging session!"; or anything else you fancy. Adding multiline statements probably doesn't work that well. So 'import user' seems cleaner to me.
In any case, this would be cool, please add a feature request + patch in the collector:
I'll experiment some more and listen to other reactions, but then I'll look into adding some lines to the collector, yes, unless someone beats me to it. -- Maurits van Rees | http://maurits.vanrees.org/ [NL] Work | http://zestsoftware.nl/ "Do not worry about your difficulties in computers, I can assure you mine are still greater."
Maurits van Rees wrote at 2006-10-17 23:43 +0000:
... More info with links on my first blog entry in three months:
http://maurits.vanrees.org/weblog/2006/10/tab-completion.html
At the end of that entry I ask a question: Can we add tab completion to the zopectl debugger? Or actually more general: can we load the ~/.pythonrc.py file when the zopectl debugger is started?
Nothing prevents you to call "execfile" at the start of your debug session. -- Dieter
Dieter Maurer, on 2006-10-18:
Nothing prevents you to call "execfile" at the start of your debug session.
Lazyness prevents me to call "execfile" at the start of my debug session. :) -- Maurits van Rees | http://maurits.vanrees.org/ [NL] Work | http://zestsoftware.nl/ "Do not worry about your difficulties in computers, I can assure you mine are still greater."
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Maurits van Rees wrote:
Hi,
I have recently learned how to add tab completion to an interactive python session and to pdb, thanks to Tom Lazar and to Jacob at ParTecs. More info with links on my first blog entry in three months:
http://maurits.vanrees.org/weblog/2006/10/tab-completion.html
At the end of that entry I ask a question: Can we add tab completion to the zopectl debugger? Or actually more general: can we load the ~/.pythonrc.py file when the zopectl debugger is started? In that file, the user can arrange tab completion or anything else he wants to have available for interactive python sessions.
It is very easy to do: just add 'import user;' to the command line in the do_debug function of $SOFTWARE_HOME/Zope2/Startup/zopectl.py. For details, see that blog entry.
I don't think there are security risks (but don't take my word for it). If someone can put malicious python code in that rc file, than that someone could just as easily start a python session and enter the malicious code there.
This would just be for convenience. Would this be enough of a convenience to put into the Zope source code?
+1. The original version of zopectl actually supported this, along with persistent command-line history: the person who rewrote it didn't actually use it, and so left a number of those features out ('test', 'run', and 'debug' have all been added back in). Tres. - -- =================================================================== Tres Seaver +1 202-558-7113 tseaver@palladion.com Palladion Software "Excellence by Design" http://palladion.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFFNoQS+gerLs4ltQ4RAsrFAJ0b8rJ/gNpEkobWkT99XZhErAUZmgCgzKq2 yLElkaygeEay8mf8NDi2Wxw= =U2N1 -----END PGP SIGNATURE-----
participants (6)
-
Chris Withers -
Dieter Maurer -
Maurits van Rees -
Paul Winkler -
Sascha Ottolski -
Tres Seaver