Skip to main content

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:阿里云 DataWorks
  • s3.client.S3Bucket:AWS S3 兼容存储
  • qiniu.client.QiniuClient:七牛云存储
  • hdfs.client.HdfsClient:HDFS 客户端

消息与通信

  • kafka.client.KafkaClient:Kafka 客户端
  • qyweixin.bot.QyWeixinBot / qyweixin.client.QyWeixinClient:企业微信机器人/API
  • wecom.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)

Table of built distributions (wheels) for jcutils 0.9.1
File
jcutils-0.9.1-cp315-abi3.abi3t-win_amd64.whl CPython 3.15 abi3t, abi3 Windows x86-64 Details
jcutils-0.9.1-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl CPython 3.15 abi3t, abi3 Linux glibc 2.28+ x86-64 Details
jcutils-0.9.1-cp315-abi3.abi3t-manylinux_2_28_aarch64.whl CPython 3.15 abi3, abi3t Linux glibc 2.28+ ARM64 Details
jcutils-0.9.1-cp315-abi3.abi3t-macosx_11_0_arm64.whl CPython 3.15 abi3t, abi3 macOS 11.0+ ARM64 Details
jcutils-0.9.1-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
jcutils-0.9.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details
jcutils-0.9.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
jcutils-0.9.1-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
jcutils-0.9.1-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details

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}

Release history Release notifications | RSS feed

0.9.2

9 release files

This release

0.9.1 This release

9 release files

0.9.0

9 release files

0.8.9

9 release files

0.8.8

9 release files

0.8.7

5 release files

0.8.6

5 release files

0.8.5

5 release files

0.8.4

5 release files

0.8.3

5 release files

0.8.2

5 release files

0.8.1

5 release files

0.8.0

5 release files

0.7.9

5 release files

0.7.8

5 release files

0.7.7

5 release files

0.7.6

5 release files

0.7.5

5 release files

0.7.4

5 release files

0.7.3

5 release files

0.7.2

5 release files

0.7.1

5 release files

0.7.0

5 release files

0.6.9

5 release files

0.6.8

5 release files

0.6.7

5 release files

0.6.6

5 release files

0.6.5

5 release files

0.6.3

5 release files

0.6.2

5 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.9

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.9

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page