python utils
Project description
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.Qiniu:七牛云存储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
# 安装指定扩展
pip install jcutils[config]
pip install jcutils[mysql]
pip install jcutils[postgresql]
pip install jcutils[pymssql]
pip install jcutils[boto3]
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[data]
pip install jcutils[elasticsearch]
pip install jcutils[utils]
# 安装所有
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
jcutils-0.6.0.tar.gz
(284.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jcutils-0.6.0.tar.gz.
File metadata
- Download URL: jcutils-0.6.0.tar.gz
- Upload date:
- Size: 284.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57634f0b52276132b1dc3b352d837c4cd0fd3dc5e1116939d7d897e2248a493e
|
|
| MD5 |
4e43be7b9c216e005e818486f8466146
|
|
| BLAKE2b-256 |
1526c931aefe20f4b71d19beb675168f5ea52b0bf336ce0f8839480a44bbbeb8
|
File details
Details for the file jcutils-0.6.0-cp39-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: jcutils-0.6.0-cp39-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 364.3 kB
- Tags: CPython 3.9+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
780cc4fa9e304bd4b3bd62fad05688854d315bc43dd438fa0248e6759fe9acec
|
|
| MD5 |
a3b7851b21fb6679aec11785967da22e
|
|
| BLAKE2b-256 |
c2a3e30ec7fcdd90a0c807b0316945418c55fa9f6242d7612aba82a7e4abc7ca
|