python应用程序框架

cement的Python项目详细描述


水泥骨架

Continuous Integration StatusCode Quality: PythonTotal Alerts

cement是python的高级应用程序框架,主要关注命令行接口(cli)。它的目标是为简单和复杂的命令行应用引入一个标准的、功能齐全的平台,并在不牺牲质量的情况下支持快速开发需求。水泥是柔性的,它的使用案例从简单的微观框架到巨型框架的复杂性。无论是单个文件脚本,还是多层应用程序,水泥都是你一直在寻找的基础。

对git的第一次承诺是在2009年12月4日。从那时起,这个框架在设计中经历了多次迭代,并且从一开始就不断地发展和改进。cement是用于命令行和后端应用程序开发的最稳定、最完整的框架。

核心功能

水泥芯特征包括(但不限于):

  • 框架的核心部分可以通过处理程序/接口定制
  • 处理程序系统用接口连接实现类
  • 扩展处理程序接口,可轻松扩展框架功能
  • 配置处理程序支持将多个配置文件解析为一个配置
  • 参数处理程序分析命令行参数并与配置合并
  • 日志处理程序支持控制台和文件日志记录
  • plugin handler提供了一个接口,可以方便地扩展您的应用程序
  • 输出处理程序接口将返回词典呈现到控制台
  • 缓存处理程序接口添加了缓存支持以提高性能
  • 控制器处理程序支持子命令和嵌套控制器
  • hook支持为应用程序增加了一点魔力,也与框架紧密相连
  • 零外部依赖项*(不包括可选扩展)
  • 100%测试覆盖率(pytest
  • 100%符合PEP8(flake8
  • 广泛的api引用(sphinx
  • 在Python3.5+上测试
  • 不支持python 2.x

主线水泥源附带的一些可选扩展确实需要外部依赖项。应用程序开发人员有责任将这些依赖项与其应用程序一起包括在内,因为cement显式地不包括这些依赖项。

更多信息

许可证

cement cli应用程序框架是开源的,并根据bsd许可证(三条)进行分发。请参阅此软件附带的许可证文件。

开发

Docker

这个项目包括一个docker-compose配置,用于设置所有必需的服务和开发依赖项。这是本地开发的推荐路径,也是唯一完全受支持的选项。

下面创建所有必需的docker容器,并在cementdev容器中启动ash shell进行开发。

$ make dev

|> cement <| src #

以上相当于运行:

$ docker-compose up -d

$ docker-compose exec cement /bin/ash

virtualenv

传统的virtualenv助手可用:

$ make virtualenv

$ source env/bin/activate

|> cement <| $

流浪者

另一个选择是经营流浪者促进发展。部分支持此功能,主要用于在Windows上开发/测试,以及在目标操作系统上测试特定问题。

查看已配置系统的列表:

$ vagrant status

Linux

$ vagrant up linux

$ vagrant ssh linux

vagrant@linux $ cd /vagrant

vagrant@linux $ bash scripts/vagrant/bootstrap.sh

vagrant@linux $ make virtualenv

vagrant@linux $ source env/bin/activate

|> cement >| $

窗口

windows开发和支持不是100%完成的。众所周知,cement可以在windows上运行和工作,但是它并不是开发的主要目标,因此,安装程序没有那么简单,目前有几个已知的错误。

以下假设您在基于unix的系统中运行这两个初始命令:

$ make clean

$ vagrant up windows

RDP或登录到桌面/控制台,以及打开powershell终端:

C:\> cd C:\Vagrant

C:\Vagrant> powershell.exe scripts\vagrant\bootstrap.ps1

C:\Vagrant> make virtualenv-windows

C:\Vagrant> .\env-windows\Scripts\activate.ps1

C:\Vagrant> make test-core

请注意,只有核心库在windows上经过了全面测试。

运行测试和符合性

cement有一个严格的策略,即所有代码和测试都符合pep8指南,因此在任何单元测试运行之前都会调用flake8。所有代码提交要求100%测试覆盖率和PEP8符合性:

执行以下操作以运行所有符合性和单元测试:

$ make test

请参阅Makefile以了解所有其他常见的开发操作。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Android深度链接的java模式匹配   jstl在JSP中添加外部资源(CSS/JavaScript/images等)   Java开关环路中断故障   java Appengine通道API开发服务器vs生产   java断言等于Junit中的两个列表   java用“真实数据”建立测试系统   Java中使用番石榴BiMap的词典   java试图在圆周上绘制位图,在实现中找到一些偏移   json Java curl响应   java使用hibernate或JPA获取过程输出的列名   java从Android移动应用程序获取电话号码   java访问嵌套的JsonNode元素,并用逗号分隔   未使用注释的java未经检查或不安全操作   控制台中的java输出为空   java使用Android应用程序的自定义适配器将项目动态添加到列表视图   java如何解决对接口中静态方法的需求?   尝试从其他活动调用数组字符串时发生java错误   仅设备上的java Android NDK致命信号11(SIGSEGV)