Skip to main content

从 12 因子样板文件中释放您的 python 代码。

项目描述

petri:将你的 python 代码从 12 因子样板文件中解放出来。

蟒蛇版本

蟒蛇版本

代码风格

代码风格

发布

派皮

下载

PyPI - 下载

构建状态

构建状态

文档

文件状态

可维护性

可维护性

执照

执照:无执照

覆盖范围

测试覆盖率

部门

GitHub 存储库的 Libraries.io 依赖状态

概括

导入 petri 为您的应用程序/包装配备:

培养皿使用示例

动机

  • 为了在开发/生产中拥有相同的代码,一切都从一个无辜的 settings.py开始。

  • 为了在它们之间切换,使用 env vars 是 主意 ……

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

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

  • 另外,开发时的彩色原木很漂亮。

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

特征

  • [X] 健全的日志记录默认值:

    • [X] 用于生产的 json 日志。

    • [X] 用户友好(间隔)+ 彩色用于开发。

    • [X] 强制根记录器的格式。

  • [X] 简单设置:

    • [X] 使用signle env var 在配置之间切换。

    • [X] 定义默认配置以防 env var 不存在。

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

    • [X] 通过加载.env覆盖批量设置。

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

    • [X] 延迟加载以避免在导入期间读取文件。

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

安装

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

或者,还可以使用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的环境变量,以覆盖设置:

  • 它的值必须是有效的现有文件的路径。

  • 它的内容必须有名称=值对。

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

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

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

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

当然,您可以同时使用两者。Petri 将尝试加载 selecto envvar,如果未找到,则默认为定义的 kwarg。


有关更多信息,请查看文档

项目详情


下载文件

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

源分布

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

已上传 source

内置分布

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

已上传 py3