一起来写pydu——常用数据结构工具集库

pydu是什么

Prodesire/pydu

pydu 的全称是 Py thon D ata Structures and U tils,它集合了常用的数据结构和工具集,来源于许多知名的开源项目(如 requestsflaskdjangosalt 等),以及贡献者在项目实践中的总结。

为什么写pydu

我们在学习和工作的过程中,可能会阅读不少开源项目的源码,作者设计的一个个精巧有用的数据结构和工具集总能让人或眼前一亮,或可圈可点;也可能在多个项目的实践过程中,总结出一些足够通用和好用的数据结构和工具集。

为什么不把这些优秀的内容记录下来,将至抽象、优化,形成简洁、基础、实用的代码呢?不论是供大家学习还是使用,都会有一定的帮助。

通过pydu,我们可以:

  • 学习思考Pythonic的写法
  • 学习思考Python 2和3的异同,以写出跨Python解释器兼容的代码
  • 学习思考Windows和Linux/Unix的异同,以写出跨平台兼容的代码
  • 学习思考特定功能具体的实现
  • 轻松集成到项目中使用

一个例子

在运维领域,常常会有这样场景,我们希望运行一段命令,根据命令的结果进一步解析。容易采坑的地方在于结果的语言不同导致分析出错,那么就需要确保运行结果都是特定语言(比如说英文)。 pydu.cmd.run_with_en_env 就是为了解决这个问题。

  1. 思考在Windows和POSIX环境下如何设置前置条件确保运行命令是英文的。
  2. Windows上通过命令行中的chcp可以切换至语言环境,则思考实现 pyu.system.chcp ;Linux上通过环境变量可以切换语言环境,则通过env来实现
  3. 完成前置条件后,最终调用 pydu.cmd.run 来运行命令

在实现run_with_en_env的时候,我们就需要考虑平台兼容性、Python解释器兼容性等问题,是一个非常不错的促进学习思考的手段。

又要造轮子

程序员最喜欢造轮子了,一遍又一遍,孜孜不倦。pydu似乎是个轮子,但这个轮子和现有的有点不同。它:

  • 所关注的数据结构侧重点是特定场景的能有更简单的使用方式,而非算法上的基础数据结构。所以pydu就注定不会像 algorithms 一样实现所有的基础数据结构。
  • 所关注的工具集侧重在运维、Web开发、数据科学等领域中常用的内容,如果下载文件、运行命令、网络连通检查、IP合法性检查等。

如何贡献

我们非常欢迎小伙伴们贡献代码,一起将之变得实用和完美。在贡献代码时,我们需要:

  • 思考这段代码是否通用和实用。
  • 提供测试用例。不然我们的代码可能似平原跑马,易放难收。
  • 提供docstring或文档。不然您高深的思想,我们可能参不透。

最后,感谢大家的阅读!

责编内容来自:编程小记 (源链) | 更多关于

阅读提示:酷辣虫无法对本内容的真实性提供任何保证,请自行验证并承担相关的风险与后果!
本站遵循[CC BY-NC-SA 4.0]。如您有版权、意见投诉等问题,请通过eMail联系我们处理。
酷辣虫 » 综合编程 » 一起来写pydu——常用数据结构工具集库

喜欢 (0)or分享给?

专业 x 专注 x 聚合 x 分享 CC BY-NC-SA 4.0

使用声明 | 英豪名录