Re: crear una sesión interactiva
Arnau Sánchez
pyarnau en gmail.com
Lun Ago 18 11:44:54 CEST 2008
Me respondo a mí mismo.
El 18 de agosto de 2008 11:03, Arnau Sánchez <pyarnau en gmail.com> escribió:
my_app> help f1
>>
>> se correspondería con ...
>>
>> print f1.__doc__
>
>
> Eso mismo se hace en el ejemplo que di. La clase cmd.Cmd llama
> automáticamente al método help_xyz() para mostrar información sobre el
> comando do_xyz(), pero es bastante pesado tener que hacer preparar la ayuda
> para cada método, por eso también pensé en unificarlo todo en el do_help() +
> getattr.
>
No veo que esté documentado, pero no es necesario tomarse la molestia: el
comportamiento por defecto es precisamente ése, se muestra __doc__ para
aquellas funciones que no tienen método help.
> 2) quizás un comando shell que permita ejecutar acciones de la shell sin
>> tener que salir de la sesión.
>
>
> No debería ser complicado, llama a subprocess.call o subprocess.Popen con
> shell=True.
>
> http://docs.python.org/lib/module-subprocess.html
>
Esto sí está documentado: cualquier comando que empiece por '!' ejecuta
do_shell(), función que podrías escribir así:
def do_shell(self, s):
subprocess.call(s, shell=True)
Buscando por internet encontré este completo ejemplo de uso de cmd:
http://www.eskimo.com/~jet/python/examples/cmd/console.py
También encontré la librería cmd2, que amplía las posibilidad de cmd:
http://catherine.devlin.googlepages.com/cmd2.html
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es