提供了几个用于处理I/O的实用程序
pyiotools的Python项目详细描述
概述
提供了几个处理I/O的实用程序:
iohandler类
- 类似于
argparse.argumentparser()
的api,具有iohandler.add_arg()
(相当于argumentparser.add_argument()
)和iohandler.collect_input()
(相当于argumentparser.parse_args()
,还返回一个包含arugment值的命名空间) - 在处理命令行参数时在引擎盖下使用argparse,但使用的是更可读的自定义帮助接口(而且更漂亮!)
- 当没有提供命令行参数时,它将以编程方式构建一个gui来收集用户输入,并根据
iohandler.add_arg()
的"argtype"参数选择小部件。
- 也可以通过将参数值直接提供给
iohandler.collect_input()
作为参数名-值对的dict来编程运行
- argumentparser.add_argument()
函数接受告诉iohandler如何处理可空性、默认值、隐式强制到正确类型、是否
参数是可选的,命令行别名
验证类
- 通过属性访问授予对多个验证器类访问权限的访问器类
- 当前支持将输入值的类型检查和隐式强制转换为以下支持的类型(int、float、bool、str、list、dict、subtype.datetime、pathlib.path,
pathmagic.file,pathmagic.dir)
- 它的属性是:
validate.int
,validate.float
,validate.bool
,validate.str
,validate.list
,validate.dict
,validate.datetime
,validate.path
,
validate.file
,validate.dir
验证器
类
- 目前有integervalidator、floatvalidator、boolvalidator、stringvalidator、listvalidator、dictionaryvalidator、datetimevalidator、pathvalidator,
文件验证程序,目录验证程序
- 其中一些验证器是作为typepy上的包装器实现的,但是api是不同的
- 验证器可以根据需要处理可空性,并且,如果存在等效的typepy检查器,则可以设置严格级别。
- 一些验证器有额外的验证方法来检查有效范围内的值。例如:
validate.int().max_value(7).is_valid(9)
将返回false。 - 通过将返回布尔值的回调传递给验证器,可以向验证器添加其他条件。add_condition()
argparse.argumentparser()
的api,具有iohandler.add_arg()
(相当于argumentparser.add_argument()
)和iohandler.collect_input()
(相当于argumentparser.parse_args()
,还返回一个包含arugment值的命名空间)iohandler.add_arg()
iohandler.collect_input()
作为参数名-值对的dict来编程运行
- argumentparser.add_argument()
函数接受告诉iohandler如何处理可空性、默认值、隐式强制到正确类型、是否
参数是可选的,命令行别名验证类
- 通过属性访问授予对多个验证器类访问权限的访问器类
- 当前支持将输入值的类型检查和隐式强制转换为以下支持的类型(int、float、bool、str、list、dict、subtype.datetime、pathlib.path,
pathmagic.file,pathmagic.dir)
- 它的属性是:
validate.int
,validate.float
,validate.bool
,validate.str
,validate.list
,validate.dict
,validate.datetime
,validate.path
,
validate.file
,validate.dir
验证器
类
- 目前有integervalidator、floatvalidator、boolvalidator、stringvalidator、listvalidator、dictionaryvalidator、datetimevalidator、pathvalidator,
文件验证程序,目录验证程序
- 其中一些验证器是作为typepy上的包装器实现的,但是api是不同的
- 验证器可以根据需要处理可空性,并且,如果存在等效的typepy检查器,则可以设置严格级别。
- 一些验证器有额外的验证方法来检查有效范围内的值。例如:
validate.int().max_value(7).is_valid(9)
将返回false。 - 通过将返回布尔值的回调传递给验证器,可以向验证器添加其他条件。add_condition()
gui
类及其各种模板子类
- gui类和几个模板子类,可以与各种
widgetmanager
对象一起使用,以便轻松地设置gui,其中包含
在一致的api后面抽象的底层qt类。使建立一个简单的gui变得非常快速和容易。是Pyqt5的薄包装。 formgui
用于快速设置表单的类
htmlgui
在单独窗口中呈现html的类
progressbargui
用于包装iterable的类,当iterable被使用时,该类将在单独的窗口中显示进度条
widgetmanager类及其各种widget子类
- 当前支持以下小部件:label、button、checkbox、checkbar、dropdown、entry、text、fileselect、dirselect、calendar、datetimeedit、htmldisplay、progressbar,
表,列表表,听写表
- 有一个一致的api主要是我们设置属性
widgetmanager.active
,widgetmanager.state
,widgetmanager.text
,以及widgetmanager.parent
安装
widgetmanager
对象一起使用,以便轻松地设置gui,其中包含
在一致的api后面抽象的底层qt类。使建立一个简单的gui变得非常快速和容易。是Pyqt5的薄包装。formgui
用于快速设置表单的类
htmlgui
在单独窗口中呈现html的类
progressbargui
用于包装iterable的类,当iterable被使用时,该类将在单独的窗口中显示进度条- 当前支持以下小部件:label、button、checkbox、checkbar、dropdown、entry、text、fileselect、dirselect、calendar、datetimeedit、htmldisplay、progressbar, 表,列表表,听写表
- 有一个一致的api主要是我们设置属性
widgetmanager.active
,widgetmanager.state
,widgetmanager.text
,以及widgetmanager.parent
安装
要安装,请使用pip:
$ pip install pyiotools
或者克隆回购协议:
$ git clone https://github.com/matthewgdv/iotools.git
$ python setup.py install
用法
即将提供使用示例。
贡献
我们欢迎您的贡献,我们非常感谢您的贡献!每一点都有帮助,我们都会给予表扬。
您可以通过多种方式做出贡献:
报告错误
报告错误,请访问https://github.com/matthewgdv/iotools/issues" rel="nofollow">https://github.com/matthewgdv/iotools/issues
如果您报告了一个错误,请包括:
- 您的操作系统名称和版本。
- 有关本地设置的任何有助于故障排除的详细信息。
- 重现错误的详细步骤。
修复错误
查看github问题中的bug。任何带有"bug"和"help wanted"标记的内容都可以向任何希望对其进行修复的人开放。
实现功能
查看github问题以了解特性。任何带有"增强"和"需要帮助"标签的内容都对任何想要实现它的人开放。
编写文档
存储库总是可以使用更多的文档,无论是作为官方文档的一部分,还是在docstring中,甚至在web上的博客文章、文章等中。
提交反馈
发送反馈的最佳方式是在https://github.com/matthewgdv/iotools/issues" rel="nofollow">https://github.com/matthewgdv/iotools/issues上提交问题。
如果您提出新功能:
- 详细解释它的工作原理。
- 尽量缩小范围,以便于实施。
- 请记住,这是一个志愿者驱动的项目,欢迎您的贡献:)
开始吧!
在提交请求之前,请检查它是否符合以下准则:
如果pull请求添加了功能,那么它应该包括测试,并且应该更新文档。为属于外部api的任何函数编写docstring,并添加 readme.md的功能。
如果pull请求修复了一个bug,则应添加测试以证明该bug已被修复。但是,对于错误修复,不需要更新文档。
pull请求应该适用于最新版本的python(当前为3.7)。旧版本可能会附带工作,但不受官方支持。
应该使用内联类型提示,重点是确保像jedi这样的内省和自动完成工具能够尽可能理解代码。
在可能的情况下,应遵循PEP8指南,但鼓励偏离其合理之处并提高可读性。以下PEP8错误代码可以是 安全忽略:E121、E123、E126、E226、E24、E704、W503
此存储库故意不允许PEP8 79字符的限制。因此,任何遵守本公约的捐款都将被拒绝。根据经验,你应该 尽量保持在200个字符以下,除非遍历保留对齐,或者行主要是非算法代码,例如非常长的字符串或函数 电话:
< > >