以公司为中心的打包和测试库
项目描述
PkgLib:以公司为中心的Python打包和测试库
由AHL友好开源,这个库的目标是为Python开发公司提供一个一站式商店,以最少的麻烦在Linux开发环境中使用Python。
此库有三个主要组件
pkglib:一组打包工具,扩展了Python中多个主要打包工具集 - distribute、pip和zc.buildout。
pkglib.testing:一套测试实用工具,帮助处理服务、数据库、Web驱动程序和覆盖率等,以及一些有用的py.test插件。
pkglib.project_template:一个PasteScript模板,用于生成与pkglib集成的软件包
文档
我的2013年EuroPython演讲的幻灯片在http://github.com/eeaston/pkglib-docs上,API文档发布在https://readthedocs.org/projects/pkglib。
主要特性
PkgLib
包元数据全部来源于文本文件setup.cfg,使得其他相关工具解析包配置更加容易。
高级依赖管理
允许配置内部公司包,这些包的处理方式与第三方库不同。
回溯依赖解析器以解决复杂依赖图中版本解析的“钻石问题”。
理解“dev”和“release”版本流,允许用户在两种模式中操作。
工具可可视化当前虚拟环境中的依赖图。
改进了PyPI交互,提示用户输入凭证,并在出错时返回正确的Unix返回码。
支持安装器搜索路径,允许将egg链接到共享磁盘上的虚拟环境,这对于在大团队中工作在共享文件系统上时是一个重要特性。
保持整洁有序 - 清理虚拟环境site-packages目录中未使用的包。
Py.Test集成,支持python setup.py test
默认配置代码覆盖和质量分析
检测到在Jenkins和Hudson下运行时,切换到基于文件的报告并修改临时文件创建。
用于管理软件“平台”的命令行工具,这是在大量相互依赖的包一起发布时对单个包的抽象。
通过名称而不是URL从内部存储库检查和设置包。
众多的强大的setup.py目标
将独立包文档与使用Sphinx的自动API文档相结合。
使用gcov运行测试,以收集C/C++扩展的代码覆盖率。
与VCS和PyPI同步检查和库
创建Jenkins/Hudson构建。
为构建系统生成与修订相关的开发egg。
生成仅包含测试代码和运行时选项的测试egg。
将包部署到已分版的虚拟环境中。
“包含电池”项目模板
PkgLib.Testing
具有相关Py.Test插件固定件的实用程序
代码执行分析,包括C/C++扩展
管理临时目录
创建虚拟环境
创建启用pkglib的包
以端口安全的方式运行服务器实例,具有保存、恢复和拆卸功能。
支持的服务器包括jenkins、redis、mongodb、Pyramid和(待办事项)最小PyPI实现。
Selenium Webdriver,与Pyramid服务器运行器插件集成。
实现Page Objects模式,以获得更好的Selenium测试结构。
数据库和其他常见类型的模拟实现。
路线图
全面支持git和mercurial。
OSX支持
Python 2.4 -> 3.x支持核心distlib功能。
升级到distribute的最新版本,并将项目与Python打包空间的最新发展保持一致,如distlib。
添加对wheel二进制分发格式的支持。
贡献者
Edward Easton (eeaston@gmail.com)
David Moss (drkjam@gmail.com)
Terry Santegoeds
Ed Catmur (ed@catmur.co.uk)
Ben Walsh
Tim Couper (drtimcouper@gmail.com)
Inti Ocean (me@inti.co)
Andrew Burrows
James Blackburn
Stepan Kolesnik (wigbam@yahoo.co.uk)
奥西恩· Mulvihill (oisin.mulvihill@gmail.com)