执行添加的示例python包
example_maths的Python项目详细描述
#概述
此repo用于创建最佳实践python包。marco bonzanini对包的[定义](https://marcobonzanini.com/2015/07/01/how-to-develop-and-distribute-python-packages/)如下:
>;在python中,一个包含函数、类和变量定义的简单源文件是一个模块……另一方面,包是一个包含一个初始化文件以及其他不同python源文件的文件夹。通常一个包包含几个模块和子包。
此repo假设您已经了解如何设置python模块,并且在进一步操作之前已经了解了如何设置python模块。
#单元测试
对于单元测试,深入研究python 3的[unit testing](http://www.diveintopython3.net/unit-testing.html)示例是一个很好的资源。这是一个简单的罗马数字转换示例,它将引导您了解您需要知道的大部分内容。
#日志记录
如果包处于活动状态时发生错误,日志是向stdout提供信息的一种很好的方法。jorgen schaefer的[日志指南](https://www.loggly.com/ultimate-guide/python-logging-basics/)建立了日志记录约定和开发人员的角色。
由于日志记录不是示例“数学”模块的一部分,我目前认为它可以保存在单独的utils模块中
#错误处理
当然,这会让我们转到自定义错误处理,在这里,Aaron Maxwell的[异常日志记录](https://www.loggly.com/blog/exceptional-logging-of-exceptions-in-python/)文章占据了中心位置。这是您在单元测试示例中使用的错误处理的一个中等改进,但确实允许我们以定义的模式捕获和中继回溯信息。
它还定义了单元测试或日志记录链接都没有提供的反模式,即被认为是不可接受的日志记录。
###注释
- 本教程假设您了解python类。如果没有,请查看python的[类教程](https://docs.python.org/3/tutorial/classes.html)
- 'exc_info'返回'nonetype:none'应该执行'if else raise'语句。
#创建包
- python自己的[打包教程](https://packaging.python.org/tutorials/distributing-packages/)介绍了基本的脚手架。
- peter downs关于[使用pypi设置]的文章(http://peterdowns.com/posts/first-time-with-pypi.html)。它解决了打包教程中没有涉及的将包上载到pypi的一些问题,并向您展示了如何避免使用纯文本文件(无可否认)进行重复身份验证。