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.9-cp315-abi3.abi3t-win_amd64.whl (274.0 kB view details)

Uploaded CPython 3.15CPython 3.15+Windows x86-64

jcutils-0.8.9-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl (412.1 kB view details)

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

jcutils-0.8.9-cp315-abi3.abi3t-manylinux_2_28_aarch64.whl (406.0 kB view details)

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

jcutils-0.8.9-cp315-abi3.abi3t-macosx_11_0_arm64.whl (377.0 kB view details)

Uploaded CPython 3.15CPython 3.15+macOS 11.0+ ARM64

jcutils-0.8.9-cp310-abi3-win_amd64.whl (276.2 kB view details)

Uploaded CPython 3.10+Windows x86-64

jcutils-0.8.9-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (414.5 kB view details)

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

jcutils-0.8.9-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (408.7 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

jcutils-0.8.9-cp310-abi3-macosx_11_0_arm64.whl (381.7 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

jcutils-0.8.9-cp310-abi3-macosx_10_12_x86_64.whl (382.5 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: jcutils-0.8.9-cp315-abi3.abi3t-win_amd64.whl
  • Upload date:
  • Size: 274.0 kB
  • Tags: CPython 3.15, CPython 3.15+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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.9-cp315-abi3.abi3t-win_amd64.whl
Algorithm Hash digest
SHA256 eaa7e580109ffb501abb9386f1a11b1cf64db361af0b2d3f0a5f56149b7a0abf
MD5 77db9ee77e245b8604108fbbed35c9f0
BLAKE2b-256 305207cb65a70511ab86edb7a6eecb0a5507b12141d70157e5336533943ea6d1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jcutils-0.8.9-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 412.1 kB
  • Tags: CPython 3.15, CPython 3.15+, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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.9-cp315-abi3.abi3t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f63d88e1f669643641badb8efd8d8d1a954990d67d0c9fd977e0272c460f1843
MD5 c069de55d3fc7853de9c0883f7fda120
BLAKE2b-256 0e8dd9cf1bf66a22074017d5051f843fd9e739de2123b8489e1540142103f5ca

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jcutils-0.8.9-cp315-abi3.abi3t-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 406.0 kB
  • Tags: CPython 3.15, CPython 3.15+, manylinux: glibc 2.28+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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.9-cp315-abi3.abi3t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0db7eb34d9181469c2acb8e93c08b00bb24b76f7cb0f4b4e2696f0f8a1fe1735
MD5 c90988da11783a7ad768a5f9004db164
BLAKE2b-256 4247d23c65d8c1b480676f12c7ec2e04051442aaf440603aae50928fe9a83bf7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jcutils-0.8.9-cp315-abi3.abi3t-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 377.0 kB
  • Tags: CPython 3.15, CPython 3.15+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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.9-cp315-abi3.abi3t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1d46e83480d47d188dd0dcfca6315a1993f5855e0e0a9964b0d7867868583f62
MD5 80c5d12543a949d8c92886857ca13c95
BLAKE2b-256 d65b6ce3de04aba904d27fb32df0409478a55cec55fd3c2876b7c4f297b67dcc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jcutils-0.8.9-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 276.2 kB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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.9-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 2eba05d3b134679fd8b43b89d53d9ea73b1f47dda0a00279fb5a9c6311294adc
MD5 34ba92ee68d51aa5ad9eac1ba4c93676
BLAKE2b-256 94819e0ff513ae876e78bf692928a954f04f887143ed55a52297a20a8fa54a08

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jcutils-0.8.9-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 414.5 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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.9-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f8e7468f07cb8b8a171220aba2f85fe242e7de06cd37bc56bed42ed8b6ca274b
MD5 80e537baf0199cceff5ef4a171ed0668
BLAKE2b-256 1c1e1b687aaec1f5b7728f543d7c71f933d6f035f7096e24eff4255ab1eca758

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jcutils-0.8.9-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 408.7 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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.9-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 31dffb03f603ca3d739f991173ce3c6acd8be1ac14e6fbc5a3b9fade08f83e16
MD5 5dcb149bc3d269e46d1371c19fc554f0
BLAKE2b-256 f5535de77be28af7f84c7bc1a27b661aa7aef9af823de4371adb1165fe438b39

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jcutils-0.8.9-cp310-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 381.7 kB
  • Tags: CPython 3.10+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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.9-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a8533cb1f630d45f81cb9c9b3842d9456beb754e1aa10801a244c25aa6c2c98c
MD5 6ce2bcb58e85f103cfe00974eab28f3d
BLAKE2b-256 b027a1a379a2ff727fdc36afb44342e90cdeb5a449fd8abad7dd62e53c4bb5cd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jcutils-0.8.9-cp310-abi3-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 382.5 kB
  • Tags: CPython 3.10+, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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.9-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 31237923bdfa8a8baf8940028ba7cf10a9c4abb49b97cd465590767f03edd325
MD5 39d05145f195f4ce811dd66a19ae75e2
BLAKE2b-256 e58f807cad4a8be9654cb4186cdf68f6f0979a5eb1bb3ce1ff6293456e0874d0

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.8.9 This release

9 files

0.8.8

9 files

0.8.7

5 files

0.8.6

5 files

0.8.5

5 files

0.8.4

5 files

0.8.3

5 files

0.8.2

5 files

0.8.1

5 files

0.8.0

5 files

0.7.9

5 files

0.7.8

5 files

0.7.7

5 files

0.7.6

5 files

0.7.5

5 files

0.7.4

5 files

0.7.3

5 files

0.7.2

5 files

0.7.1

5 files

0.7.0

5 files

0.6.9

5 files

0.6.8

5 files

0.6.7

5 files

0.6.6

5 files

0.6.5

5 files

0.6.3

5 files

0.6.2

5 files

0.6.1

2 files

0.6.0

2 files

0.5.9

2 files

0.5.8

2 files

0.5.7

2 files

0.5.6

2 files

0.5.5

2 files

0.5.4

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.0

2 files

0.3.9

2 files

0.3.7

2 files

0.3.6

2 files

0.3.5

2 files

0.3.2

1 file

Supported by

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