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
Metadata
Release files for jcutils 0.9.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 5.3 MB
Release files / jcutils-0.9.3-cp315-abi3.abi3t-win_amd64.whl
| Download URL | jcutils-0.9.3-cp315-abi3.abi3t-win_amd64.whl |
|---|---|
| Size | 284.9 kB |
| Tags | CPython 3.15 Windows x86-64 abi3 abi3t |
|
SHA-256 checksum How to use checksums |
0591ac28a41d18fabc573828f31697d5d5be9806a457636d1b4171054a4bbe3d
|
|
BLAKE2b-256 checksum How to use checksums |
3b1f66289d5f14b91a20c5dcedb8e5b54e0ccb23e15e3a71689127df9766582d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","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.3-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl
| Download URL | jcutils-0.9.3-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 422.9 kB |
| Tags | CPython 3.15 Linux glibc 2.28+ x86-64 abi3 abi3t |
|
SHA-256 checksum How to use checksums |
360fd5e1399c93d0899388992f22ab9fd05c673100f08f02af74e361f6eacd1b
|
|
BLAKE2b-256 checksum How to use checksums |
ef06a8df040e2cf6552339690d6e358887cf000485a07ddd037ab437150d70e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","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.3-cp315-abi3.abi3t-manylinux_2_28_aarch64.whl
| Download URL | jcutils-0.9.3-cp315-abi3.abi3t-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 417.2 kB |
| Tags | CPython 3.15 Linux glibc 2.28+ ARM64 abi3 abi3t |
|
SHA-256 checksum How to use checksums |
0fe01e5d7ef041afabb8d69a5d4583cd7652beb53147bc7f37493517dbca5127
|
|
BLAKE2b-256 checksum How to use checksums |
67e1563aa9a59cf8dc4ac17e3cf7e158adeb51f38bf0bcdde70b419495017af3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","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.3-cp315-abi3.abi3t-macosx_11_0_arm64.whl
| Download URL | jcutils-0.9.3-cp315-abi3.abi3t-macosx_11_0_arm64.whl |
|---|---|
| Size | 386.3 kB |
| Tags | CPython 3.15 abi3 abi3t macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
c69158fb0afdcdc545a23deec1bb85bdaddc5a697a1c3096a936ba861cbfcb0f
|
|
BLAKE2b-256 checksum How to use checksums |
3e3997fab3dced1785fae8c123f4501492838b0be095b8361b28ce49aa7f145f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","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.3-cp314-cp314t-win_amd64.whl
| Download URL | jcutils-0.9.3-cp314-cp314t-win_amd64.whl |
|---|---|
| Size | 285.2 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d12e726be67e142c06c021288be2309c541faca4d64aee1c87ed713a4060de6a
|
|
BLAKE2b-256 checksum How to use checksums |
0bc857f08cde0b7b428e9ea2a8e19c64b9a2bba087e66897edb79aaac68148e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","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.3-cp314-cp314t-manylinux_2_28_x86_64.whl
| Download URL | jcutils-0.9.3-cp314-cp314t-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 422.4 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
aa83f85056487a0d509c1e463a9c6e1e29ed3d23f6ec77f831972faef6222335
|
|
BLAKE2b-256 checksum How to use checksums |
bd67c83e8c0f1949d4355340512101bbf52a4621aa670e8ccef22ea4d30836f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","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.3-cp314-cp314t-manylinux_2_28_aarch64.whl
| Download URL | jcutils-0.9.3-cp314-cp314t-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 416.7 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
f45266c7d84f91b806fcca9c9ad1de4eba5f74862b44c8a76608eb2230a19a56
|
|
BLAKE2b-256 checksum How to use checksums |
447373d10c1d3f8ca88458ed64ba844110d26573e2e6b363d6ca46f0034b4993
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","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.3-cp314-cp314t-macosx_11_0_arm64.whl
| Download URL | jcutils-0.9.3-cp314-cp314t-macosx_11_0_arm64.whl |
|---|---|
| Size | 386.8 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
20fbd05c69798ad5c25283f7971d60bf6f2947721c6d05a6289f11e2672f4aca
|
|
BLAKE2b-256 checksum How to use checksums |
c88a3ca1720e738fae559c54d728686200909825b65ca9ae82ccbc438cc0c1b9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","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.3-cp314-cp314t-macosx_10_12_x86_64.whl
| Download URL | jcutils-0.9.3-cp314-cp314t-macosx_10_12_x86_64.whl |
|---|---|
| Size | 390.8 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
8b54d73078c374408461f90c4742d1114839f8027b6873d0c00474b28e369556
|
|
BLAKE2b-256 checksum How to use checksums |
a382693f3054ceaa809e88c251d844c56b3e79afe04e91340d84b6a49ec6e1e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","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.3-cp310-abi3-win_amd64.whl
| Download URL | jcutils-0.9.3-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 286.9 kB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
88c67d5b50b4e1415fc60ec44b6a1839ec7600d3d5c862a80223125bf4278f9b
|
|
BLAKE2b-256 checksum How to use checksums |
c25c7bece0fbbe83e860f59aeb7455b355be847c000f29b3499b57418f87f9a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","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.3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | jcutils-0.9.3-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 |
6196e8ff11f49802f9b0ce0114b1b5d918ee4334190fcae414e9d6d39b6271df
|
|
BLAKE2b-256 checksum How to use checksums |
d8ca4ecb3b11a6d315350bb55132827e262cc8b160a2ae56a55981fa26fdf541
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","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.3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | jcutils-0.9.3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 419.1 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
9f7e3204b651cf9bd1476e8e1bd019136d941f0356f71a7dc7215845a6d5061a
|
|
BLAKE2b-256 checksum How to use checksums |
6a6d79125eb50248ecbced1696b0d2a815236518e8676cc2a0f55bf5c07e53f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","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.3-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | jcutils-0.9.3-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 391.1 kB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a366da576c8129e4946f57b4218bae977d9691c0154e6858f52b2c78b86e2ea6
|
|
BLAKE2b-256 checksum How to use checksums |
81e6c45d9c7b57af65d5e1b5147ab064eb16d06af646ba8effec4bc5e561df68
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","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.3-cp310-abi3-macosx_10_12_x86_64.whl
| Download URL | jcutils-0.9.3-cp310-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 392.6 kB |
| Tags | CPython 3.10 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
419a1509ad158a2df41cdee4a767d8ecbf8bf989116262bd6114e2ab991e0635
|
|
BLAKE2b-256 checksum How to use checksums |
1758660891b1c84c25116989439d8de071f8fadffd51bb7a56fca692232f7bca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","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}
|