Después de probar un rato con el framework Cmd.cmd en python, noté un problema que no sé qué hacer. Además creo que esto funciona unas horas antes (o estoy loco), así que esto es aún más extraño.Finalización de pestañas con Cmd.cmd de Python
Tengo el siguiente código de ejemplo, probado en sistemas Windows y Linux (por lo que no es un problema de Windows), pero la finalización de pestañas simplemente no funciona.
Si utilizo el exactamente el mismo código en Python 2 que funciona en el sistema Linux (no en el de Windows aunque)
import cmd
class Shell (cmd.Cmd):
def do_test (self, params):
print('test: ' + params)
def do_exit (self, params):
return True
def do_quit (self, params):
return True
if __name__ == '__main__':
x = Shell()
x.cmdloop()
¿Conoce por qué sucede esto, o lo que puede hacer , para hacer que la tabulación sea posible?
¿Has implementado el nombre completo aquí? –
Las funciones 'complete_XY' son para completar los argumentos (de modo que cuando ingreso' test f' podría ofrecerme 'test foobar'), pero la finalización de los comandos se genera automáticamente a partir de todas las funciones' do_XY' disponibles. Además, cuando presiono la pestaña, simplemente coloca una pestaña en la línea de comandos, mientras que no debería pasar nada cuando no hay una finalización compatible (porque las funciones devuelven una lista vacía). – poke