No project description provided
Project description
Py-Tools
Py-Tools 是一个实用的 Python 工具集和可复用组件库,旨在简化常见任务,提高 Python 项目的开发效率。
安装
3.7 <= python version <= 3.9
全部安装
pip install hui_tools[all]
可选安装
pip install hui_tools[db-orm, db-redis, excel-tools]
可选参数参考:
extras_require = {
"db-orm": ["sqlalchemy[asyncio]==2.0.20", "aiomysql==0.2.0"], # 数据库orm
"db-redis": ["redis==4.5.4", "aioredis==2.0.1"], # redis
"chatbot": ["requests==2.31.0", "cacheout==0.14.1"], # 飞书、钉钉、企业微信机器人通知
"http-client": ["httpx==0.24.1", "requests==2.31.0"], # http 同步、异步客户端
"time-tools": ["python-dateutil==2.8.2"], # 时间工具类
"excel-tools": ["pandas==1.3.5", "openpyxl==3.0.10"], # excel工具类
}
简单使用
http 客户端举例
import asyncio
from py_tools.enums import RespFmt
from py_tools.logging import logger
from py_tools.connections.http import HttpClient, AsyncHttpClient
async def async_http_client_demo():
logger.debug("async_http_client_demo")
url = "https://github.com/HuiDBK"
# 调用
data = await AsyncHttpClient().get(url, resp_fmt=RespFmt.TEXT)
logger.debug(data)
def sync_http_client_demo():
logger.debug("sync_http_client_demo")
url = "https://github.com/HuiDBK"
text_content = HttpClient().get(url).text
logger.debug(text_content)
async def main():
await async_http_client_demo()
sync_http_client_demo()
if __name__ == '__main__':
asyncio.run(main())
Todo List
连接客户端
- http 同步异步客户端
- MySQL客户端 - SQLAlchemy-ORM 封装
- 消息队列客户端,rabbitmq、kafka
- Minio 客户端
- websocket 客户端
工具类
- 图片操作工具类,例如校验图片分辨率
- 配置解析工具类
- 编码工具类,统一 base64、md5等编码入口
- 认证相关工具类,例如jwt、oauth2等
- 邮件服务工具类
- 常用正则工具类
装饰器
日志
工程目录结构
py-tools/
├── py_tools/
│ ├── chatbot/
│ ├── connections/
│ ├── constants/
│ ├── data_models/
│ ├── decorators/
│ ├── enums/
│ ├── exceptions/
│ ├── meta_cls/
│ └── utils/
├── docs/
├── demo/
├── tests/
├── .gitignore
├── LICENSE
├── README.md
└── requirements.txt
项目模块
- chatbot: 用于构建和管理聊天机器人互动的工具集。
- connections: 用于连接各种服务和 API 的连接管理工具。
- constants: Python 项目中常用的常量。
- data_models: 用于处理结构化数据的数据模型及相关工具。
- decorators: 一系列有用的装饰器,用以增强函数和方法。
- enums: 定义常用枚举类型,方便在项目中使用。
- exceptions: 自定义异常类,用于项目中的错误处理。
- meta_cls: 元类和元编程相关的工具和技术。
- utils: 包含各种实用函数和工具,用于简化日常编程任务。
项目文档
在 docs
目录下存放一些项目相关文档。
示例
在 demo
目录下,您可以找到一些使用 Py-Tools 的示例代码,这些代码展示了如何使用这些工具集实现实际项目中的任务。
demo:https://github.com/HuiDBK/py-tools/tree/master/demo
测试
在 tests
目录下,包含了针对 Py-Tools 的各个组件的单元测试。通过运行这些测试,您可以确保工具集在您的环境中正常工作。
如何使用
-
克隆本项目到本地:
git clone https://github.com/HuiDBK/py-tools.git
-
在您的项目中引入 Py-Tools:
将
py_tools
文件夹复制到您的项目中,然后在项目中使用import
语句引入所需的模块。然后安装项目依赖pip install -r requirements.txt
后续初步完善后会打包到 pypi 中,通过pip就可以直接下载。
贡献
欢迎您对本项目进行贡献。请在提交 Pull Request 之前阅读项目的贡献指南,并确保您的代码符合项目的代码风格。
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
hui-tools-0.1.0.tar.gz
(26.9 kB
view hashes)
Built Distribution
hui_tools-0.1.0-py3-none-any.whl
(37.1 kB
view hashes)
Close
Hashes for hui_tools-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6afc816a59ff2d965e52b11d9f7495856a3ef273d2bc659e6e11981fc1b4cc9 |
|
MD5 | 7ecc0069b8c52dcaf09c0eef056158c7 |
|
BLAKE2b-256 | a641088375ed5044768b24b9aaf7f765f7ac5ac172169056b93653d169c7f452 |