1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
============================
Alternatives to cmd and cmd2
============================
For programs that do not interact with the user in a continuous loop -
programs that simply accept a set of arguments from the command line, return
results, and do not keep the user within the program's environment - all
you need are sys_\ .argv (the command-line arguments) and optparse_
(for parsing UNIX-style options and flags).
.. _optparse: http://docs.python.org/library/optparse.html#module-optparse
.. _sys: http://docs.python.org/library/sys.html#module-sys
.. _curses: http://docs.python.org/library/curses.html#module-curses
.. _cmd: http://docs.python.org/library/cmd.html#module-cmd
The curses_ module produces applications that interact via a plaintext
terminal window, but are not limited to simple text input and output;
they can paint the screen with options that are selected from using the
cursor keys. However, programming a curses_-based application is not as
straightforward as using cmd_.
Several packages in PyPI enable interactive command-line applications
approximately similar in concept to cmd_ applications. None of them
share cmd2's close ties to cmd, but they may be worth investigating
nonetheless.
* CmdLoop_
* cly_
* CmDO_ (As of Feb. 2010, webpage is missing.)
* pycopia-CLI_
cmdln_, another package in PyPI, is an extension to cmd_ and, though it
doesn't retain full cmd_ compatibility, shares its basic structure with
cmd_.
.. _cmdln: http://pypi.python.org/pypi/cmdln
.. _CmdLoop: http://pypi.python.org/pypi/CmdLoop
.. _cly: http://pypi.python.org/pypi/cly
.. _CmDO: http://pypi.python.org/pypi/CmDO/0.7
.. _pycopia-CLI: http://pypi.python.org/pypi/pycopia-CLI/1.0
I've found several alternatives to cmd in the Cheese Shop - CmdLoop, cly, CMdO, and pycopia. cly looks wonderful, but I haven't been able to get it working under Windows, and that's a show-stopper for many potential sqlpython users. In any case, none of the alternatives are based on cmd - they're written from scratch, which means that a cmd-based app would need complete rewriting to use them. I like sticking close to the Standard Library whenever possible. cmd2 lets you do that.
|