jcutils - Python 多功能工具库
一个高效封装的 Python 工具库,集成数据库客户端、云服务 API、消息队列及常用开发工具,助力快速开发与运维自动化。
特性
- 🚀 开箱即用:统一接口设计,降低学习成本
- 🛡️ 生产级代码:内置连接池、异常重试、日志记录
- 📦 模块化设计:按需引用,无冗余依赖
- 📝 完整类型注解:Python 3.8+ 兼容,支持 IDE 智能提示
核心模块
Client(客户端)
统一在 jcutils.client 包下,按功能模块化组织:
数据库客户端
-
关系型数据库
mysql.client.MySqlClient/mysql.async_client.AsyncMySQLClient:MySQL 客户端(同步/异步)postgres.client.PostgresClient/postgres.async_client.AsyncPostgresClient:PostgreSQL 客户端(同步/异步)mssql.client.MsSqlClient:SQL Server 客户端sqlite.client.Sqlite3Client:SQLite 客户端odbc.client.PyodbcClient:通用 ODBC 客户端
-
OLAP/大数据
clickhouse.client.ClickhouseClient:ClickHouse 客户端presto.client.PrestoClient:Presto/Trino 客户端hive.client.HiveClient:Hive 客户端
-
NoSQL
mongo.client.MongoClient:MongoDB 客户端redis.client.RedisClient/redis.async_client.AsyncRedisClient:Redis 客户端(同步/异步)elasticsearch.client.EsClient/elasticsearch.client.EsClient6:Elasticsearch 客户端(7.x/6.x)hbase.client.HbaseClient/hbase.thrift2_client.HbaseThrift2Client:HBase 客户端
云服务与存储
maxcompute.client.MaxComputeClient:阿里云 MaxCompute(ODPS)dataworks.client.DataworksClient:阿里云 DataWorkss3.client.S3Bucket:AWS S3 兼容存储qiniu.client.QiniuClient:七牛云存储hdfs.client.HdfsClient:HDFS 客户端
消息与通信
kafka.client.KafkaClient:Kafka 客户端qyweixin.bot.QyWeixinBot/qyweixin.client.QyWeixinClient:企业微信机器人/APIwecom.offiaccount.WeixinOffiaccount/wecom.qyapi.QYWeixinSend:企业微信消息推送weixin.client.WeixinClient:微信公众号工具
其他
ftp.client.FtpClient:FTP 客户端ldap.client.LdapClient:LDAP 客户端email.client.ImaplibClient:IMAP 邮件客户端
Utils(工具集)
所有工具位于 jcutils.utils 包下:
日期时间
datetime_.py:日期时间操作(转换、计算、范围查询)relative_time.py:相对时间计算(如"3分钟前")date_encoder.py:日期 JSON 序列化holiday.py:节假日查询
性能监控
run_time.py/run_func_time.py:函数执行时间装饰器run_line_time.py:行级性能分析装饰器run_log_time.py:带日志的执行时间装饰器
格式化与处理
format_utils.py:字符串格式化(支持宽字符)tabulate_utils.py:表格美化输出html.py/htmlstrip.py:HTML 标签去除
开发工具
try_except_.py:异常捕获装饰器logging_.py:日志配置工具tool_threading.py:多线程工具lazy_import.py:懒加载模块导入convert.py:类型转换工具built_in_tools.py:pickle 序列化工具
配置管理
config_holder.py:配置持有器config_loader.py:配置加载器
系统与网络
os_path.py/os_platform.py/platform_.py:系统平台检测nginx_log.py:Nginx 日志分析apscheduler_.py:Cron 定时任务触发器regeo.py:高德地图逆地理编码
通讯与集成
dingtalk.py/dingtalkoapi.py:钉钉 API 客户端nacos_client.py:Nacos 配置中心客户端
安装
# 安装基础包
pip install jcutils
或
uv add jcutils
# 安装所有
pip install "jcutils[all]"
或
uv add "jcutils[all]"
快速开始
数据库查询
from jcutils.client import ClickhouseClient
client = ClickhouseClient(host="localhost", user="default", passwd="", db="default")
result = client.execute("SELECT * FROM system.tables")
print(result)
消息推送
from jcutils.client import QyWeixinBot
bot = QyWeixinBot()
bot.send_text("Alert: 服务器CPU负载超过90%",key="YOUR_WEBHOOK_KEY")
性能监控
from jcutils.utils.run_func_time import run_time
@run_time
def slow_function():
import time
time.sleep(2)
slow_function() # 输出执行时间
日期处理
from jcutils.utils.datetime_ import day_ops, dt2ts, ts2dt
# 当前时间加一天
print(day_ops(days=1))
# 时间戳转换
print(ts2dt(1640995200))
贡献
欢迎提交 Issue 或 Pull Request!
License
MIT
Release files for jcutils 0.9.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 3.4 MB
Release files / jcutils-0.9.1-cp315-abi3.abi3t-win_amd64.whl
| Download URL | jcutils-0.9.1-cp315-abi3.abi3t-win_amd64.whl |
|---|---|
| Size | 284.2 kB |
| Tags | CPython 3.15 Windows x86-64 abi3 abi3t |
|
SHA-256 checksum How to use checksums |
0a75faa65d92f82bd5cdbec9955398d8db64cca5342c798c4cecede8e5468acb
|
|
BLAKE2b-256 checksum How to use checksums |
e8fc1ced40e262bd8b5dd861670b06b1d1544c64586aca1c07cfb2ed23817356
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / jcutils-0.9.1-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl
| Download URL | jcutils-0.9.1-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 423.4 kB |
| Tags | CPython 3.15 Linux glibc 2.28+ x86-64 abi3 abi3t |
|
SHA-256 checksum How to use checksums |
16a75c7dbf637bbb54e64c4a4f85a836f0d158773dd2dee08169534dea662e04
|
|
BLAKE2b-256 checksum How to use checksums |
d9102b21c6661b9e44c8885ba081eab5ac519f3db4468a08fb7d5eaae260e639
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / jcutils-0.9.1-cp315-abi3.abi3t-manylinux_2_28_aarch64.whl
| Download URL | jcutils-0.9.1-cp315-abi3.abi3t-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 416.8 kB |
| Tags | CPython 3.15 Linux glibc 2.28+ ARM64 abi3 abi3t |
|
SHA-256 checksum How to use checksums |
f45bdab0a15c0db15bc66a8654ec76030ea42261d3fe4147b3e090ba61310b40
|
|
BLAKE2b-256 checksum How to use checksums |
0157a7acab119ec1d6841616d424978a563cd98485b0341e33b26c4c2b2d178a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / jcutils-0.9.1-cp315-abi3.abi3t-macosx_11_0_arm64.whl
| Download URL | jcutils-0.9.1-cp315-abi3.abi3t-macosx_11_0_arm64.whl |
|---|---|
| Size | 385.7 kB |
| Tags | CPython 3.15 abi3 abi3t macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2d761947768eb5f57f56885e1830c60a7aa8edc3fff6ed3ac86c96f0403e125b
|
|
BLAKE2b-256 checksum How to use checksums |
b68323c56e99ef27f8f2257b2ec41dda2d2b6562386075a24b8783df97671244
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / jcutils-0.9.1-cp310-abi3-win_amd64.whl
| Download URL | jcutils-0.9.1-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 286.3 kB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
6e88248831f803738b8217b5488832acbdd02be49173c548d9790e803f8bd84f
|
|
BLAKE2b-256 checksum How to use checksums |
b077da9b300f0df3b754feee2a32b096a2037130bddddbb24e7d94fc72b09882
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / jcutils-0.9.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | jcutils-0.9.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 426.3 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
6374600046204675dd9251fa50586fb389f8fc05aa60e1d5ab41ddc13c7eeba0
|
|
BLAKE2b-256 checksum How to use checksums |
71ba65d1e662f7da61473550a1214ef47cee23bf9eb2e69a72f45b9e2c005424
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / jcutils-0.9.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | jcutils-0.9.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 419.6 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
fb58f20b9a6cab5dbee3f038c59932c4c0088544fb0bff01facbcc48b5053143
|
|
BLAKE2b-256 checksum How to use checksums |
480ff4fa51e79115985fbe6a0a49162d940b051d59d085ef3ab8dc15682e0d6f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / jcutils-0.9.1-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | jcutils-0.9.1-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 390.5 kB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a2728470150c6267e9f45eb82f4943d07f9de35c9fd9504c122a14ceb805851c
|
|
BLAKE2b-256 checksum How to use checksums |
6a17841812dc27b2095420e9b01aa4e8c0c0fc90a2d32580b3b1613f788d6397
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / jcutils-0.9.1-cp310-abi3-macosx_10_12_x86_64.whl
| Download URL | jcutils-0.9.1-cp310-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 392.0 kB |
| Tags | CPython 3.10 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
deb65e4c33365a60a12f3341d83b4a2aa4657d05c25548adeb45f65629c1985f
|
|
BLAKE2b-256 checksum How to use checksums |
92f083186ae4e189a1c6240baf46f64f128b0321d0fd5b504904d3c47dd916f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|