cmd2 2.7.0__py3-none-any.whl → 3.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cmd2/__init__.py +41 -38
- cmd2/argparse_completer.py +80 -81
- cmd2/argparse_custom.py +322 -123
- cmd2/clipboard.py +1 -1
- cmd2/cmd2.py +1265 -838
- cmd2/colors.py +270 -0
- cmd2/command_definition.py +13 -5
- cmd2/constants.py +0 -6
- cmd2/decorators.py +41 -104
- cmd2/exceptions.py +1 -1
- cmd2/history.py +7 -11
- cmd2/parsing.py +15 -20
- cmd2/plugin.py +2 -3
- cmd2/py_bridge.py +15 -10
- cmd2/rich_utils.py +451 -0
- cmd2/rl_utils.py +12 -8
- cmd2/string_utils.py +166 -0
- cmd2/styles.py +72 -0
- cmd2/terminal_utils.py +144 -0
- cmd2/transcript.py +7 -9
- cmd2/utils.py +88 -508
- {cmd2-2.7.0.dist-info → cmd2-3.0.0.dist-info}/METADATA +25 -45
- cmd2-3.0.0.dist-info/RECORD +27 -0
- cmd2/ansi.py +0 -1093
- cmd2/table_creator.py +0 -1122
- cmd2-2.7.0.dist-info/RECORD +0 -24
- {cmd2-2.7.0.dist-info → cmd2-3.0.0.dist-info}/WHEEL +0 -0
- {cmd2-2.7.0.dist-info → cmd2-3.0.0.dist-info}/licenses/LICENSE +0 -0
- {cmd2-2.7.0.dist-info → cmd2-3.0.0.dist-info}/top_level.txt +0 -0
|
@@ -1,61 +1,40 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cmd2
|
|
3
|
-
Version:
|
|
3
|
+
Version: 3.0.0
|
|
4
4
|
Summary: cmd2 - quickly build feature-rich and user-friendly interactive command line applications in Python
|
|
5
5
|
Author: cmd2 Contributors
|
|
6
|
-
License:
|
|
7
|
-
|
|
8
|
-
Copyright (c) 2008-2025 Catherine Devlin and others
|
|
9
|
-
|
|
10
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
-
in the Software without restriction, including without limitation the rights
|
|
13
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
-
furnished to do so, subject to the following conditions:
|
|
16
|
-
|
|
17
|
-
The above copyright notice and this permission notice shall be included in
|
|
18
|
-
all copies or substantial portions of the Software.
|
|
19
|
-
|
|
20
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
26
|
-
THE SOFTWARE.
|
|
27
|
-
|
|
6
|
+
License-Expression: MIT
|
|
28
7
|
Keywords: CLI,cmd,command,interactive,prompt,Python
|
|
29
8
|
Classifier: Development Status :: 5 - Production/Stable
|
|
30
9
|
Classifier: Environment :: Console
|
|
31
10
|
Classifier: Operating System :: OS Independent
|
|
32
11
|
Classifier: Intended Audience :: Developers
|
|
33
12
|
Classifier: Intended Audience :: System Administrators
|
|
34
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
35
13
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
36
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
37
14
|
Classifier: Programming Language :: Python :: 3.10
|
|
38
15
|
Classifier: Programming Language :: Python :: 3.11
|
|
39
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
40
17
|
Classifier: Programming Language :: Python :: 3.13
|
|
41
18
|
Classifier: Programming Language :: Python :: 3.14
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
42
20
|
Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
|
|
43
21
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
44
|
-
Requires-Python: >=3.
|
|
22
|
+
Requires-Python: >=3.10
|
|
45
23
|
Description-Content-Type: text/markdown
|
|
46
24
|
License-File: LICENSE
|
|
25
|
+
Requires-Dist: backports.strenum; python_version == "3.10"
|
|
47
26
|
Requires-Dist: gnureadline>=8; platform_system == "Darwin"
|
|
48
|
-
Requires-Dist: pyperclip>=1.8
|
|
27
|
+
Requires-Dist: pyperclip>=1.8.2
|
|
49
28
|
Requires-Dist: pyreadline3>=3.4; platform_system == "Windows"
|
|
29
|
+
Requires-Dist: rich>=14.1.0
|
|
50
30
|
Requires-Dist: rich-argparse>=1.7.1
|
|
51
|
-
Requires-Dist: wcwidth>=0.2.10
|
|
52
31
|
Dynamic: license-file
|
|
53
32
|
|
|
54
33
|
<h1 align="center">cmd2 : immersive interactive command line applications</h1>
|
|
55
34
|
|
|
56
35
|
[](https://pypi.python.org/pypi/cmd2/)
|
|
57
36
|
[](https://github.com/python-cmd2/cmd2/actions?query=workflow%3ACI)
|
|
58
|
-
[](https://codecov.io/gh/python-cmd2/cmd2)
|
|
59
38
|
[](http://cmd2.readthedocs.io/en/latest/?badge=latest)
|
|
60
39
|
<a href="https://discord.gg/RpVG6tk"><img src="https://img.shields.io/badge/chat-on%20discord-7289da.svg" alt="Chat"></a>
|
|
61
40
|
|
|
@@ -69,7 +48,7 @@ Dynamic: license-file
|
|
|
69
48
|
<a href="#projects-using-cmd2">Projects using cmd2</a> •
|
|
70
49
|
</p>
|
|
71
50
|
|
|
72
|
-
[](https://youtu.be/DDU_JH6cFsA)
|
|
73
52
|
|
|
74
53
|
cmd2 is a tool for building interactive command line applications in Python. Its goal is to make it
|
|
75
54
|
quick and easy for developers to build feature-rich and user-friendly interactive command line
|
|
@@ -78,9 +57,14 @@ applications. It provides a simple API which is an extension of Python's built-i
|
|
|
78
57
|
of cmd to make your life easier and eliminates much of the boilerplate code which would be necessary
|
|
79
58
|
when using cmd.
|
|
80
59
|
|
|
60
|
+
> :warning: **`cmd2` 3.0.0 has been released and there are some significant backwards
|
|
61
|
+
> incompatibilities from version `2.x`. Please see the
|
|
62
|
+
> [Migration Guide](https://cmd2.readthedocs.io/en/latest/upgrades/) for tips on upgrading from
|
|
63
|
+
> `cmd2` 2.x to 3.x.**
|
|
64
|
+
|
|
81
65
|
## The developers toolbox
|
|
82
66
|
|
|
83
|
-

|
|
84
68
|
|
|
85
69
|
When creating solutions developers have no shortage of tools to create rich and smart user
|
|
86
70
|
interfaces. System administrators have long been duct taping together brittle workflows based on a
|
|
@@ -88,7 +72,7 @@ menagerie of simple command line tools created by strangers on github and the gu
|
|
|
88
72
|
Unfortunately, when CLIs become significantly complex the ease of command discoverability tends to
|
|
89
73
|
fade quickly. On the other hand, Web and traditional desktop GUIs are first in class when it comes
|
|
90
74
|
to easily discovering functionality. The price we pay for beautifully colored displays is complexity
|
|
91
|
-
required to aggregate
|
|
75
|
+
required to aggregate disparate applications into larger systems. `cmd2` fills the niche between
|
|
92
76
|
high [ease of command discovery](https://clig.dev/#ease-of-discovery) applications and smart
|
|
93
77
|
workflow automation systems.
|
|
94
78
|
|
|
@@ -136,7 +120,7 @@ On all operating systems, the latest stable version of `cmd2` can be installed u
|
|
|
136
120
|
pip install -U cmd2
|
|
137
121
|
```
|
|
138
122
|
|
|
139
|
-
cmd2 works with Python 3.
|
|
123
|
+
cmd2 works with Python 3.10+ on Windows, macOS, and Linux. It is pure Python code with few 3rd-party
|
|
140
124
|
dependencies. It works with both conventional CPython and free-threaded variants.
|
|
141
125
|
|
|
142
126
|
For information on other installation options, see
|
|
@@ -154,20 +138,16 @@ examples.
|
|
|
154
138
|
|
|
155
139
|
## Tutorials
|
|
156
140
|
|
|
157
|
-
-
|
|
158
|
-
-
|
|
159
|
-
|
|
160
|
-
-
|
|
141
|
+
- [cmd2 example applications](https://github.com/python-cmd2/cmd2/tree/main/examples)
|
|
142
|
+
- Basic cmd2 examples to demonstrate how to use various features
|
|
143
|
+
- [Advanced Examples](https://github.com/jayrod/cmd2-example-apps)
|
|
144
|
+
- More complex examples that demonstrate more featuers about how to put together a complete
|
|
145
|
+
application
|
|
161
146
|
- [Cookiecutter](https://github.com/cookiecutter/cookiecutter) Templates from community
|
|
162
147
|
- Basic cookiecutter template for cmd2 application :
|
|
163
148
|
https://github.com/jayrod/cookiecutter-python-cmd2
|
|
164
149
|
- Advanced cookiecutter template with external plugin support :
|
|
165
150
|
https://github.com/jayrod/cookiecutter-python-cmd2-ext-plug
|
|
166
|
-
- [cmd2 example applications](https://github.com/python-cmd2/cmd2/tree/master/examples)
|
|
167
|
-
- Basic cmd2 examples to demonstrate how to use various features
|
|
168
|
-
- [Advanced Examples](https://github.com/jayrod/cmd2-example-apps)
|
|
169
|
-
- More complex examples that demonstrate more featuers about how to put together a complete
|
|
170
|
-
application
|
|
171
151
|
|
|
172
152
|
## Hello World
|
|
173
153
|
|
|
@@ -180,9 +160,8 @@ import cmd2
|
|
|
180
160
|
class FirstApp(cmd2.Cmd):
|
|
181
161
|
"""A simple cmd2 application."""
|
|
182
162
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
self.poutput('Hello World')
|
|
163
|
+
def do_hello_world(self, _: cmd2.Statement):
|
|
164
|
+
self.poutput('Hello World')
|
|
186
165
|
|
|
187
166
|
|
|
188
167
|
if __name__ == '__main__':
|
|
@@ -224,6 +203,7 @@ reproduce the bug. At a minimum, please state the following:
|
|
|
224
203
|
| [tomcatmanager](https://github.com/tomcatmanager/tomcatmanager) | A command line tool and python library for managing a tomcat server | [tomcatmanager](https://github.com/tomcatmanager) |
|
|
225
204
|
| [Falcon Toolkit](https://github.com/CrowdStrike/Falcon-Toolkit) | Unleash the power of the CrowdStrike Falcon Platform at the CLI | [CrowdStrike](https://github.com/CrowdStrike) |
|
|
226
205
|
| [EXPLIoT](https://gitlab.com/expliot_framework/expliot) | Internet of Things Security Testing and Exploitation framework | [expliot_framework](https://gitlab.com/expliot_framework/) |
|
|
206
|
+
| [Pobshell](https://github.com/pdalloz/pobshell) | A Bash‑like shell for live Python objects: `cd`, `ls`, `cat`, `find` and _CLI piping_ for object code, str values & more | [Peter Dalloz](https://www.linkedin.com/in/pdalloz) |
|
|
227
207
|
|
|
228
208
|
Possibly defunct but still good examples
|
|
229
209
|
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
cmd2/__init__.py,sha256=JG-jiy2MMArRTujSiU8usvQpdgQbl3KLTim4tU5SCJw,2278
|
|
2
|
+
cmd2/argparse_completer.py,sha256=8hK5_QUnHgeHVY60C89kMKn2b91AUyDjyq4dykzjCRA,35680
|
|
3
|
+
cmd2/argparse_custom.py,sha256=m5t3zfOe5BNALOmHW42Xdf3zrWYaoV-CJJGaDjJXdDk,67243
|
|
4
|
+
cmd2/clipboard.py,sha256=5PSKTe3uDe2pFFEDUEMMwAmzcyPkbXXz14SOQxFFncg,515
|
|
5
|
+
cmd2/cmd2.py,sha256=IhJxiNs3iGLG_j5AEzX29CBIO1dZtVPLHjd98GlWoLw,271803
|
|
6
|
+
cmd2/colors.py,sha256=gLAU8gjhPwZud9MNVk53RGE9ZSdwspLnye_kReeZKjc,7848
|
|
7
|
+
cmd2/command_definition.py,sha256=4FQgivn-9aZegU5tbUl6XsK_G_gZTMfsbGDortz-Ir8,7992
|
|
8
|
+
cmd2/constants.py,sha256=yDcaeEG4Y2DHmLwUpV-_lEiHkiYUZEuyf9mpDdAzmkg,1773
|
|
9
|
+
cmd2/decorators.py,sha256=_xxagAxlcUROLZowqjW5RYP935uNMEJyr2h8FkWalGw,17356
|
|
10
|
+
cmd2/exceptions.py,sha256=J8Ck0dhusB2cfVksRLkM4WVgBTGQnPdEcU26RfBjjRw,3440
|
|
11
|
+
cmd2/history.py,sha256=QNg5QOe3854hFsu9qw7QlqtnTQvmtXojOWgMZlg6JoQ,14755
|
|
12
|
+
cmd2/parsing.py,sha256=d97-cnnlFi5HLVuoqjMCOhEc3l8LO8jCbwnwXkOgxro,28006
|
|
13
|
+
cmd2/plugin.py,sha256=_KD44QaHPXncT3qSOWXyzesxKvEbJp5tQeMJ569mLNw,827
|
|
14
|
+
cmd2/py.typed,sha256=qrkHrYJvGoZpU2BpVLNxJB44LlhqVSKyYOwD_L_1m3s,10
|
|
15
|
+
cmd2/py_bridge.py,sha256=dpafsQ2fhhDv-PXu1ZOaiLW4ficD0IsZm-y2nGGfdrU,5191
|
|
16
|
+
cmd2/rich_utils.py,sha256=hYD5Cpl1fAYeau3l8NuJIO9SGiC44Ew9vTKHret6QMo,16364
|
|
17
|
+
cmd2/rl_utils.py,sha256=tlDsH5QnN5xlkJT62Q4ZSOHvccXtt1Nm6kcWJQh6cUc,11315
|
|
18
|
+
cmd2/string_utils.py,sha256=7F8ORonOc2xS0ZC56hjhQcnZhonE3lDFdQxij6v54dA,4430
|
|
19
|
+
cmd2/styles.py,sha256=kuekxVEr0kOrDNJJbVFqOl96YqX8M6lheKBCBS1nGSU,2945
|
|
20
|
+
cmd2/terminal_utils.py,sha256=AOk1VjOAzxn7jou2wbALeD6FRIRlKgkQ0VCzIEY51DA,6052
|
|
21
|
+
cmd2/transcript.py,sha256=aD5J7UcU82XNo_nJ6wr98t97OkhOsR04VZwbwb1lJLs,9224
|
|
22
|
+
cmd2/utils.py,sha256=4jlhcHfgr8yoymP2hRPeCr7_1J37vI4MIIBkszyPK6M,32292
|
|
23
|
+
cmd2-3.0.0.dist-info/licenses/LICENSE,sha256=9qPeHY4u2fkSz0JQGT-P4T3QqTWTqnQJ_8LkZUhSdFY,1099
|
|
24
|
+
cmd2-3.0.0.dist-info/METADATA,sha256=vfjnY2YBAuE2vHYAd6rb-yu4cxgNv27pqdkEVAhzGWs,16340
|
|
25
|
+
cmd2-3.0.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
26
|
+
cmd2-3.0.0.dist-info/top_level.txt,sha256=gJbOJmyrARwLhm5diXAtzlNQdxbDZ8iRJ8HJi65_5hg,5
|
|
27
|
+
cmd2-3.0.0.dist-info/RECORD,,
|