一个面向中大型项目的Python基础工具库,涵盖配置管理、日志、上下文、ID生成、数据处理、设计模式、定时、异常处理等基础功能。
Project description
smartutils
smartutils 是一个面向 Python 的通用工具库,集成了配置管理、上下文、ID生成、数据处理、设计模式、文件操作、日志、定时器、异常处理等常用功能,适用于中大型项目的基础设施搭建和快速开发。
主要功能模块
- 配置管理:支持 YAML 配置加载、工厂模式、配置键管理。
- 上下文管理:基于 contextvars,支持多种上下文变量注册与管理。
- ID 生成:支持多种分布式唯一 ID 生成方案。
- 数据处理:包括类型校验、哈希环、URL、CSV、中文数字等工具。
- 设计模式:内置单例、工厂、弃用等常用设计模式实现。
- 文件操作:文件读写、压缩、路径、锁、类型判断等。
- 日志系统:基于 loguru,支持多级别日志与自定义扩展。
- 定时与计时:Timer 类和 timeit 装饰器,支持同步/异步计时。
- 异常处理:业务异常、系统异常、异常映射与工厂。
- 系统工具:进程管理、平台信息、cgroup 资源管理等。
- 应用层支持:插件、适配器、请求上下文、FastAPI 响应模型等。
安装依赖
项目使用 Poetry 管理依赖,核心依赖如下:
- Python >= 3.8
- PyYAML
- loguru
- contextvars
- python-dotenv
- orjson
可选依赖(数据库、缓存、Web 框架等)详见 pyproject.toml。
安装命令:
poetry install
依赖配置
[project]
dependencies = [
# "smartutils-py[fastapi,mysql,kafka,redis,client-http] @ git+https://github.com/wuruimiao/smartutils.git@main",
"smartutils-py[fastapi,mysql,kafka,redis,client-http]==0.0.7",
]
或
[tool.poetry.dependencies]
# smartutils-py = { git = "https://github.com/wuruimiao/smartutils.git", branch = "main", extras = [
# "fastapi",
# "mysql",
# "redis",
# "auth",
# ] }
smartutils-py = { version = "0.0.7", extras = ["fastapi", "mysql", "redis", "auth"] }
快速开始
from smartutils.init import init
# 初始化 smartutils,加载配置
await init("config.yaml")
# 使用时间工具
from smartutils import time
now = time.get_now_str()
# 使用定时器
from smartutils import timer
@timer.timeit("任务耗时:")
def my_task():
# ... 业务逻辑 ...
pass
my_task()
测试
项目内置丰富的单元测试,运行如下:
pytest -s --cov=smartutils --cov-report=html tests tests_real
贡献
欢迎提交 issue 和 PR,完善文档和功能!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
smartutils_py-0.0.9.tar.gz
(95.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
smartutils_py-0.0.9-py3-none-any.whl
(165.7 kB
view details)
File details
Details for the file smartutils_py-0.0.9.tar.gz.
File metadata
- Download URL: smartutils_py-0.0.9.tar.gz
- Upload date:
- Size: 95.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.10.19 Linux/6.8.0-107-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d98e40d522eb82bf66e759e724e80afb5590df7a1950d1522acf5e2c774b1622
|
|
| MD5 |
0e6855d4eb115a377e318ac9868f964c
|
|
| BLAKE2b-256 |
7b393675d3875402e71ce6d8a18b591b3dcb32dbd8edc7f2e86693a2b7c9811d
|
File details
Details for the file smartutils_py-0.0.9-py3-none-any.whl.
File metadata
- Download URL: smartutils_py-0.0.9-py3-none-any.whl
- Upload date:
- Size: 165.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.10.19 Linux/6.8.0-107-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7da4db1917c7b5344feb81d8bb423973f3166a74f999f1a627c61608761707e
|
|
| MD5 |
543e535f44023df55d5353d7e004a8ae
|
|
| BLAKE2b-256 |
ce9478fd07094e514bd2655f19b9d6750d74de6e16bb99040a85b288ce53a0cc
|