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.0

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.0
File
jcutils-0.9.0-cp315-abi3.abi3t-win_amd64.whl CPython 3.15 abi3t, abi3 Windows x86-64 Details
jcutils-0.9.0-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl CPython 3.15 abi3t, abi3 Linux glibc 2.28+ x86-64 Details
jcutils-0.9.0-cp315-abi3.abi3t-manylinux_2_28_aarch64.whl CPython 3.15 abi3t, abi3 Linux glibc 2.28+ ARM64 Details
jcutils-0.9.0-cp315-abi3.abi3t-macosx_11_0_arm64.whl CPython 3.15 abi3t, abi3 macOS 11.0+ ARM64 Details
jcutils-0.9.0-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
jcutils-0.9.0-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.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
jcutils-0.9.0-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
jcutils-0.9.0-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.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}

Release history Release notifications | RSS feed

0.9.2

9 release files

0.9.1

9 release files

This release

0.9.0 This release

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