A toolbox that includes MQTT, MYSQL, FTP encapsulation, and other gadgets
Project description
# hzgt
[](https://gitee.com/HZGT/hzgt/tree/master/LICENSE) [](https://pypi.python.org/pypi/hzgt/)
[](https://deepwiki.com/HZGT/hzgt)
# 目录 DIRECTORY
* [简介](#introduction)
* [运行环境 Operating environment](#operating-environment)
* [安装方式 Installation](#installation)
* [API封装 API encapsulation](#api-encapsulation)
* 类[MQTT](#class-mqtt)
* 类[MYSQL](#class-mysql)
* 类[Ftpserver](#class-ftpserver)
* 类[Smtpop](#class-smtpop)
* 类[AutoConfig](#class-autoconfig)
* 函数[Fileserver](#func-fileserver)
* 函数[readini](#func-readini)
* 函数[saveini](#func-saveini)
* 函数[getip](#func-getip)
* 函数[pic](#func-pic)
* 函数[restrop](#func-restrop)
* 函数[set_log](#func-set_log)
* 装饰器[vargs](#decorator-vargs)
------------------------------------------------------
### Introduction
### 简介
**包含 `MQTT` / `MYSQL` / `FTP` / `INI` 封装和其它小工具的工具箱**
**A toolbox that includes `MQTT` `MYSQL` `FTP` `INI` encapsulation, and other gadgets**
```text
主要封装 Primary package:
[class]:
Mqttop():
封装 MQTT 类, 支持 发送信息 和 接收信息
Encapsulates MQTT classes that support sending and receiving information
Mysqlop():
封装 MYSQL 类, 支持操作 MYSQL 数据库, 包括 [增/删/改/查]
encapsulating MYSQL classes, supporting operations on MYSQL Database, including [ADD/DELETE/MODIFY/QUERY]
Ftpserver():
创建 FTP 服务端
Create an FTP server
Ftpclient():
创建 FTP 客户端
Create an FTP client
[func]:
readini()
读取ini文件并返回嵌套字典
Read the ini file and return the nested dictionary
saveini()
保存嵌套字典为ini文件
Save the nested dictionary as an ini file
Fileserver()
快速构建文件服务器
Build file servers quickly
[decorator]:
gettime():
一个装饰器, 获取函数执行的时间
A decorator that gets the time when the function was executed
vargs():
一个装饰器, 根据提供的有效参数集合来验证函数的参数
A decorator that verifies the parameters of a function against a set of valid arguments provided
[cmdline]:
hzgt fs:
快速文件服务器(局域网内文件传输)
Quick file server (file transfer within the local network)
hzgt ftps:
在本地局域网内快速创建FTP服务端
Create an FTP server quickly within the local network
hzgt ips:
输出本地局域网内的IP地址列表
Output a list of IP addresses within the local network
其它小工具 Others are commonly used:
[func] pic():
获取变量名的名称 / 类型 / 值
Get the name / type / value of the variable name
[func] restrop():
返回字符串的终端颜色字体[字体模式 / 字体颜色 / 字体背景], 可使用print()打印
Returns the color font of the string [font mode / font color / font background],
which can be printed using print().
```
------------------------------------------------------
### Operating environment
### 运行环境
---
- 可行版本[Feasible version]: >= `3.8`
- 建议版本[Suggested version]: == `3.11`
---
### Installation
`安装方式 Installation`
---
使用 `pip install hzgt` 安装 `hzgt` 库
use `pip install hzgt` to install the python library called hzgt
```commandline
pip install hzgt
```
---
### API encapsulation
### API封装
## class MQTT
`类[class]: Mqttop()`
`Mqttop` 是一个用于简化 `MQTT通信` 的 Python 类, 它封装了 `MQTT` 客户端的基本功能, 包括 **连接**、**发布**、**订阅**和**断开连接**等操作.以下将介绍 `Mqttop` 类的使用方法和内部机制.
`Mqttop` is a Python class for simplifying `MQTT communication`, which encapsulates the basic functionality of an `MQTT` client, including operations such as **connecting**, **publishing**, **subscribing**, and **disconnecting**. The following describes in detail how to use the `Mqttop` class and how it works.
详见 [MQTT.md](doc/MQTT.md)
## class MYSQL
`类[class]: Mysqldbop()`
`Mysqlop` 类提供了一系列操作 `MySQL` 数据库的方法, 包括**连接管理**、**数据读写**、**数据库和表管理**、**权限管理**等.
The `Mysqlop` class provides a series of methods for manipulating `MySQL` databases, including **connection management**, **data reading** and **writing**, **database and table management**, **rights management**, etc.
详见 [MYSQL.md](doc/MYSQL.md)
## class Ftpserver
`类[class]: Ftpserver()`
`Ftpserver` 类提供了 `FTP服务端` 的操作API.
The `Ftpserver` class provides the API of the `FTP server`.
详见 [FTPS.md](doc/FTPS.md)
## class Smtpop
`类[class]: Smtpop()`
`Smtpop` 类提供了便捷发送邮件的功能.
The `Smtpop` class provides a convenient function for sending emails.
详见 [SMTP.md](doc/SMTP.md)
## class AutoConfig
`类[class]: AutoConfig()`
`AutoConfig` 类提供了自动获取配置的功能.
The `AutoConfig` class provides the ability to automatically obtain configuration.
详见 [AutoConfig.md](doc/AutoConfig.md)
## func Fileserver
`函数[func]: Fileserver()`
`Fileserver` 函数提供了快速在局域网内构建文件服务器的功能.
The `Fileserver` function provides the ability to quickly build a file server within the local network.
参数:
- `path`: 文件服务器的根目录
- `host`: 服务器的主机地址 默认为 **WIFI 局域网 IP 地址**
- `port`: 服务器的端口号 默认为 **5001**
- `bool_https`: 是否使用 HTTPS 协议
- `certfile`: 证书文件名
- `keyfile`: 密钥文件名
示例:
```python
from hzgt.tools import Fileserver, getip
Fileserver(path="./", host=getip(-1), port=5001,
bool_https=False,
certfile="", keyfile="")
```
## func readini
`函数[func]: readini()`
`readini` 函数用于读取ini文件并返回嵌套字典.
The `readini` function is used to read the ini file and return the nested dictionary.
参数:
- `path`: ini文件的路径
- `encoding`: ini文件的编码格式 默认为 **utf-8**
返回:
- `dict`: 嵌套字典
示例:
```python
from hzgt.tools import readini
config = readini("cfg.ini", encoding="utf-8")
print(config)
```
## func saveini
`函数[func]: saveini()`
`saveini` 函数用于保存嵌套字典为ini文件.
The `saveini` function is used to save the nested dictionary as an ini file.
参数:
- `savename`: ini文件的保存路径
- `iniconfig`: 嵌套字典
- `section_prefix`: ini文件的section前缀 默认为 **空字符串**
- `bool_space`: 是否添加空格 默认为 **True**
- `encoding`: ini文件的编码格式 默认为 **utf-8**
示例:
```python
from hzgt.tools import saveini
saveini("cfg.ini",
{
"section1":
{
"key1": "value1",
"key2": "value2"
},
"section2":
{
"key3": "value3",
"key4": "value4"
}
}, section_prefix="[", bool_space=True, encoding="utf-8")
```
## func getip
`函数[func]: getip()`
`getip` 函数用于获取本地主机的IP地址.
The `getip` function is used to get the IP address of the local host.
参数:
- `index`: 获取的IP地址的索引 默认为 **-1**
- `ipv6`: 是否获取IPv6地址 默认为 **True**
返回:
- `list` | `str`: **IP地址列表** 或者 **IP地址字符串**
示例:
```python
from hzgt.tools import getip
print(getip(-1))
print(getip(ipv6=True))
print(getip())
```
## func pic
`函数[func]: pic()`
`pic` 函数用于获取变量名的**名称** / **类型** / **值**, **[该函数占用必须一行, 即一行写完]**.
The `pic` function is used to get the **name** / **type** / **value** of the variable name, **[this function must occupy one line, that is, write one line]**
参数:
- `*args`: 需要获取变量名的变量, 可传入多个变量 **[该函数占用必须一行, 即一行写完]**
- `bool_header`: 是否打印列名 默认为 **True**
- `bool_show`: 是否直接打印(仍然有返回值) 默认为 **False**
返回:
- `list`: list[tuple[Any, str, Any]] (变量名, 变量类型, 值) 不定数量
示例:
```python
from hzgt import pic
a = 5
b = 3.5
c = "hello"
pic(a, b, c)
```
## func restrop
`函数[func]: restrop()`
`restrop` 函数用于字符串颜色配置
The `restrop` function is used to configure string color
参数:
- `text`: 需要配置颜色的字符串
- `m`: 字体模式
- `f`: 字体颜色
- `b`: 背景颜色
- `frgb`: 字体颜色 RGB 值 当f=8时有效
- `brgb`: 背景颜色 RGB 值 当b=8时有效
参数可取值:
m 取值表
| m[mode] 模式 | 说明 |
|:----------:|:------------------------:|
| 0 | 默认 |
| 1 | 粗体高亮 |
| 2 | 暗色弱化 |
| 3 | 斜体 (部分终端支持) |
| 4 | 下划线 |
| 5 | 缓慢闪烁 (未广泛支持,shell有效) |
| 6 | 快速闪烁 (未广泛支持,shell有效) |
| 7 | 反色 |
| 8 | 前景隐藏文本 (未广泛支持,shell有效) |
| 9 | 删除线 |
| 21 | 双下划线 (部分终端支持) |
| 52 | 外边框 [颜色随字体颜色变化] (部分终端支持) |
| 53 | 上划线 (部分终端支持) |
f / b 取值表
| f[fore] / b[back] 前景颜色 / 背景颜色 | 说明 |
|:-----------------------------------------:|:------:|
| 0 | 黑色 |
| 1 | 红色 |
| 2 | 绿色 |
| 3 | 黄色 |
| 4 | 蓝色 |
| 5 | 紫色 |
| 6 | 青色 |
| 7 | 灰色 |
| 8 | 设置颜色功能 |
| 9 | 默认 |
frgb / brgb 取值表
| frgb[fore RGB] / brgb[back RGB] 前景 RGB / 背景 RGB | 说明 |
|:------------------------------------------------:|:------------------:|
| (0 ~ 255, 0 ~ 255, 0 ~ 255) RGB颜色元组 | 前景色或背景色为RGB元组对应的颜色 |
返回:
- `str`: 配置后的字符串
示例:
```python
from hzgt import restrop
print(restrop("Hello World!", m=0, f=2, b=3)) # 绿色前景 黄色背景
print(restrop("Hello World!", m=52, f=8, frgb=(255, 0, 0))) # 输出带外边框的"Hello World!"
```
结果: [pycharm 2023.2.8 版本终端输出]

## func set_log
`函数[func]: set_log()`
`set_log` 函数用于胚配置日志记录器
The `set_log` function is used to configure the log recorder
参数:
- `name`: 日志记录器的名称
- `logfilename`: 日志文件名 格式为 **"\*.log"**
- `level`: 日志记录器的等级 默认为 **2**
- `print_prefix`: 日志记录器在终端的输出格式 默认为 ```f'{restrop("[%(name)s %(asctime)s]", f=3)} {restrop("[%(levelname)s]", f=5)}\t{restrop("%(message)s")}'```
- `file_prefix`: 日志记录器在日志文件中的输出格式 默认为 ```"[%(name)s %(asctime)s] \[%(levelname)s]\t%(message)s"```
- `datefmt`: 日志记录器在终端和日志文件中的输出时间格式 默认为 **%Y-%m-%d %H:%M:%S**
- `maxBytes`: 日志文件最大字节数 默认为 **2 * 1024 * 1024**
- `backupCount`: 日志文件备份数量 默认为 **3**
- `encoding`: 日志文件编码格式 默认为 **utf-8**
返回:
- `logging.Logger`: 日志记录器
示例:
```python
from hzgt import set_log
logger = set_log("test", "test.log", level=2)
logger.info("INFO!")
logger.error("ERROR!")
```
## decorator vargs
`装饰器[decorator]: vargs()`
装饰器 `vargs` 根据其有效集合验证函数参数.
The `vargs` decorator verifies the function parameters based on its effective set.
参数:
- `valid_params`: `dict` {参数名: 有效集合}
示例:
```python
from hzgt import vargs
@vargs({"a": [1, 2, 3], "b": [4, 5, 6]})
def test(a, b):
print(a, b)
test(1, 4)
test(4, 5)
test(1, 7)
test(2, 4)
```
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-2025.7.20.tar.gz
(153.4 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-2025.7.20-py3-none-any.whl
(170.0 kB
view details)
File details
Details for the file hzgt-2025.7.20.tar.gz.
File metadata
- Download URL: hzgt-2025.7.20.tar.gz
- Upload date:
- Size: 153.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e15821a31c1fa46651c3efa8c216163648e8b17fbb75f626d45ea5b442878444
|
|
| MD5 |
877ffde05cd7c301fe87c2a261ab884b
|
|
| BLAKE2b-256 |
d943561602fe1f19615328ed05b39a48e23164f2540057185cace2987a9fb45c
|
File details
Details for the file hzgt-2025.7.20-py3-none-any.whl.
File metadata
- Download URL: hzgt-2025.7.20-py3-none-any.whl
- Upload date:
- Size: 170.0 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 |
da1684c0c323297e037c962e77437afebe887089306646beba3d4167f222efb8
|
|
| MD5 |
945a99464f17d4fbd815067d7062664e
|
|
| BLAKE2b-256 |
5c2bb6626e08ef1d88fb36c3e61fa21f7a478d50289a5355b90abf1e22d8319d
|