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.0
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.0-cp315-abi3.abi3t-win_amd64.whl
| Download URL | jcutils-0.9.0-cp315-abi3.abi3t-win_amd64.whl |
|---|---|
| Size | 282.8 kB |
| Tags | CPython 3.15 Windows x86-64 abi3 abi3t |
|
SHA-256 checksum How to use checksums |
6935e5115a9639db2e007bf308c48717936351e591591667bd664afab2f28488
|
|
BLAKE2b-256 checksum How to use checksums |
73bac8a9f7bfaf188f1046f937e9965b3934c94613b5fdb250a263f217ff622f
|
| 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.0-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl
| Download URL | jcutils-0.9.0-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 422.0 kB |
| Tags | CPython 3.15 Linux glibc 2.28+ x86-64 abi3 abi3t |
|
SHA-256 checksum How to use checksums |
b5d49e76be28c26c1a32375fc5ef7c9763ccd5e95a5a86660c0724ce62aa07a9
|
|
BLAKE2b-256 checksum How to use checksums |
e1f6c59823e6f1d30df96659d85804eedd21e335b7d9e378a4a0b8b4deb12822
|
| 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.0-cp315-abi3.abi3t-manylinux_2_28_aarch64.whl
| Download URL | jcutils-0.9.0-cp315-abi3.abi3t-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 415.4 kB |
| Tags | CPython 3.15 Linux glibc 2.28+ ARM64 abi3 abi3t |
|
SHA-256 checksum How to use checksums |
29908a544a8b2a0e0af87ec5729b5b5cecba4050b4b8d64e365d0a023fbb858e
|
|
BLAKE2b-256 checksum How to use checksums |
840d3fb51ac118176cdcafc380eeb312e2a28c6d5c0cafd3a0688d606164481f
|
| 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.0-cp315-abi3.abi3t-macosx_11_0_arm64.whl
| Download URL | jcutils-0.9.0-cp315-abi3.abi3t-macosx_11_0_arm64.whl |
|---|---|
| Size | 384.2 kB |
| Tags | CPython 3.15 abi3 abi3t macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
e287aa524c58e8a7d4d252f8125fd015bf589613aeadffcbd67fc8698f73174f
|
|
BLAKE2b-256 checksum How to use checksums |
da26621f3989ea5535af7b9b62f36ce96e8e67f292401fe2e58ca827e3c04a96
|
| 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.0-cp310-abi3-win_amd64.whl
| Download URL | jcutils-0.9.0-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 284.9 kB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
3a5b3f1ff56ac513e60c416dc39b215fcc35fdbbee715cdcb31d0013ff069250
|
|
BLAKE2b-256 checksum How to use checksums |
883d68f256b851e2fbabe1479883f9d1931bbcf5978f295dd490956199c1ef9f
|
| 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.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | jcutils-0.9.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 424.9 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
b9a390e7946f03828cadbac7f5cf1c02b1a620ccccacb641caf28a4782705e50
|
|
BLAKE2b-256 checksum How to use checksums |
8ce764a2bdda91a37a88f3b085a7a7a7aa02e6c49a36a3c3046061b0d84cb59c
|
| 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.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | jcutils-0.9.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 418.2 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
4a19f38c47e3d43d46edeab612dc37efc3d7483613e3f894410a0fd45b841fa7
|
|
BLAKE2b-256 checksum How to use checksums |
f6be131fbf703f8ea8d92eac8f4d0faea4ebac99097b17907ece0b64245220b2
|
| 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.0-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | jcutils-0.9.0-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 389.1 kB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
3ee008fc35f13d3a5aacb591a88396450c018dd598b4e021190938a6cf8eb14f
|
|
BLAKE2b-256 checksum How to use checksums |
08d96d94acab022ccc33446da7cbba9966f25f119e7bc44c6958c0f4a7b67217
|
| 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.0-cp310-abi3-macosx_10_12_x86_64.whl
| Download URL | jcutils-0.9.0-cp310-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 390.6 kB |
| Tags | CPython 3.10 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
db1dc6967e973c8f12ba66202232049ce86e0f072c44e784f7e611027d71ee5b
|
|
BLAKE2b-256 checksum How to use checksums |
41edcfa64a91605a2822caef4c021229bf3606f11b1013274189869b85a83a38
|
| 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}
|