跳转到主要内容

解释器框架

项目描述

概述

kmdd 允许构建具有强大自动补全功能的命令行驱动的shell。

kmdd.Kmd类从cmd.Cmd继承,并在以下方面进行了扩展

  1. kmdd.Kmd不使用Python的readline模块,而是使用替代的rl readline绑定。

  2. readline补全的设置和清理分别移动到prelooppostloop。子类必须确保调用其父类的实现。

  3. 如果命令名称不完整,则自动扩展为唯一名称。

  4. 可以通过扩展aliases字典来定义命令别名。别名名称适用于所有do_complete_help_属性。

  5. 以“#”开头的行被视为注释。将调用新的comment方法,并传入行作为参数。

  6. 现在可以配置shell_escape_chars。默认为“!”。

  7. 如果设置了history_file,kmdd.Kmd将在prelooppostloop中加载和保存历史记录。

  8. 新的run方法封装了Kmd的完整执行周期。

包内容

kmdd.Kmd

实现基于cmd.Cmd的命令外壳的机制。

kmdd.completions

实现了一套现成的完成功能。

kmg.quoting

定义了编写完成功能的常量和函数。

文档

有关更多详细信息,请参阅API文档

开发

kmd开发托管在GitHub,其中还包含一个问题跟踪器

安装

安装需要Python 2.7或更高版本。

注意:kmd使用了包含C扩展的rl库。查看其安装说明,并确保所有依赖项都已安装。

要安装kmd包,请输入

pip install kmd

变更日志

2.4 - 2022-11-17

  • 升级到rl 3.1。[stefan]

  • 更新readline 8.2的文件名完成。[stefan]

  • 在完成和帮助中隐藏do_EOF。[stefan]

  • 在双引号之间引用换行符。[stefan]

  • 改进文档和示例。[stefan]

  • 在tox.ini中替换已弃用的python setup.py test。[stefan]

  • 从setup.py中删除已弃用的test_suite。[stefan]

  • install_requires中删除setuptools。[stefan]

  • 添加一个pyproject.toml文件。[stefan]

  • 在sdist中包含测试,但在wheel中不包含。[stefan]

2.3 - 2019-03-20

  • 当遇到EOF时清除lastcmd以避免无限循环。参见Python 问题13500。[stefan]

  • 取消显式GPL,因为PSF许可证本身就是GPL兼容的。[stefan]

  • 使用新钩子更新文件名完成。[stefan]

  • 停止在完成中隐藏引用模块,并将其作为kmd.quoting提供。[stefan]

  • 停止使用rl.completer.reset,因为它会覆盖~/.inputrc。[stefan]

  • 停止使用2to3。[stefan]

  • 要求rl >= 3.0。[stefan]

2.2 - 2012-05-10

  • 当使用参数调用Kmd.run时,不尊重字符串和文件名引用。[stefan]

  • 切换到更令人愉悦的Sphinx主题。[stefan]

  • 要求rl >= 2.2。[stefan]

2.1.2 - 2012-04-14

  • 更新文档更多。[stefan]

2.1.1 - 2012-03-29

  • 更新文档。[stefan]

2.1 - 2011-11-05

  • 添加Kmd.input方法作为子类的扩展点。[stefan]

  • 确保在主机文件缺失时主机名完成仍然有效。[stefan]

  • 要求rl >= 2.0.1。[stefan]

2.0 - 2011-10-06

  • 添加Kmd.aliases字典来定义命令别名。[stefan]

  • 重构Kmd.do_help以方便自定义。[stefan]

  • 确保错误信息输出到stderr。[stefan]

  • 切换到基于Sphinx的精美文档。[stefan]

  • 要求rl >= 2.0。[stefan]

1.0 - 2011-07-14

  • 初始版本。

项目详情


下载文件

下载您平台上的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源代码分发

kmd-2.4.tar.gz (20.4 kB 查看哈希值)

源代码

构建分发

kmd-2.4-py2.py3-none-any.whl (16.7 kB 查看哈希值)

上传于 Python 2 Python 3

由以下组织支持