变更日志
本文档记录了 pyutils 项目的所有重要变更。
格式基于 Keep a Changelog, 并且本项目遵循 语义化版本。
[未发布] - TBD
新增
完整的 uv 包管理器支持
现代化的开发工具链(Ruff、MyPy、pre-commit)
GitHub Actions CI/CD 流水线
性能基准测试框架
完整的 Sphinx 文档系统
Makefile 简化开发命令
代码质量增强建议文档
改进
更新 README.rst 包含详细的 uv 使用指南
优化 pyproject.toml 配置
增强测试覆盖率配置
改进类型注解支持
修复
修复异步测试支持问题
清理重复的依赖配置
修复
json_stringify函数的格式问题,移除不必要的空格压缩修复
url_encode函数的编码行为,使其与标准quote函数一致修复
is_hex函数对0x前缀的错误处理修复
is_empty函数对frozenset类型的支持修复 GitHub Actions 依赖更新工作流的权限问题
[1.0.0] - 2024-01-XX
新增
array 模块: 数组和列表操作工具
chunk(): 将数组分割成指定大小的块unique(): 数组去重shuffle(): 随机打乱数组diff(): 计算数组差集flatten(): 扁平化嵌套数组compact(): 移除数组中的假值
string 模块: 字符串处理和格式化工具
camel_case(): 转换为驼峰命名snake_case(): 转换为下划线命名kebab_case(): 转换为短横线命名slugify(): 生成 URL 友好的字符串fuzzy_match(): 模糊字符串匹配generate_uuid(): 生成 UUIDtruncate(): 截断字符串pad_start()/pad_end(): 字符串填充
math 模块: 数学计算和统计函数
clamp(): 数值限制lerp(): 线性插值normalize(): 数值归一化deg_to_rad()/rad_to_deg(): 角度转换is_prime(): 质数检查gcd()/lcm(): 最大公约数和最小公倍数factorial(): 阶乘计算
object 模块: 对象操作和反射工具
deep_copy(): 深拷贝对象merge(): 对象合并get_nested(): 获取嵌套属性set_nested(): 设置嵌套属性is_dict()/is_list()/is_string(): 类型检查pick()/omit(): 对象属性选择和排除
function 模块: 函数式编程工具
compose(): 函数组合partial(): 偏函数应用memoize(): 函数缓存装饰器debounce(): 防抖装饰器throttle(): 节流装饰器retry(): 重试装饰器
async_utils 模块: 异步编程辅助工具
gather_with_concurrency(): 限制并发数的任务执行timeout(): 异步超时控制retry_async(): 异步重试run_in_executor(): 在线程池中运行同步函数
bytes 模块: 字节操作工具
to_hex(): 转换为十六进制字符串from_hex(): 从十六进制字符串转换encode_base64()/decode_base64(): Base64 编解码compress()/decompress(): 数据压缩
cache_utils 模块: 缓存工具
LRUCache: LRU 缓存实现TTLCache: 带过期时间的缓存cache_result(): 结果缓存装饰器
data_utils 模块: 数据处理工具
flatten_dict(): 扁平化字典unflatten_dict(): 反扁平化字典group_by(): 数据分组sort_by(): 多字段排序filter_by(): 条件过滤
file_utils 模块: 文件操作工具
ensure_dir(): 确保目录存在copy_file()/move_file(): 文件复制和移动get_file_size(): 获取文件大小get_file_hash(): 计算文件哈希read_json()/write_json(): JSON 文件操作
network_utils 模块: 网络工具
is_valid_ip(): IP 地址验证is_valid_url(): URL 验证get_domain(): 提取域名download_file(): 文件下载
system_utils 模块: 系统工具
get_platform(): 获取平台信息get_memory_usage(): 获取内存使用情况run_command(): 执行系统命令get_env_var(): 获取环境变量
time_utils 模块: 时间工具
format_duration(): 格式化时间间隔parse_duration(): 解析时间间隔get_timestamp(): 获取时间戳sleep_until(): 睡眠到指定时间
validation_utils 模块: 数据验证工具
is_email(): 邮箱验证is_phone(): 电话号码验证is_credit_card(): 信用卡号验证validate_schema(): JSON Schema 验证
技术改进
完整的类型注解支持
高覆盖率的测试套件(90%+)
性能优化和基准测试
详细的文档和示例
模块化设计,支持按需导入
[0.1.0] - 2023-XX-XX
新增
项目初始化
基础项目结构
初始的工具函数集合
版本说明
版本号格式
我们使用语义化版本号 MAJOR.MINOR.PATCH:
MAJOR: 不兼容的 API 变更
MINOR: 向后兼容的功能新增
PATCH: 向后兼容的问题修复
变更类型
新增: 新功能
改进: 对现有功能的改进
修复: 问题修复
移除: 移除的功能
弃用: 即将移除的功能
安全: 安全相关的修复
迁移指南
从 0.x 到 1.0
1.0 版本是一个重大更新,包含了许多破坏性变更:
模块重组: 函数按功能重新组织到不同模块
API 变更: 一些函数的参数和返回值有变化
类型注解: 添加了完整的类型注解
性能优化: 重写了部分算法以提高性能
详细的迁移指南请参考 迁移文档。
贡献者
感谢所有为 pyutils 项目做出贡献的开发者!
项目维护者和核心贡献者
社区贡献者
问题报告者
文档改进者
完整的贡献者列表请查看 AUTHORS.rst。