跳转到主要内容

让您的Python代码摆脱12因素模板。

项目描述

petri:让您的Python代码摆脱12因素模板。

Python版本

Python Version

代码风格

Code Style

发布

PyPI

下载次数

PyPI - Downloads

构建状态

Build Status

文档

Documentation Status

可维护性

Maintainability

许可证

License: Unlicense

覆盖率

Test Coverage

依赖

Libraries.io dependency status for GitHub repo

摘要

导入petri将为您的应用/包提供

Sample petri usage

动机

  • 为了使开发/生产具有相同的代码,一切都始于一个无辜的settings.py

  • 为了在这些之间切换,使用环境变量是一个好主意 参考12因素配置

  • 但有时,您可能想覆盖单个变量。

  • 但有时,您可能想覆盖多个变量。

  • 此外,开发时彩色日志看起来很漂亮。

  • 此外,生产中的结构化日志看起来很智能。

功能

  • [X] 合理的默认日志配置

    • [X] 生产环境的json日志

    • [X] 开发时用户友好(有空格)+ 彩色

    • [X] 强制根日志格式化

  • [X] 简易设置

    • [X] 使用单个环境变量在配置之间切换。

    • [X] 如果环境变量不存在,则定义默认配置。

    • [X] 使用环境变量进行细粒度设置覆盖。

    • [X] 通过加载 .env 文件来覆盖批处理设置。

  • 读取包元数据(作者、版本等)

    • [X] 懒加载以避免在导入时读取文件。

    • [X] 仅适用于已安装的包。

安装

使用 poetry poetry add petri 或 pip pip install petri 或(对于开发)pip install git+https://github.com/pwoolvett/petri 进行安装。

可选,也可以安装 color 扩展以使用 colorama 进行彩色日志。

用法

只需定义配置设置并实例化 petri.Petri

#  my_package/__init__.py

from petri import Petri
from petri.settings import BaseSettings
from petri.loggin import LogFormatter, LogLevel


class Settings(BaseSettings):
    SQL_CONNECTION_STRING = 'sqlite:///database.db'  # example setting

class Production(Settings):
    LOG_FORMAT = LogFormatter.JSON
    LOG_LEVEL = LogLevel.TRACE


class Development(Settings):
    LOG_FORMAT = LogFormatter.COLOR  # requires colorama
    LOG_LEVEL = LogLevel.WARNING


pkg = Petri(__file__)

# demo logs
pkg.log.info("log away info level",mode=pkg.settings, version=pkg.meta.version)
pkg.log.warning("this will show", kewl=True)

就这样!查看上面的动画查看运行 python -c “import my_package” 的结果

可选,定义一个名为 env_file 的环境变量,以覆盖设置

  • 其值必须是有效、存在的文件的路径。

  • 其内容必须是 name=value 对。

  • 名称必须是 [MY_PACKAGE]_[SETTING_NAME] 形式(查看上面的动画)。

要选择要使用的设置类,您可以

  • 指向选择器环境变量(例如:对于 my-pkg,这将是指 MY_PKG_CONFIG=my_pkg.settings:Production),或者

  • 在实例化 petri.Petri 时使用 default_config 关键字参数(例如:在上面的示例中使用 pkg = Petri(__file__, default_config=”my_pkg.settings:Production”))。

当然,您可以使用两者。Petri 将尝试加载选择器环境变量,如果找不到,则默认到定义的关键字参数。


有关更多信息,请参阅 文档

项目详情


下载文件

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

源分发

petri-0.24.1.tar.gz (11.9 kB 查看哈希值

上传时间

构建分发

petri-0.24.1-py3-none-any.whl (10.6 kB 查看哈希值

上传时间 Python 3

由以下机构支持

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