A toolbox that includes MQTT, MYSQL, FTP encapsulation, and other gadgets
Project description
# hzgt 工具库
## 项目介绍
hzgt 是一个功能丰富的 Python 工具库,提供了多种实用工具和功能模块,包括数据库操作、网络通信、文件处理、日志管理等。
## 项目结构
```
hzgt/
├── __init__.py # 主要导入core
├── __version/ # 版本信息
│ ├── __init__.py
│ └── version.txt
├── core/ # 核心功能模块 from hzgt import ~
│ ├── CONST.py # 常量定义
│ ├── Decorator.py # 装饰器
│ ├── __init__.py
│ ├── autoconfig.py # 自动配置
│ ├── sysutils.py # 系统工具
│ ├── fileop.py # 文件操作
│ ├── ipss.py # IP地址工具
│ ├── log.py # 日志管理
│ └── strop.py # 字符串操作
├── tools/ # 工具模块 from hzgt.tools import ~
│ ├── SQL/ # SQL数据库操作
│ │ ├── sqlcore/ # SQL核心功能
│ │ ├── MYSQL.py # MySQL操作
│ │ ├── SQLITE.py # SQLite操作
│ │ ├── __init__.py
│ │ └── sqlhistory.py # SQL历史记录
│ ├── SQLs/ # SQL脚本
│ ├── FTP.py # FTP服务端和客户端
│ ├── FileServer.py # 文件服务器
│ ├── INI.py # INI文件操作
│ ├── MQTT.py # MQTT通信
│ ├── REGISTER.py # 函数和类注册器
│ ├── SMTP.py # SMTP邮件发送
│ └── __init__.py
├── cmdline.py # 命令行接口
└── LICENSE # 许可证
```
## 核心功能模块
### 1. 核心模块 (core)
- **字符串操作 (strop)**: 提供字符串处理函数,如变量信息获取、终端颜色字体设置
- **文件操作 (fileop)**: 提供文件操作函数,如字节转换、文件大小获取、文件名生成
- **装饰器 (Decorator)**: 提供实用装饰器,如函数执行时间统计、参数验证、双重参数支持
- **日志管理 (log)**: 提供日志配置功能
- **IP地址工具 (ipss)**: 提供IP地址获取和验证功能
- **自动配置 (autoconfig)**: 提供从环境变量自动配置的功能
- **系统工具 (sysutils)**: 提供系统相关功能,如管理员权限检查、命令执行
### 2. 工具模块 (tools)
- **MQTT通信 (MQTT)**: 提供MQTT消息发布和订阅功能
- **SQL数据库 (SQL)**: 提供MySQL和SQLite数据库操作功能
- **FTP服务 (FTP)**: 提供FTP服务端和客户端功能
- **文件服务器 (FileServer)**: 提供快速构建文件服务器的功能
- **INI文件操作 (INI)**: 提供INI文件读写功能
- **函数和类注册器 (REGISTER)**: 提供函数和类的注册功能
- **SMTP邮件发送 (SMTP)**: 提供邮件发送功能
## 安装方法
```bash
pip install hzgt
```
## 基本使用方法
### 1. 核心模块使用
```python
from hzgt import pic, restrop, set_log, getip
# 使用pic函数获取变量信息
x = 123
print(pic(x))
# 使用restrop函数设置终端颜色
print(restrop("Hello World", f=3, b=4))
# 配置日志
logger = set_log("myapp")
logger.info("Hello from logger")
# 获取本地IP地址
print(getip())
```
### 2. 工具模块使用
#### MQTT通信
```python
from hzgt.tools import Mqttop
# 初始化MQTT客户端
mqtt = Mqttop("broker.hivemq.com", 1883)
mqtt.start()
# 发布消息
mqtt.publish("test/topic", "Hello MQTT")
# 订阅消息
mqtt.subscribe("test/topic")
# 处理消息
while True:
msg = mqtt.getdata()
if msg:
print(msg)
```
#### 数据库操作
```python
from hzgt.tools import Mysqlop, SQLiteop
# MySQL操作
mysql = Mysqlop(host="localhost", port=3306, user="root", passwd="password", database="test")
# 创建表(无需编写SQL语句)
mysql.create_table("users", {"id": "INT PRIMARY KEY", "name": "VARCHAR(255)"})
# 插入数据(无需编写SQL语句)
mysql.insert("users", {"id": 1, "name": "John"})
# 查询数据(无需编写SQL语句)
print(mysql.select("users"))
# 带条件查询(使用人类可读的条件运算符)
print(mysql.select("users", conditions={"id": {">": 0}}))
# SQLite操作
sqlite = SQLiteop("test.db")
# 创建表(无需编写SQL语句)
sqlite.create_table("users", {"id": "INTEGER PRIMARY KEY", "name": "TEXT"})
# 插入数据(无需编写SQL语句)
sqlite.insert("users", {"id": 1, "name": "John"})
# 查询数据(无需编写SQL语句)
print(sqlite.select("users"))
# 带条件查询(使用人类可读的条件运算符)
print(sqlite.select("users", conditions={"id": {">": 0}}))
```
#### FTP服务
```python
from hzgt.tools import Ftpserver, Ftpclient
# 创建FTP服务端
server = Ftpserver()
server.start()
# 创建FTP客户端
client = Ftpclient("127.0.0.1", 2121, "user", "pass")
client.upload("local.txt", "remote.txt")
client.getfile("remote.txt", "local_copy.txt")
```
#### 文件服务器
```python
from hzgt.tools import file_server
# 启动文件服务器
file_server("path/to/files", "0.0.0.0", 8000)
```
#### 邮件发送
```python
from hzgt.tools import Smtpop
# 发送邮件
with Smtpop("smtp.qq.com", 587, "your_email@qq.com", "your_authorization_code") as smtp:
smtp.add_recipient("recipient@example.com")
smtp.send("测试邮件", "这是一封测试邮件")
```
## 文档导航
### 核心模块文档
- [字符串操作 (strop.md)](docs/hzgt/core/strop.md)
- [文件操作 (fileop.md)](docs/hzgt/core/fileop.md)
- [装饰器 (Decorator.md)](docs/hzgt/core/Decorator.md)
- [日志管理 (log.md)](docs/hzgt/core/log.md)
- [IP地址工具 (ipss.md)](docs/hzgt/core/ipss.md)
- [自动配置 (autoconfig.md)](docs/hzgt/core/autoconfig.md)
- [系统工具 (sysutils.md)](docs/hzgt/core/sysutils.md)
### 工具模块文档
- [MQTT通信 (MQTT.md)](docs/hzgt/tools/MQTT.md)
- [FTP服务 (FTP.md)](docs/hzgt/tools/FTP.md)
- [文件服务器 (FileServer.md)](docs/hzgt/tools/Fileop.md)
- [INI文件操作 (INI.md)](docs/hzgt/tools/INI.md)
- [函数和类注册器 (REGISTER.md)](docs/hzgt/tools/REGISTER.md)
- [SMTP邮件发送 (SMTP.md)](docs/hzgt/tools/SMTP.md)
- SQL数据库操作
- [MySQL操作 (MYSQL.md)](docs/hzgt/tools/SQL/MYSQL.md)
- [SQLite操作 (SQLITE.md)](docs/hzgt/tools/SQL/SQLITE.md)
- [SQL历史记录 (sqlhistory.md)](docs/hzgt/tools/SQL/sqlhistory.md)
## 命令行工具
hzgt 提供了命令行工具,可以通过以下命令使用:
```bash
# 快速文件服务器
hzgt fs
# 快速创建FTP服务端
hzgt ftps
# 输出本地局域网内的IP地址列表
hzgt ips
```
## 许可证
本项目采用 MIT 许可证,详情请查看 LICENSE 文件。
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
hzgt-2026.3.23.tar.gz
(111.1 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
hzgt-2026.3.23-py3-none-any.whl
(127.8 kB
view details)
File details
Details for the file hzgt-2026.3.23.tar.gz.
File metadata
- Download URL: hzgt-2026.3.23.tar.gz
- Upload date:
- Size: 111.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a840e3b21864db73eff793f98d4b8815efd1080d8349f46db42fd3a059fd840
|
|
| MD5 |
e228b170a27f8bb772fb85388f59aab9
|
|
| BLAKE2b-256 |
e3b0fbed8ae61cc012933ae17bdeb32cdfb14d5b3007e802802c5fa5b218b9fd
|
File details
Details for the file hzgt-2026.3.23-py3-none-any.whl.
File metadata
- Download URL: hzgt-2026.3.23-py3-none-any.whl
- Upload date:
- Size: 127.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d36c7bc9a8f1070c6c79d44bb4fd1fb74995d61d7eda4f138bc867914de7bfe3
|
|
| MD5 |
777548fe4bf5150b983624f9fabfeac5
|
|
| BLAKE2b-256 |
dc369415bf8a4d8864d7af96547df3529735f300e8b327e3c6fbc50a9f934851
|