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
# 安装指定扩展
pip install jcutils[config]
pip install jcutils[mysql]
pip install jcutils[postgresql]
pip install jcutils[pymssql]
pip install jcutils[redis]
pip install jcutils[kafka]
pip install jcutils[hdfs]
pip install jcutils[clickhouse]
pip install jcutils[alibabacloud]
pip install jcutils[huaweicloud]
pip install jcutils[sentry]
pip install jcutils[numpy]
pip install jcutils[elasticsearch]
# 安装所有
pip install 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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

jcutils-0.8.8-cp315-abi3.abi3t-win_amd64.whl (273.5 kB view details)

Uploaded CPython 3.15CPython 3.15+Windows x86-64

jcutils-0.8.8-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl (411.6 kB view details)

Uploaded CPython 3.15CPython 3.15+manylinux: glibc 2.28+ x86-64

jcutils-0.8.8-cp315-abi3.abi3t-manylinux_2_28_aarch64.whl (405.5 kB view details)

Uploaded CPython 3.15CPython 3.15+manylinux: glibc 2.28+ ARM64

jcutils-0.8.8-cp315-abi3.abi3t-macosx_11_0_arm64.whl (376.5 kB view details)

Uploaded CPython 3.15CPython 3.15+macOS 11.0+ ARM64

jcutils-0.8.8-cp310-abi3-win_amd64.whl (275.7 kB view details)

Uploaded CPython 3.10+Windows x86-64

jcutils-0.8.8-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (414.0 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

jcutils-0.8.8-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (408.2 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

jcutils-0.8.8-cp310-abi3-macosx_11_0_arm64.whl (381.2 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

jcutils-0.8.8-cp310-abi3-macosx_10_12_x86_64.whl (382.0 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file jcutils-0.8.8-cp315-abi3.abi3t-win_amd64.whl.

File metadata

  • Download URL: jcutils-0.8.8-cp315-abi3.abi3t-win_amd64.whl
  • Upload date:
  • Size: 273.5 kB
  • Tags: CPython 3.15, CPython 3.15+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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}

File hashes

Hashes for jcutils-0.8.8-cp315-abi3.abi3t-win_amd64.whl
Algorithm Hash digest
SHA256 06ce5f6163b8d46fb5ecdd3f91c172b7980dd7be4dd7248b872d6262b719f2f9
MD5 d2a13a58f40a24855d57b4d97bdc23d9
BLAKE2b-256 68bdb26f9f3d1f77b938ae128f85fc6812257a32ba867c9351d9e0a9596bb170

See more details on using hashes here.

File details

Details for the file jcutils-0.8.8-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: jcutils-0.8.8-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 411.6 kB
  • Tags: CPython 3.15, CPython 3.15+, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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}

File hashes

Hashes for jcutils-0.8.8-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 aa33206de551c6fa0cdd2e318e2e8d3938bb4761642914140c506c7f29f61c9d
MD5 dbbb460eabb44cf6eaad8caf7c34fd00
BLAKE2b-256 cff26b0a603be751ce87060256575672ac53f8dda8d9cdb414f37aa5e10c7f05

See more details on using hashes here.

File details

Details for the file jcutils-0.8.8-cp315-abi3.abi3t-manylinux_2_28_aarch64.whl.

File metadata

  • Download URL: jcutils-0.8.8-cp315-abi3.abi3t-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 405.5 kB
  • Tags: CPython 3.15, CPython 3.15+, manylinux: glibc 2.28+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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}

File hashes

Hashes for jcutils-0.8.8-cp315-abi3.abi3t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a2eca04b2fee9f9331cddd424c90fdd87121ebe59f06e8780bec73db6be45979
MD5 e259bddfcfbbe745239907514b3c1b15
BLAKE2b-256 04d5ae8830a8b39cddf70703770510847c7aeca9653d0be501981e3c6a5288e0

See more details on using hashes here.

File details

Details for the file jcutils-0.8.8-cp315-abi3.abi3t-macosx_11_0_arm64.whl.

File metadata

  • Download URL: jcutils-0.8.8-cp315-abi3.abi3t-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 376.5 kB
  • Tags: CPython 3.15, CPython 3.15+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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}

File hashes

Hashes for jcutils-0.8.8-cp315-abi3.abi3t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d12ba0928cfc94938b0d630c32484c782ea350502a4344c34b9b442f5057e741
MD5 3ce3ade81cd52d4ecd0db6f76c6a4e58
BLAKE2b-256 5ceb5ec32b8a24447a2bf90adb9ad5ffed55b0fc5b0cea4de506a604f5ae006b

See more details on using hashes here.

File details

Details for the file jcutils-0.8.8-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: jcutils-0.8.8-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 275.7 kB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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}

File hashes

Hashes for jcutils-0.8.8-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9760b71c02ac6ccbc6829e810055610767ee9118adf30a433b94b5cb4d399d72
MD5 ce3cc25a55db00fc380161c8fe5b8928
BLAKE2b-256 2c9cac0b4c5ace987efcdc6a5e681632c2d3f9345ea6f83d18ca035ad15986ed

See more details on using hashes here.

File details

Details for the file jcutils-0.8.8-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: jcutils-0.8.8-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 414.0 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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}

File hashes

Hashes for jcutils-0.8.8-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3019c063e2648392a08de1fa4c3a453b5f3ac351eb9155cfe05c4e871da713b1
MD5 bfd5809cda9017525a5b8a600d39eb2a
BLAKE2b-256 52b4fbcdf0f525ddeccef3ea5c9bcd1a761bfe8dfade72a6540e8357db95cffd

See more details on using hashes here.

File details

Details for the file jcutils-0.8.8-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

  • Download URL: jcutils-0.8.8-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 408.2 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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}

File hashes

Hashes for jcutils-0.8.8-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c046cd6f455592089e83a445bf44f7e142e63004371a65480e927f5aad222cac
MD5 2f9d87858a2971a6da964ae62afa7368
BLAKE2b-256 28808f83f0c8c9c0278801cc21bf5f7d428694ed5610e4716338f214f76c3a86

See more details on using hashes here.

File details

Details for the file jcutils-0.8.8-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: jcutils-0.8.8-cp310-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 381.2 kB
  • Tags: CPython 3.10+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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}

File hashes

Hashes for jcutils-0.8.8-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9ab5d9f373445b42ff3b01b662410a0045b4c78bece858e7c7ea5c910740e379
MD5 0891f959dc14985d1982612aac0bcb71
BLAKE2b-256 a928f32547877c2f095b62990efe1e965fcf8deeb88c1b3b5028a41345589c84

See more details on using hashes here.

File details

Details for the file jcutils-0.8.8-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: jcutils-0.8.8-cp310-abi3-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 382.0 kB
  • Tags: CPython 3.10+, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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}

File hashes

Hashes for jcutils-0.8.8-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 63ae32fdfee8e247434de962af8d9f772c39fe2cfabc442db091b071d9d54181
MD5 347aef84d80628677c98cb130eecada5
BLAKE2b-256 31c8e87b718c94520629185ca10deb185ea8357eed50609aadaa55d7d95a50b9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page