跳转到主要内容

Python框架的配置引擎

项目描述

Dectate:Python框架的配置引擎

Dectate是一个强大的Python框架配置引擎。

阅读文档

它被Morepath使用。

构建状态

https://travis-ci.org/morepath/dectate.svg?branch=master https://coveralls.io/repos/github/morepath/dectate/badge.svg?branch=master

变更记录

0.14 (2020-01-29)

  • 移除:移除了对Python 2的支持。

    如果您想使用此版本,必须升级到Python 3。

  • 停止了对Python 3.3的支持。

  • 增加了对Python 3.5、3.6、3.7、3.8和PyPy 3.6的支持。

  • 将 Python 3.7 设置为默认测试环境。

  • 如果禁用了日志记录,则不要计算昂贵的日志信息。

  • 添加 Black 代码格式化器的集成。

0.13 (2016-12-23)

  • 添加一个 Sentinel 类,用于 NOT_FOUND 对象。

  • 在发布期间将通用 wheels 上传到 PyPI。

  • Directive 实例上提供 directive_name 属性。

0.12 (2016-10-04)

  • 重大变更:以前您使用 App.directive 指令定义新指令。这会导致导入混淆:您 必须 在实际使用之前导入定义指令的模块,即使您已经导入了您的应用程序类。

    在 Dectate 的这个版本中,我们更改了定义指令的方式。不再是

    class MyApp(dectate.App):
        pass
    
    @MyApp.directive('foo')
    class FooAction(dectate.Action):
       ...

    现在您编写这个

    class FooAction(directive.Action)
        ...
    
    class MyApp(dectate.App):
        foo = directive(FooAction)

    因此,您直接在需要它们的 app 类上定义指令。

    应该用下划线指令定义替换 private_action_class 的使用。

    class MyApp(dectate.App):
       _my_private_thing = directive(PrivateAction)
  • 使用与其他 Morepath 项目相同的 Git 忽略文件。

  • 如果您将动作上的 app_class_arg 类属性设置为 True,则将 app_class 传递给 performidentifier 等。这样,您可以直接影响应用程序类,而不仅仅是 config 属性中的底层配置。

  • 同样,如果您将工厂类的 app_class_arg 属性设置为 True,则将其传递进去。

  • App 类添加一个 clean 方法。您可以覆盖此方法以引入您自己的清理策略,用于类中不包含在 config 属性中的方面。

  • 我们现在使用 virtualenv 和 pip 而不是 buildout 来设置开发环境。开发文档已相应更新。

  • 在 Tox 和 Travis 中包含 doctests。

0.11 (2016-07-18)

  • 已移除:从 Dectate API 中移除了 autocommit。改为依赖 App 类的 commit 类方法以获得更明确的替代方案。

  • 已移除:从 Dectate API 中移除了 auto_query_tool。改为使用 query_tool(App.commit())

  • 修复指令的 repr,以便至少可以看到它们的名称。

  • 现在,过滤器的执行顺序是可重现的,以确保一致的测试覆盖率报告。

  • 对于 ActionComposite 类,使用标准库中的抽象基类。

  • 使用功能检测而不是版本检测来确保 Python 2/3 兼容性。

  • 提高了测试覆盖率。

  • 为质量保证目的,设置 Travis CI 和 Coverall 作为持续集成服务。

  • 添加对 Python 3.3 和 3.5 的支持。

  • 将 Python 3.5 设置为默认测试环境。

0.10.2 (2016-04-26)

  • 如果在查询工具中未找到应用程序,不要在输出中提及它,以免使结果杂乱。

  • 修复查询工具中的一个主要错误,如果在应用程序中没有结果,则不会搜索任何后续应用程序。

0.10.1 (2016-04-26)

  • autocommitauto_query_tool 创建适当的弃用警告,而不是普通的警告。

0.10 (2016-04-25)

  • 弃用:弃用 autocommit 函数。改为依赖 App 类的 commit 类方法以获得更明确的替代方案。

  • 弃用 已弃用 auto_query_tool 函数。请使用 dectate.query_tool(MyApp.commit()) 代替。因为提交方法返回一个迭代器,包含需要提交的 App 类,所以这会返回正确的信息。

  • topological_sort 函数暴露为公共 API。

  • App 类上添加了 commit 类方法。

  • 报告不同指令之间配置设置和 factory_arguments 的不一致使用。这可以防止新指令为现有指令引入错误的工厂,从而避免错误。

  • 扩展内部文档。

0.9.1 (2016-04-19)

  • 修复了上一个版本中引入的微妙错误。如果使用了仅在该上下文中创建的配置名称的 factory_arguments,则未正确清理,在某些情况下可能会使子类的提交获取与基类相同的配置对象。

0.9 (2016-04-19)

  • 更改 query_tool 的行为,如果找不到指令名称的动作类,则查询结果为空而不是将其作为错误。这使得 auto_query_tool 工作得更好。

  • 引入 auto_query_tool,它使用自动找到的应用类作为默认应用类进行查询。

  • 修复了使用 __builtin__ 的测试,这些测试在 Python 3 上失败。

  • 仅在 factory_arguments 中列出的依赖项也会在创建配置时创建。

0.8 (2016-04-12)

  • 记录如何在 Python 3 中引用内置函数。

  • App 子类上公开 is_committed 方法。

0.7 (2016-04-11)

  • 修复了一些文档问题。

  • 公开 convert_dotted_name 并对其进行文档记录。

  • 实现新的 convert_bool

  • 允许使用指令名称而不是动作子类作为查询的参数。

  • 引入了一个 query_app 函数,这在为查询工具编写测试时特别有用 - 它接受未转换的过滤器参数。

  • 使用来自 six 的新版本 with_metaclass

  • 公开 NOT_FOUND 并对其进行文档记录。

  • 引入一个新方法 filter_get_value,您可以实现它,如果正常的属性获取和 filter_name 不足以使用。

0.6 (2016-04-06)

  • 引入动作查询系统以及允许查询动作的命令行工具。

0.5 (2016-04-04)

  • 重大更改 commit 的签名已更改。只需传递一个或多个要提交的参数即可,而不是传递一个列表。请参阅 #8。

0.4 (2016-04-01)

  • 公开动作的 code_info 属性。特别是 path 在实现指令(如 Morepath 的 template_directory)时可能很有用。同时为组合公开。

  • 报告一些错误;如果设置了 group_class,则不能在动作类中使用 configbeforeafter

  • 如果复合 actions 方法中抛出 DirectiveError,则引发 DirectiveReportError

0.3 (2016-03-30)

  • 记录 importscan 包,该包可以与此包一起使用。

  • 在配置工厂中引入了 factory_arguments 功能,可以用于在配置之间创建依赖关系。

  • 修复了一个问题,其中配置项并不总是正确重用。现在只使用动作类依赖顺序中的第一个,并且不会重新创建。

0.2 (2016-03-29)

  • 在测试期间移除clear_autocommit,因为它无论如何都是无用的。在测试中只需使用显式提交。

  • 添加一个 dectate.sphinxext 模块,可以将其插入Sphinx中,以便正确记录指令。

  • 记录Dectate如何处理双重导入。

0.1 (2016-03-29)

  • 首次公开发布。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

dectate-0.14.tar.gz (52.6 kB 查看哈希值)

上传时间

构建分布

dectate-0.14-py2.py3-none-any.whl (32.6 kB 查看哈希值)

上传时间 Python 2 Python 3

由支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面