从 12 因子样板文件中释放您的 python 代码。
项目描述
petri:将你的 python 代码从 12 因子样板文件中解放出来。
蟒蛇版本 |
|
代码风格 |
|
发布 |
|
下载 |
|
构建状态 |
|
文档 |
|
可维护性 |
|
执照 |
|
覆盖范围 |
|
部门 |
概括
导入 petri 为您的应用程序/包装配备:
使用python-dotenv处理 Dotenv 文件。
包元数据(用于已安装的包),使用importlib-metadata。
使用pydantic进行设置。
使用structlog记录配置。
通过 ENV 环境变量处理环境切换(prod/dev/test)。
动机
特征
[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 -py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 1e5e9868b15aed1642f57ef32cafbba712607489a330249eee3f90cfc952cd0c |
|
| MD5 | 2a9f9c83e2ca325d1b98890d4e428954 |
|
| 布莱克2-256 | 3e654dedb791bbcec33d83d0889360b860b84e1f709a2710198cb18e6eee1bf5 |