提供各种有用的类和函数。
pymiscutils的Python项目详细描述
概述
提供各种有用的类和函数:
缓存
类
- 序列化任何可以被dill pickle到文件中的python对象
- 与dict类似的接口,用于与缓存中的项进行交互:
cache.put()
,cache.get()
,cache.pop()
,以及cache.setdefault()
命名空间
类
- 允许使用项目访问访问和修改其属性
- 构造时用
命名空间
实例递归替换dict - 实现迭代和成员资格测试幻方方法
namespaceobject
类从项访问幻数方法中排除下划线前缀名称,这对于子类化很有用
序列化程序
类
- 序列化/反序列化dill可pickle的任何对象
- 递归地丢弃不可替换的属性,并用
lostobject
实例替换它们
秘密
类
- 序列化,然后加密任何python对象并将其写入文件,反之亦然
- 加密密钥必须从文件中读取,默认情况下为'~/secrets.txt',并且必须在使用前设置
单例类
类
- 从它继承来实现单例(单例的子类
singleton
在构造时将返回相同的实例)
命令行
类
- 在控制台上主动提供选项,允许使用箭头键进行导航
- 支持多选
- 提供是/否
- 隐藏/显示控制台
- 从控制台清除现有行
嵌套分析器类
- 按用户指定的打开/关闭标记递归分析字符串
- 可以忽略特定标记之间的标记(例如,在字符串引号内)
- 返回对象树(当前遍历方法有限)
脚本库
类
- 使用元类将每个方法包装在探查器中,显示每个方法调用的持续时间、参数和返回值,以及脚本对象的repr()
- 将分析信息和打印语句写入日志
- 退出构造函数后,将对象序列化到与日志相同的目录中
- 传递给构造函数的任何kwarg都存储在
scriptbase.arguments
属性中
scriptbase.name
属性自动设置为类在中定义的文件的名称
- 若要与
iotools.iohandler
一起使用,scriptbase.run嫒mode
属性默认情况下自动为"smart",但可以设置为constructor kwarg
上下文管理器类
systrayapp
隐藏控制台并运行一个系统托盘应用程序,该应用程序可以使用回调自定义其选项计时器
统计自实例化以来的时间,并在退出上下文时打印它抑制器
在进入时抑制所有控制台输出和警告,并在退出时重新解决它打印重定向器
将stdout重定向到给定文件nullcontext
在属性访问或调用时始终返回自身,在用作上下文管理器或在其上设置属性时不执行任何操作
其他杂项类
counter
是一种面向对象的替换,用于操作整数变量以进行迭代whocalledme
可以插入以打印调用堆栈环境变量
可在Windows上用于永久获取和设置环境变量嘟嘟声
在Windows上产生持续时间可变的嘟嘟声版本
对象来表示版本,使用比较器magic方法和通配符支持
其他功能
是否在ipython中运行
如果在ipython会话中,则返回true
否则返回false
issubclass_safe
是内置的issubclass
版本,如果候选对象是实例而不是类,则不会引发错误,只返回false
安装
脚本库
类scriptbase.arguments
属性中
scriptbase.name
属性自动设置为类在中定义的文件的名称
iotools.iohandler
一起使用,scriptbase.run嫒mode
属性默认情况下自动为"smart",但可以设置为constructor kwargsystrayapp
隐藏控制台并运行一个系统托盘应用程序,该应用程序可以使用回调自定义其选项计时器
统计自实例化以来的时间,并在退出上下文时打印它抑制器
在进入时抑制所有控制台输出和警告,并在退出时重新解决它打印重定向器
将stdout重定向到给定文件nullcontext
在属性访问或调用时始终返回自身,在用作上下文管理器或在其上设置属性时不执行任何操作counter
是一种面向对象的替换,用于操作整数变量以进行迭代whocalledme
可以插入以打印调用堆栈环境变量
可在Windows上用于永久获取和设置环境变量嘟嘟声
在Windows上产生持续时间可变的嘟嘟声版本
对象来表示版本,使用比较器magic方法和通配符支持是否在ipython中运行
如果在ipython会话中,则返回true
否则返回false
issubclass_safe
是内置的issubclass
版本,如果候选对象是实例而不是类,则不会引发错误,只返回false
要安装,请使用pip:
$ pip install pymiscutils
或者克隆回购协议:
$ git clone https://github.com/matthewgdv/miscutils.git
$ python setup.py install
用法
[用法]
贡献
我们欢迎您的贡献,我们非常感谢您的贡献!每一点都有帮助,我们都会给予表扬。
您可以通过多种方式做出贡献:
报告错误
报告错误,请访问https://github.com/matthewgdv/miscutils/issues" rel="nofollow">https://github.com/matthewgdv/miscutils/issues
如果您报告了一个错误,请包括:
- 您的操作系统名称和版本。
- 有关本地设置的任何有助于故障排除的详细信息。
- 重现错误的详细步骤。
修复错误
查看github问题中的bug。任何带有"bug"和"help wanted"标记的内容都可以向任何希望对其进行修复的人开放。
实现功能
查看github问题以了解特性。任何带有"增强"和"需要帮助"标签的内容都对任何想要实现它的人开放。
编写文档
存储库总是可以使用更多的文档,无论是作为官方文档的一部分,还是在docstring中,甚至在web上的博客文章、文章等中。
提交反馈
发送反馈的最佳方式是在https://github.com/matthewgdv/miscutils/issues" rel="nofollow">https://github.com/matthewgdv/miscutils/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个字符以下,除非遍历保留对齐,或者行主要是非算法代码,例如非常长的字符串或函数 电话:
< > >