python cmd.Cmd auto complete feature

Discussion in 'Python' started by Jean-Michel Pichavant, Mar 8, 2011.

  1. Hello folks,

    I'm trying to autoexpand values as well as arguments using the builtin
    cmd.Cmd class.

    I.E.
    Consider the following command and arguments:

    > sayHello target=Georges

    'Hello Georges !'

    I can easily make 'tar' expand into 'target=' however I'd like to be
    able to expand the value as well, choosing the target within a
    predefined list. ie.
    > sayHello target=<tab>

    target=Georges target=Charles

    However I have the feeling that cmd.Cmd consider the '=' character in
    the way it will not try to expand anything beyond. When double tabbing
    after the '=' it will print the list of available arguemnt (i.e
    ['target'] in the exemple above).
    Ddd anyone successfuly expand values with cmd.Cmd ?

    JM

    Here a code sample illutrating the issue, type the linde "sayHello
    target=<tab><tab>" to trigger the problem:

    import cmd

    class SayHello(cmd.Cmd):
    def do_sayHello(self, line):
    print 'Hello %s !' % line.split('=')[1]

    def complete_sayHello(self, text, line, begidx, endidx):
    cmds = ['target', 'anotherCmd']
    targets = ['Georges', 'Charles']
    if text.startswith('target='):
    completions = [target for target in ['target=Georges',
    'target=Charles'] if target.startswith(text)]
    else:
    completions = [_cmd for _cmd in cmds if _cmd.startswith(text)]
    return completions

    def do_EOF(self, line):
    return True

    if __name__ == '__main__':
    SayHello().cmdloop()
    Jean-Michel Pichavant, Mar 8, 2011
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Achim Domma (Procoders)

    read input for cmd.Cmd from file

    Achim Domma (Procoders), Jun 3, 2005, in forum: Python
    Replies:
    2
    Views:
    8,027
    Peter Otten
    Jun 3, 2005
  2. linkswanted
    Replies:
    1
    Views:
    864
  3. Soumen banerjee

    IDE for python 2.6 (auto complete)

    Soumen banerjee, May 4, 2009, in forum: Python
    Replies:
    2
    Views:
    685
    Detlev Offenbach
    May 4, 2009
  4. Arne Vajhøj
    Replies:
    4
    Views:
    262
    Arne Vajhøj
    Mar 1, 2011
  5. Jean-Michel Pichavant

    Re: python cmd.Cmd auto complete feature

    Jean-Michel Pichavant, Mar 9, 2011, in forum: Python
    Replies:
    0
    Views:
    448
    Jean-Michel Pichavant
    Mar 9, 2011
Loading...

Share This Page