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.4
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.4-cp315-abi3.abi3t-win_amd64.whl
| Download URL | jcutils-0.9.4-cp315-abi3.abi3t-win_amd64.whl |
|---|---|
| Size | 285.7 kB |
| Tags | CPython 3.15 Windows x86-64 abi3 abi3t |
|
SHA-256 checksum How to use checksums |
1ef1f56bb7f31a514310edd54a9da52ee2119d572496eefdb0fd8e70a0d463b6
|
|
BLAKE2b-256 checksum How to use checksums |
e58c67c6d90b79b5f49f8395e1e4bb0ff66d6657140895346384ce73c4c3f5ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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.4-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl
| Download URL | jcutils-0.9.4-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 423.6 kB |
| Tags | CPython 3.15 Linux glibc 2.28+ x86-64 abi3 abi3t |
|
SHA-256 checksum How to use checksums |
30dc9d0ea87d1f9b8c54106247b0b80740306acc8e5379e181a150b26e67efad
|
|
BLAKE2b-256 checksum How to use checksums |
87e0d290b65700033f591bd92dc155b03fa394d2ba05e936cbe28dbc28f56f50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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.4-cp315-abi3.abi3t-manylinux_2_28_aarch64.whl
| Download URL | jcutils-0.9.4-cp315-abi3.abi3t-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 417.8 kB |
| Tags | CPython 3.15 Linux glibc 2.28+ ARM64 abi3 abi3t |
|
SHA-256 checksum How to use checksums |
e2a48dc8849abd6c79442db4a8b1598ea3019d30f070d612371f87d7b024fa09
|
|
BLAKE2b-256 checksum How to use checksums |
3c5adc5ba948d61e8c1ff947cfdcb9384524cf8ea2bfe256d7d99c814fba765c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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.4-cp315-abi3.abi3t-macosx_11_0_arm64.whl
| Download URL | jcutils-0.9.4-cp315-abi3.abi3t-macosx_11_0_arm64.whl |
|---|---|
| Size | 387.1 kB |
| Tags | CPython 3.15 abi3 abi3t macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
35b3d1908842bac54d50139828ebd34da869e1e78d7bc8330ee21542c4eacf78
|
|
BLAKE2b-256 checksum How to use checksums |
6432b925d1f4c9ccf1c0c578812c4ea1d4c005c34a1ad3175251071a903f4cd5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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.4-cp314-cp314t-win_amd64.whl
| Download URL | jcutils-0.9.4-cp314-cp314t-win_amd64.whl |
|---|---|
| Size | 286.0 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ac5d5b4ed6919bc3e9dc07a04f7b006958723a40fd54dd80f47d2c7b30501cdc
|
|
BLAKE2b-256 checksum How to use checksums |
0368898fd78a976527b67cafe168ccf84d705d9530c852e98d4f64477a02875f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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.4-cp314-cp314t-manylinux_2_28_x86_64.whl
| Download URL | jcutils-0.9.4-cp314-cp314t-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 423.0 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
395a6011f248790f55fafbf985ed70fd7669e08bf3e8de77e564882cdc354ecd
|
|
BLAKE2b-256 checksum How to use checksums |
21f38d3cd3a59c61705522749fa3305e392a145c307b9d256c1365261ed18cfc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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.4-cp314-cp314t-manylinux_2_28_aarch64.whl
| Download URL | jcutils-0.9.4-cp314-cp314t-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 417.3 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
eb07dd915c6691b5fd959080ba81c8471322bd1c5fce926e3a7d8611bbfe2c7f
|
|
BLAKE2b-256 checksum How to use checksums |
16697f7b0934d467c2d8b05ffff4249035d8f6bb4c904adacac69c7486e85389
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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.4-cp314-cp314t-macosx_11_0_arm64.whl
| Download URL | jcutils-0.9.4-cp314-cp314t-macosx_11_0_arm64.whl |
|---|---|
| Size | 387.6 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
0722b8db7b97fafa4ed79bc5877e2117c5de8f95237857c2af999e00d6e13c98
|
|
BLAKE2b-256 checksum How to use checksums |
7f7ca60424ac51d7b6d829ee023d2e7749b576c2f861052b3f15de107cc4e0ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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.4-cp314-cp314t-macosx_10_12_x86_64.whl
| Download URL | jcutils-0.9.4-cp314-cp314t-macosx_10_12_x86_64.whl |
|---|---|
| Size | 391.6 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
8c55a448a126defb932800d533963cb6403a365fdfd64366bfd748656ebda9b2
|
|
BLAKE2b-256 checksum How to use checksums |
e0969d067855adfc0389c4f3a442b40cf3c36a79bb56f3e30e71ad58d98bb0e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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.4-cp310-abi3-win_amd64.whl
| Download URL | jcutils-0.9.4-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 287.7 kB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
81fce832b1324f6ac05ba52800b8a0b27284afd8c2edb3334a9315257f9349df
|
|
BLAKE2b-256 checksum How to use checksums |
8acf60e71ed65363dee4603e3414034fa3653d9547bd80c876b104c05d7543d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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.4-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | jcutils-0.9.4-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 425.8 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
f8343a3d778facabfff025bec60873773577b1f7d7d03ec8a4c0125228ab62e1
|
|
BLAKE2b-256 checksum How to use checksums |
a1e643754bfc22f2dd6a8beeaf8ba53ab2d1a61662ec8ef5587a31c92b7e222e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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.4-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | jcutils-0.9.4-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 420.0 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
baa4e2dfa80f5352c127327bc0eb867749ca439227dfc159ca4deed37871ba3b
|
|
BLAKE2b-256 checksum How to use checksums |
2e9134ff2d84c9fea955fc9cb93921dcb17990b412b67776d432317cc69883c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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.4-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | jcutils-0.9.4-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 391.9 kB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
6b18c9fc267abea929a101b7f7f20913678c4b147da0cf3d9f54eac1a59bc5e4
|
|
BLAKE2b-256 checksum How to use checksums |
17958b1ed8d728828b5dc00255aa47489ebe0b33cb90091e7002eb8b741f4ea8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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.4-cp310-abi3-macosx_10_12_x86_64.whl
| Download URL | jcutils-0.9.4-cp310-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 393.4 kB |
| Tags | CPython 3.10 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
5e42ed1a8795f111af41ddfe4abd541b00455e1cf0f7eef80980f56ea4a2059d
|
|
BLAKE2b-256 checksum How to use checksums |
c6f43928e431e2b58751913d9c8369d71dedf78e61edd08884e27c62cd61d13b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","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}
|
Security for jcutils 0.9.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.