跳转到主要内容

以公司为中心的打包和测试库

项目描述

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二进制分发格式的支持。

贡献者

项目详情


支持者