让您的Python代码摆脱12因素模板。
项目描述
petri:让您的Python代码摆脱12因素模板。
Python版本 |
|
代码风格 |
|
发布 |
|
下载次数 |
|
构建状态 |
|
文档 |
|
可维护性 |
|
许可证 |
|
覆盖率 |
|
依赖 |
摘要
导入petri将为您的应用/包提供
使用python-dotenv处理dotenv文件。
使用importlib-metadata处理包元数据(对于已安装的包)。
使用pydantic设置。
使用structlog进行日志配置。
通过ENV环境变量处理环境切换(prod/dev/test)。
动机
功能
[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 将尝试加载选择器环境变量,如果找不到,则默认到定义的关键字参数。
有关更多信息,请参阅 文档。
项目详情
下载文件
下载适用于您的平台文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。