I think using shlex unconditionally to parse lines sent to cmd.Cmd may not be ideal.
Cmd is very generic and there are many ways to parse lines into arguments:
- no parsing (think Python shells or remote command execution)
- shlex (makes sense for unix users, maybe not others)
- parse_ints as in your example (lexing + conversion)
- optparse (I read about a tool where the interactive command format was the same as the command-line arguments format, which makes is super easy to support all commands in a config file or “session replay” file!)
- many more.
Could the shlex parsing be in a subclass? Or is it small enough to be in the docs? If it’s not small, maybe the base Cmd class needs to be reworked to make it easier to hook into line parsing? |