pykit-tools

PyPI - Version GitHub Actions Workflow Status GitHub Actions Workflow Status Coveralls PyPI - Wheel PyPI - Python Version PyPI - Implementation GitHub License Read the Docs

Some methods and decorators commonly used in Python development are encapsulated into lib for easy access and use by other projects.

Python开发经常用的一些方法和装饰器,封装成lib方便其他项目接入使用。

1. 安装

pip install pykit-tools

可查看版本变更记录 ChangeLog

2. 介绍

各函数具体使用说明可以 readthedocs 或者直接查看源码注释。

2.1 装饰器decorator

  • handle_exception 用于捕获函数异常,并在出现异常的时候返回默认值
  • time_record 函数耗时统计
  • method_deco_cache 方法缓存结果, 只能缓存json序列化的数据类型

2.2 日志log相关

  • MultiProcessTimedRotatingFileHandler 多进程使用的LoggerHandler
  • LoggerFormatAdapter 日志按照字典字段格式化输出

2.3 设计模式

  • Singleton 单例类

2.4 其他工具集

  • cmd.exec_command 执行shell命令
  • str_tool.compute_md5 根据输入的参数计算出唯一值(将参数值拼接后最后计算md5)
  • str_tool.base64url_encodestr_tool.base64url_decode URL安全的Base64编码

3. 配置

3.1 运行配置

可以通过指定环境变量PY_SETTINGS_MODULE加载配置文件:

export PY_SETTINGS_MODULE=${your_project.settings_file.py}

支持的配置项有:

配置项 类型 说明 默认值
DEBUG bool 是否debug开发模式 False
APP_CACHE_REDIS dict 用于缓存的redis配置,eg: {'host': '127.0.0.1', 'port': 6379, 'db': 0, 'socket_timeout': 10} None

3.2 日志配置

提供以下几种loggers: - pykit_tools 用于消息的父日志记录器,一般用以下细分的logger - pykit_tools.cmd 用于记录cmd.exec_command执行的命令行 - pykit_tools.error 用于处理错误时输出,例如handle_exception中有用到