A utility package for various validation checks
Project description
zyt_validation_utils
zyt_validation_utils 是一个用于数据、文件、目录和文本验证的 Python 工具包。它提供了多种实用的验证函数,帮助开发者快速完成常见的数据检查任务。
功能特性
数据验证:
- 检查输入的全部元素是否全部为指定类型。
- 检查列表或元组中的元素是否唯一。
- 检查输入的全部元素是否都为空。
- 检查输入的全部元素是否都为数值类型。
- 检查输入的全部元素是否都为可转为整数或数值类型。
- 检查输入的全部元素是否都为为指定类型数值(如奇数、正整数等)。
- 检查输入的全部元素是否在指定范围内。
- 检查输入的全部元素是否为字典的有效键。
目录验证:
- 检查路径是否为目录。
- 检查目录是否为空。
- 检查目录是否包含子目录或非子目录文件。
文件验证:
- 检查路径是否为文件。
- 检查文件是否为空文件。
- 检查文件类型(如音频、视频、图片、压缩文件、bin文件、打包后的软件等)。
- 检查图片文件是否完整。
- 检查文件是否加载完整。
文本验证:
- 检查文本是否全为中文、英文、数字或特殊字符。
- 检查文本中是否包含中文、英文、数字、特殊字符、空格或空格符。
- 检查文本中是否包含给定的字符或子字符串。
- 检查给定的文本是否为有效的邮箱、URL、IP地址(IPV4、IPV6)、MAC地址、日期、
颜色数、颜色(十六进制格式、RGB格式、RGBA格式)、身份证、手机号、邮编等
安装
使用 pip 安装:
pip install zyt-validation-utils
API 文档
数据验证
data_check
该模块提供了一系列用于验证数据类型、唯一性、范围及其他属性的函数。以下是各函数的详细说明:
is_type(target_type, *datas)
功能: 检查所有提供的数据是否匹配指定类型。
参数:
target_type(type): 目标类型(如str,int,list等)。*datas: 不定数量的待检测数据。
返回:
bool: 如果所有数据都属于目标类型,返回True;否则返回False。
is_all_unique(data)
功能: 验证列表或元组的所有元素是否唯一。
参数:
data(list 或 tuple): 待检测的列表或元组。
返回:
bool: 如果所有元素都唯一,返回True;否则返回False。
异常:
TypeError: 如果输入不是列表或元组。
is_empty(*datas)
功能: 判断提供的数据是否为空。
支持的空值类型:
None- 空字符串 (
"") - 空列表 (
[]) - 空字典 (
{}) - 空元组 (
()) - 空集合 (
set())
参数:
*datas: 不定数量的待检测数据。
返回:
bool: 如果所有数据都为空,返回True;否则返回False。
is_numeric(*datas)
功能: 检查所有提供的数据是否为数字。
参数:
*datas: 不定数量的待检测数据。
返回:
bool: 如果所有数据都是数值类型(int或float),返回True;否则返回False。
is_can_to_int(*datas)
功能: 检测所有数据是否都可以转换为整数。
参数:
*datas: 不定数量的待检测数据。
返回:
bool: 如果所有数据都可以转换为整数,返回True;否则返回False。
is_can_to_numeric(*datas)
功能: 检测所有数据是否都可以转换为数值(整数或浮点数)。
参数:
*datas: 不定数量的待检测数据。
返回:
bool: 如果所有数据都可以转换为数值,返回True;否则返回False。
is_designated_nums(num_type, *datas, must_int=False)
功能: 验证所有数据是否为指定的数字类型。
支持的指定类型:
"odd": 奇数"even": 偶数"positive": 正数"no_negative": 非负数"negative": 负数"no_positive": 非正数
参数:
num_type(str): 指定的数字类型。*datas: 不定数量的待检测数据。must_int(bool, 可选): 是否必须为整数。默认为False。
返回:
bool: 如果所有数据都符合指定类型,返回True;否则返回False。
异常:
ValueError: 如果指定类型不支持。
is_nums_in_range(range_str, *datas, must_int=False)
功能: 确保所有数字都在指定范围内。
参数:
range_str(str): 数据范围字符串,格式为(a, b)、[a, b]、(a, ]、[a, )、(, b)、[, b]等。*datas: 不定数量的待检测数据。must_int(bool, 可选): 是否必须为整数。默认为False。
返回:
bool: 如果所有数据都在指定范围内,返回True;否则返回False。
异常:
ValueError: 如果范围字符串格式错误或数据不是有效数字。
is_valid_key(dictionary, *datas)
功能: 确认所有数据是否为字典中的有效键。
参数:
dictionary(dict): 目标字典。*datas: 不定数量的待检测数据。
返回:
bool: 如果所有数据都是字典的有效键,返回True;否则返回False。
使用示例
from zyt_validation_utils.data_check import is_type, is_all_unique, is_empty, is_numeric, is_designated_nums, is_nums_in_range, is_valid_key
# 检查数据类型
if is_type(int, 1, 2, 3):
print("所有数据都是整数")
# 检查列表元素是否唯一
if is_all_unique([1, 2, 3, 4]):
print("列表元素唯一")
# 检查数据是否为空
if is_empty("", [], {}):
print("所有数据都为空")
# 检查数据是否为数字
if is_numeric(1, 2.5, 3):
print("所有数据都是数字")
# 检查数据是否为指定类型(如正数)
if is_designated_nums("positive", 1, 2, 3):
print("所有数据都是正数")
# 检查数据是否在指定范围内
if is_nums_in_range("[1, 10]", 2, 3, 4, must_int=True):
print("所有数据都在范围内")
# 检查数据是否为字典的有效键
if is_valid_key({"a": 1, "b": 2}, "a", "b"):
print("所有数据都是字典的有效键")
目录验证
dir_check
该模块提供了一系列用于验证目录是否存在、是否为空、是否包含子目录或文件等功能的函数。以下是各函数的详细说明:
is_dir(path, raise_error=True)
功能: 检查路径是否为目录。
参数:
path(str): 目录路径。raise_error(bool, 可选): 如果为True,当路径不存在或不是目录时抛出异常;如果为False,则返回False。默认为True。
返回:
bool: 如果路径是目录,返回True;否则返回False。
异常:
FileNotFoundError: 如果路径不存在且raise_error为True。
is_dir_empty(dir_path)
功能: 判断目录是否为空。
参数:
dir_path(str): 目录路径。
返回:
bool: 如果目录为空,返回True;否则返回False。
is_have_subdirectories(dir_path)
功能: 检查目录是否包含子目录。
参数:
dir_path(str): 目录路径。
返回:
bool: 如果目录包含子目录,返回True;否则返回False。
is_have_non_subdirectory_files(dir_path)
功能: 验证目录中是否包含非子目录的文件。
参数:
dir_path(str): 目录路径。
返回:
bool: 如果目录中包含非子目录的文件,返回True;否则返回False。
使用示例
from zyt_validation_utils.dir_check import is_dir, is_dir_empty, is_have_subdirectories, is_have_non_subdirectory_files
# 检查路径是否为目录
if is_dir("/path/to/directory"):
print("路径是目录")
# 检查目录是否为空
if is_dir_empty("/path/to/directory"):
print("目录为空")
# 检查目录是否包含子目录
if is_have_subdirectories("/path/to/directory"):
print("目录包含子目录")
# 检查目录中是否包含非子目录的文件
if is_have_non_subdirectory_files("/path/to/directory"):
print("目录中包含非子目录的文件")
文件验证模块 file_check
该模块提供了一系列用于验证文件类型、完整性及其他属性的函数。以下是各函数的详细说明:
is_file(path, raise_error=True)
功能: 检查指定路径是否为文件。
参数:
path(str): 文件路径。raise_error(bool, 可选): 如果为True,当路径不存在或不是文件时抛出异常;如果为False,则返回False。默认为True。
返回:
bool: 如果路径是文件,返回True;否则返回False。
异常:
FileNotFoundError: 如果路径不存在且raise_error为True。
is_empty_file(file_path)
功能: 判断文件是否为空文件。
参数:
file_path(str): 文件路径。
返回:
bool: 如果文件大小为 0,返回True;否则返回False。
is_image(file_path, speed="normal", raise_error=True)
功能: 验证文件是否为图片文件。
参数:
file_path(str): 文件路径。speed(str, 可选): 检测模式,可选值为'fast'或'normal'。默认为'normal'。'fast': 仅通过文件后缀名快速判断。'normal': 使用filetype库进行更准确的判断。
raise_error(bool, 可选): 如果为True,当检测失败时抛出异常;如果为False,则返回False。默认为True。
返回:
bool: 如果文件是图片文件,返回True;否则返回False。
异常:
ValueError: 如果检测失败且raise_error为True。
is_image_complete(image_path, speed="normal", raise_error=True)
功能: 检查图片文件是否完整。
参数:
image_path(str): 文件路径。speed(str, 可选): 检测模式,可选值为'fast'、'normal'或'strict'。默认为'normal'。'fast': 仅检查文件大小和文件头。'normal': 检查文件大小、文件头和图像结构。'strict': 检查文件大小、文件头、图像结构和像素数据。
raise_error(bool, 可选): 如果为True,当检测失败时抛出异常;如果为False,则返回False。默认为True。
返回:
bool: 如果图片文件完整,返回True;否则返回False。
异常:
ValueError: 如果检测失败且raise_error为True。
is_video(file_path, speed="normal", raise_error=True)
功能: 验证文件是否为视频文件。
参数:
file_path(str): 文件路径。speed(str, 可选): 检测模式,可选值为'fast'或'normal'。默认为'normal'。'fast': 仅通过文件后缀名快速判断。'normal': 使用filetype库进行更准确的判断。
raise_error(bool, 可选): 如果为True,当检测失败时抛出异常;如果为False,则返回False。默认为True。
返回:
bool: 如果文件是视频文件,返回True;否则返回False。
异常:
ValueError: 如果检测失败且raise_error为True。
is_audio(file_path, speed="normal", raise_error=True)
功能: 验证文件是否为音频文件。
参数:
file_path(str): 文件路径。speed(str, 可选): 检测模式,可选值为'fast'或'normal'。默认为'normal'。'fast': 仅通过文件后缀名快速判断。'normal': 使用filetype库进行更准确的判断。
raise_error(bool, 可选): 如果为True,当检测失败时抛出异常;如果为False,则返回False。默认为True。
返回:
bool: 如果文件是音频文件,返回True;否则返回False。
异常:
ValueError: 如果检测失败且raise_error为True。
is_archive(file_path, speed="normal", raise_error=True)
功能: 验证文件是否为压缩文件。
参数:
file_path(str): 文件路径。speed(str, 可选): 检测模式,可选值为'fast'或'normal'。默认为'normal'。'fast': 仅通过文件后缀名快速判断。'normal': 使用filetype库进行更准确的判断。
raise_error(bool, 可选): 如果为True,当检测失败时抛出异常;如果为False,则返回False。默认为True。
返回:
bool: 如果文件是压缩文件,返回True;否则返回False。
异常:
ValueError: 如果检测失败且raise_error为True。
is_bin(file_path, speed="normal", raise_error=True)
功能: 验证文件是否为二进制 .bin 文件。
参数:
file_path(str): 文件路径。speed(str, 可选): 检测模式,可选值为'fast'或'normal'。默认为'normal'。'fast': 仅通过文件后缀名快速判断。'normal': 读取文件内容并检查是否包含二进制数据。
raise_error(bool, 可选): 如果为True,当检测失败时抛出异常;如果为False,则返回False。默认为True。
返回:
bool: 如果文件是二进制.bin文件,返回True;否则返回False。
异常:
ValueError: 如果检测失败且raise_error为True。
is_current_file_frozen()
功能: 判断当前程序是否是打包后的可执行文件。
返回:
bool: 如果当前程序是打包后的可执行文件,返回True;否则返回False。
is_file_load_complete(file_path, timeout=60, raise_error=True)
功能: 检查文件是否在指定时间内完全加载(通常用于检测文件是否复制完成)。
参数:
file_path(str): 文件路径。timeout(int, 可选): 最大等待时间(秒)。默认为60秒。raise_error(bool, 可选): 如果为True,当文件不存在或不是文件时抛出异常;如果为False,则返回False。默认为True。
返回:
bool: 如果文件在超时时间内完全加载,返回True;否则返回False。
异常:
ValueError: 如果文件不存在或不是文件且raise_error为True。
使用示例
from zyt_validation_utils.file_check import is_file, is_image, is_image_complete, is_file_load_complete
# 检查是否为文件
try:
if is_file("path", raise_error=True):
print("是文件格式")
else:
print("不是文件格式")
except FileNotFoundError:
print(f"path不存在")
# 检查文件是否为图片
try:
if is_file("example.jpg", raise_error=False):
if is_image("example.jpg", speed="fast", raise_error=True):
print("文件是图片")
else:
print("文件不是图片")
else:
print("不是文件或地址不存在")
except ValueError:
raise
# 检查图片文件是否完整
if is_image_complete("example.jpg", speed="strict", raise_error=False):
print("图片文件完整")
if is_file_load_complete("example.jpg", timeout=120, raise_error=False):
print("图片已加载完成")
文本验证
text_check
该模块提供了一系列用于验证文本内容、格式及其他属性的函数。以下是各函数的详细说明:
is_have_chinese(text)
功能: 判断字符串是否含有中文字符。
参数:
text(str): 输入的文本。
返回:
bool: 如果字符串含有中文字符,返回True;否则返回False。
is_all_chinese(text)
功能: 判断字符串是否全部由中文字符组成。
参数:
text(str): 输入的文本。
返回:
bool: 如果字符串全部由中文字符组成,返回True;否则返回False。
is_have_english(text)
功能: 判断字符串是否含有英文字符。
参数:
text(str): 输入的文本。
返回:
bool: 如果字符串含有英文字符,返回True;否则返回False。
is_all_english(text)
功能: 判断字符串是否全部由英文字符组成。
参数:
text(str): 输入的文本。
返回:
bool: 如果字符串全部由英文字符组成,返回True;否则返回False。
is_have_digit(text)
功能: 判断字符串是否含有数字。
参数:
text(str): 输入的文本。
返回:
bool: 如果字符串含有数字,返回True;否则返回False。
is_all_digit(text)
功能: 判断字符串是否全部由数字组成。
参数:
text(str): 输入的文本。
返回:
bool: 如果字符串全部由数字组成,返回True;否则返回False。
is_have_special_char(text)
功能: 判断字符串是否含有特殊字符(非字母、非数字、非中文)。
参数:
text(str): 输入的文本。
返回:
bool: 如果字符串含有特殊字符,返回True;否则返回False。
is_all_special_char(text)
功能: 判断字符串是否全部由特殊字符组成(非字母、非数字、非中文)。
参数:
text(str): 输入的文本。
返回:
bool: 如果字符串全部由特殊字符组成,返回True;否则返回False。
is_have_normal_space(text)
功能: 判断字符串是否含有空格字符。
参数:
text(str): 输入的文本。
返回:
bool: 如果字符串含有空格字符,返回True;否则返回False。
is_have_any_space(text)
功能: 判断字符串是否含有空白字符(包括空格、制表符、换行符等)。
参数:
text(str): 输入的文本。
返回:
bool: 如果字符串含有空白字符,返回True;否则返回False。
is_have(text, check)
功能: 判断字符串中是否包含给定的字符或子字符串。
参数:
text(str): 输入的文本。check: 需要检查的字符、子字符串或判断函数。可以是单个字符、字符串、列表、集合或元组。
返回:
bool: 如果包含给定的字符或子字符串,返回True;否则返回False。
is_email(text)
功能: 判断字符串是否为有效邮箱地址。
参数:
text(str): 输入的文本。
返回:
bool: 如果是有效邮箱地址,返回True;否则返回False。
is_url(text)
功能: 判断字符串是否为有效 URL。
参数:
text(str): 输入的文本。
返回:
bool: 如果是有效的 URL,返回True;否则返回False。
is_ipv4_address(text)
功能: 判断字符串是否为有效 IPv4 地址。
参数:
text(str): 输入的文本。
返回:
bool: 如果是有效的 IPv4 地址,返回True;否则返回False。
is_ipv6_address(text)
功能: 判断字符串是否为有效 IPv6 地址。
参数:
text(str): 输入的文本。
返回:
bool: 如果是有效的 IPv6 地址,返回True;否则返回False。
is_ip_address(text)
功能: 判断字符串是否为有效 IP 地址(支持 IPv4 和 IPv6)。
参数:
text(str): 输入的文本。
返回:
bool: 如果是有效的 IP 地址,返回True;否则返回False。
is_mac_address(text)
功能: 判断字符串是否为有效 MAC 地址。
参数:
text(str): 输入的文本。
返回:
bool: 如果是有效的 MAC 地址,返回True;否则返回False。
is_date(text, separator='-')
功能: 判断字符串是否为有效日期(支持多种分隔符)。
参数:
text(str): 输入的文本。separator(str, 可选): 日期分隔符,默认为'-'。
返回:
bool: 如果是有效日期,返回True;否则返回False。
is_color_num(text)
功能: 判断输入是否为颜色编码数字(0-255)。
参数:
text(str): 输入的文本。
返回:
bool: 如果是有效颜色编码数字,返回True;否则返回False。
is_hex_color(text)
功能: 判断输入是否为有效的十六进制颜色代码。
参数:
text(str): 输入的文本。
返回:
bool: 如果是有效的十六进制颜色代码,返回True;否则返回False。
is_rgb_color(text)
功能: 判断输入是否为有效的 RGB 颜色格式。
参数:
text(str): 输入的文本。
返回:
bool: 如果是有效的 RGB 颜色格式,返回True;否则返回False。
is_rgba_color(text)
功能: 判断输入是否为有效的 RGBA 颜色格式(支持透明度为 0-1 或 0-255)。
参数:
text(str): 输入的文本。
返回:
bool: 如果是有效的 RGBA 颜色格式,返回True;否则返回False。
is_color(text)
功能: 判断输入是否为有效的颜色格式(支持十六进制、RGB、RGBA)。
参数:
text(str): 输入的文本。
返回:
bool: 如果是有效的颜色格式,返回True;否则返回False。
is_Chinese_id_card(text, allow_lower_x=False)
功能: 判断字符串是否为有效中国身份证号。
参数:
text(str): 输入的文本。allow_lower_x(bool, 可选): 是否允许小写x,默认为False。
返回:
bool: 如果是有效身份证号,返回True;否则返回False。
is_Chinese_mobile_phone_number(text)
功能: 判断字符串是否为有效中国手机号。
参数:
text(str): 输入的文本。
返回:
bool: 如果是有效手机号,返回True;否则返回False。
is_Chinese_postal_code(text)
功能: 判断字符串是否为有效中国邮政编码。
参数:
text(str): 输入的文本。
返回:
bool: 如果是有效邮政编码,返回True;否则返回False。
使用示例
from zyt_validation_utils.text_check import is_have_chinese, is_have, is_email, is_ipv4_address, is_date, is_Chinese_id_card
# 检查字符串是否含有中文字符
if is_have_chinese("你好,世界"):
print("字符串含有中文字符")
# 检查字符串是否满足所给条件
if is_have("spring is on the horizon", ["spring","summer", "autumn", "winter"]):
print("字符串在所给条件中")
# 检查字符串是否为有效邮箱地址
if is_email("example@example.com"):
print("字符串是有效邮箱地址")
# 检查字符串是否为有效 IPv4 地址
if is_ipv4_address("192.168.1.1"):
print("字符串是有效 IPv4 地址")
# 检查字符串是否为有效日期
if is_date("2025.01.27", separator='.'):
print("字符串是有效日期")
# 检查字符串是否为有效中国身份证号
if is_Chinese_id_card("11010519491231002x", allow_lower_x=True):
print("字符串是有效中国身份证号")
贡献
欢迎贡献代码!
许可证
本项目基于 MIT 许可证 开源。
作者
- ZhangYuetao - 项目开发者
- 邮箱: zhang894171707@gmail.com
- GitHub: https://github.com/VerySeriousMan
致谢
感谢所有为这个项目做出贡献的人!
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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 zyt_validation_utils-0.2.3.tar.gz.
File metadata
- Download URL: zyt_validation_utils-0.2.3.tar.gz
- Upload date:
- Size: 19.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31a08954c16d00973660be2483297dcee53f47ec371eb59ffae9561095e523fc
|
|
| MD5 |
6d68543f23eab2d47bddfad28e273729
|
|
| BLAKE2b-256 |
2be270a11a32363b987831b472cba06f66852f2645c4d3515e01831425fa706b
|
File details
Details for the file zyt_validation_utils-0.2.3-py3-none-any.whl.
File metadata
- Download URL: zyt_validation_utils-0.2.3-py3-none-any.whl
- Upload date:
- Size: 17.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e65e806da8439c737247cabd01b270089ec93022fe9d5c7a84472000ce4ddcd
|
|
| MD5 |
1c198497e8aabe84857f57383cdccfe1
|
|
| BLAKE2b-256 |
f81e9d473bd3a81a5fb35f1c1caf15e3e61e647684af7c23f2fc71a960b9c6a4
|