CHANGES

  • 更新 TOX_CONSTRAINTS_FILE 以支持 stable/2025.2

  • 更新 .gitreview 以支持 stable/2025.2

9.1.0

  • 添加 pyproject.toml 以支持 pip 23.1

9.0.0

  • tox: 移除 basepython

  • 移除 constant_time_prepare

  • 修复 secretutils 中的未文档函数

  • 更新 master 以支持 stable/2025.1

  • 修复最近更改中的拼写错误

8.2.0

  • 跳过安装以加快 pep8 速度

  • 运行 pyupgrade 以清理 Python 2 语法

8.1.0

  • 调整 eventlet 支持弃用的警告消息

  • 修复错误的警告类别

  • 弃用 eventletutils 模块

  • 移除未使用的私有常量

  • 弃用冗余的 exception_to_unicode 函数

  • 停止兼容 Python 3.8 的代码

  • 在 imageutils 中添加图像检查器

8.0.0

  • 调整描述中的版本号

  • 添加关于新的加密实用程序的发布说明

  • 修复在没有 IPv4 的情况下 get_my_ipv4

  • 修复在没有 IPv6 的情况下 get_my_ipv6

  • 添加替换 crypt.mksalt 的实用程序

  • reno: 更新 master 以支持 unmaintained/2023.1

  • 添加替换 crypt.crypt 的实用程序

  • is_valid_ipv4: 默认启用严格检查

  • 添加关于 requirements 下限的说明

7.4.0

  • Vendor VersionPredicate

  • 声明对 Python 3.12 的支持

  • 如果明确处理,允许多个格式匹配

  • 如果没有匹配项,提前终止流

  • 修复与 netaddr 1.1.0 的兼容性

  • 移除对 netifaces 的依赖

  • 使用上下文管理器处理 socket

  • 澄清 GPT 结构偏移量

  • 弃用冗余的 constant_time_compare 函数

  • 弃用冗余的 md5 方法

  • 移除对 Python 3.8 的支持

  • 抑制不相关的格式投诉

  • 将 qemu-img 添加到 bindep

  • 避免将 FAT VBR 检测为 MBR

  • 更新 master 以支持 stable/2024.2

  • 添加 LUKSv1 检查器

7.3.0

  • 添加一个函数来修剪 ipv6 地址范围

  • 添加 format_inspector 的发布说明

  • 添加基于流的检测

  • 添加 GPT/MBR 检查器

  • 修复 qcow2 功能标志检查(为了未来)

  • 重构一些 oslo 的内容

  • 支持带有页脚的 VMDK 稀疏文件

  • 使 VMDKInspector 支持非稀疏格式

  • 为检查器添加区域完成信号

  • 恢复 VMDK 安全检查覆盖率

  • 模块化图像安全检查

  • 从 Zanata 导入翻译

  • 使 FileInspector 成为一个 ABC

  • 在 CI 中测试覆盖率目标

  • 从 nova 导入 format_inspector

  • 将 imageutils 设为目录

  • 修复覆盖率目标

7.2.0

  • reno: 更新 master 以支持 unmaintained/zed

  • 移除旧的排除项

  • 更新 master 以支持 stable/2024.1

  • reno: 更新 master 以支持 unmaintained/xena

  • reno: 更新 master 以支持 unmaintained/wallaby

  • reno: 更新 master 以支持 unmaintained/victoria

7.1.0

  • 添加 <range-in> spec DSL 运算符

  • netutils: 显式需要 INET_ATON

  • reno: 更新 master 以支持 unmaintained/yoga

  • pre-commit: 集成 bandit

  • pre-commit: 升级版本

  • Bump hacking

7.0.0

  • 更新 setup.cfg 中的 python 分类器

  • Python-3.12: 不要使用 datetime.datetime.utcnow()

  • 仅在 Python < 3.9 中需要 pytz

6.3.0

  • versionutil: 移除尾随的 alpha/beta/rc 后缀

  • 修复缺失的 PyYAML 依赖

  • 屏蔽 chapsecret

  • 从 Zanata 导入翻译

  • 更新 master 以支持 stable/2023.2

6.2.1

  • 从 Zanata 导入翻译

6.2.0

  • 替换已弃用的 assertAlmostEquals 方法

  • strutils: 更新 string_to_bytes

  • 添加 netutils.get_my_ipv6()

  • 升级 bandit

  • 修复与 Python 3.8 的兼容性

  • 移除对 monotonic 在 PyPI 上的引用

  • 撤销“将支持的 python 运行时从版本 3.8 更改为 3.10”

  • 将支持的 python 运行时从版本 3.8 更改为 3.10

  • 更新当前 SI 前缀的单位

  • 实现 zoneinfo 支持以移除对 pytz 的依赖

  • 使用新的 openstack-python3-jobs 模板

  • 移除 is_same_callback() 中的 strict

  • 更新 master 以支持 stable/2023.1

6.1.0

  • [imageutils] 修复 QemuImgInfo 的 __str__

  • 从 Zanata 导入翻译

  • 添加 Python3 antelope 单元测试

  • 更新 master 以支持 stable/zed

6.0.1

  • 从 Zanata 导入翻译

  • 从 Zanata 导入翻译

6.0.0

5.0.0

  • bindep: 使用 Python 3 devel 包

  • 移除 oslo_utils.timeutils 中已弃用的辅助函数

  • 移除 oslo_utils.fnmatch

  • requirements: 移除显式的 pbr 依赖

  • strutils: 推迟 pyparsing 的导入

  • 在测试运行时移除对 python3.6/3.7 的支持

  • 移除不必要的 unicode 前缀

4.13.0

  • 修复 strutils 密码正则表达式

  • 添加 Python3 zed 单元测试

  • 更新 master 以支持 stable/yoga

4.12.2

  • 修复发布列表的格式

4.12.1

  • 修复用于屏蔽密码的正则表达式

  • 更新 python 测试分类器

  • 使用 LOG.warning 代替已弃用的 LOG.warn

4.12.0

  • 在输出中添加 backing 文件格式

4.11.0

  • 添加 Python3 yoga 单元测试

  • 更新 master 以支持 stable/xena

  • QemuImgInfo: 修复加密值的格式不一致

  • setup.cfg: 将破折号替换为下划线

  • 将 tox 中的 minversion 更改为 3.18.0

4.10.0

  • 修改 UUID sentinel 以支持类似 keystone 的 UUID

4.9.2

  • QemuImgInfo: 在未传递输出时跳过弃用警告

  • 移除警告启用过滤器

4.9.1

  • 删除对 ‘sys.version_info’ 的引用

  • 弃用 fnmatch 模块

  • 弃用 QemuImgInfo 上的 human 格式

  • Ussuri+ 仅支持 python3 并将 python 更新为 python3

  • 移除较低约束的测试

4.9.0

  • 移除较低的约束

  • 将 flake8 移动到 pre-commit 本地目标

  • 添加 Python3 xena 单元测试

  • 更新 master 以支持 stable/wallaby

4.8.0

  • 添加一个 ``strict`` 标志,允许用户限制 IPv4 格式的验证

  • 解决六移除补丁中的一些小问题

  • 切换到 collections.abc.*

  • 使用 TOX_CONSTRAINTS_FILE

  • 移除较低约束的测试

  • strutils: 停止屏蔽 encryption_key_id

  • 使用 TOX_CONSTRAINTS_FILE

  • 将 py3 作为 tox 的默认运行时

  • 移除所有 six 库的使用

4.7.0

  • 添加用于封装 md5 的 FIPS 系统函数

  • 添加 Python3 wallaby 单元测试

  • 更新 master 以支持 stable/victoria

  • 添加 pre-commit

4.6.0

  • [目标] 将测试迁移到 ubuntu focal

  • 添加 Python3 victoria 单元测试

  • 修复 is_same_callback() 在 python3.8 中的测试

4.5.0

  • 添加用于检查 json 和 yaml 格式文件的实用方法

  • 升级 bandit 版本

4.4.0

4.3.0

  • versionutils: 从 pkg_resources 切换到 packaging

  • netutils 中新增方法: get_mac_addr_by_ipv6

4.2.2

  • 修复 uuidsentinel 以遵循 getattr 协议

4.2.1

  • 在计算校验和时释放 greenthread

  • 修复 pygments 样式

4.2.0

  • 停止使用 __future__ 模块

  • 修复 hacking min 版本到 3.0.1

  • 切换到更新的 openstackdocstheme 和 reno 版本

  • 删除未使用的编码风格模块

  • 移除 setup.cfg 中的翻译部分

  • 删除 monotonic 的使用

  • 使 contributing 文档与 oslo 的策略保持一致

  • 从 Zanata 导入翻译

  • 将发布说明链接添加到文档索引

  • 更新 master 以支持 stable/ussuri

4.1.1

  • 更新 hacking 以支持 Python3

  • 使用 unittest.mock 代替第三方 mock

  • tox: 在 docs 任务中使用 upper-constraints

4.1.0

  • 添加测试以检查虚拟磁盘大小的科学计数法

  • tests: 将剩余的测试转换为 mock

  • 扁平化测试用例

  • 修复正则表达式以正确识别带有 QemuImgInfo 的科学计数法

  • imageutils: 在使用 JSON 输出格式时报告特定于格式的详细信息

4.0.1

  • 移除过时的标题

  • 移除通用 wheel 配置

  • 重述 py27 支持删除的发布说明

4.0.0

  • [ussuri][目标] 移除 python 2.7 的支持和测试

  • tox: 琐碎的清理

  • 忽略 git 未跟踪文件中的 releasenote 缓存

  • 将 setup 代码移动到 setUp 辅助函数

3.42.1

  • 验证 sanitize 键是否小写

  • 修复正则表达式字符串中的无效转义

  • 忽略 .eggs 目录

  • 使 mask_dict_password 不区分大小写并添加新的模式

  • 将 openstackdocstheme 扩展升级到 1.20

3.42.0

  • 使 mask_password 不区分大小写,并添加新的模式

  • tox: 继续进行文档

  • 切换到 Ussuri jobs

  • 更新约束 URL

  • 支持 QEMU 4.1 及更高版本中的“qemu-img info”虚拟大小

  • 更新 master 以支持 stable/train

3.41.1

  • 添加 digestmod 在使用 hmac 时

  • 添加 Python 3 Train 单元测试

  • 将 Bandit 限制在 1.6.0 以下,并更新 Sphinx 要求

  • 将 git.openstack.org URL 替换为 opendev.org URL

3.41.0

  • OpenDev 迁移补丁

  • 移除 py35 测试

  • 更新 master 以支持 stable/stein

3.40.3

  • 添加 python 3.7 单元测试任务

  • 更新 hacking 版本

  • 屏蔽 encryption_key_id

  • eventletutils: 优化 EventletEvent.clear()

3.40.2

  • 避免重复设置事件

3.40.1

3.40.0

3.39.1

  • 避免调用 eventlet.event.Event.reset()

  • 使用模板进行较低约束

3.39.0

  • 修复 eventletutils Event 中的竞争条件

  • 不要在 Python >=3.3 上使用 monotonic

  • 更新 mailinglist 从 dev 到 discuss

  • 支持 mask_dict_password 中非字典映射

3.38.0

  • 公开 eventlet Event 包装器类

  • 清理 .gitignore 中指向个人工具的引用

3.37.1

  • 修复 rpdb 会话中的异常抛出

3.37.0

  • 修复 uuidsentinel docstring 格式错误

  • UUID sentinel

  • 移除 moxstubout 的使用

  • 添加 lib-forward-testing-python3 测试任务

  • 添加 python 3.6 单元测试任务

  • 从 project-config 导入 zuul 任务设置

  • 更新 reno 以支持 stable/rocky

  • 移除额外的 copy.deepcopy

3.36.4

  • 适当处理非字符串键

  • 切换到 stestr

  • 将发布说明链接添加到 README

3.36.3

  • 修复 tox python3 覆盖

  • 修复 secretutils 中的异常

3.36.2

  • 将 private_key 添加到 sanitize 键列表中

  • 移除过时的 pip-missing-reqs tox 测试

  • 将 Oslo 大写

3.36.1

  • 琐碎: 更新 pypi url 到新 url

  • 将默认 python 设置为 python3

  • eventletutils: 修复重用 Events 时的行为差异

  • 修复用户文档中的项目名称

  • 添加 lower-constraints 任务

  • 清理旧输出,然后再进行新的文档构建

  • 移除 setup.cfg 中的 sphinx 设置

  • 添加 bindep.txt 文件以防止回退到通用列表

  • 从全局需求中更新

3.36.0

  • 添加 -W 用于文档构建

  • 从 Zanata 导入翻译

  • 更新 README 中的链接

  • 从 Zanata 导入翻译

  • 修复由于 iso8601 更改导致的破坏性单元测试

  • 记录 specs_matcher.py 函数

  • 清理代码中的导入

  • 更新 reno 以支持 stable/queens

  • 从全局需求中更新

  • 将 ‘assertFalse(a in b)’ 替换为 ‘assertNotIn(a, b)’

  • 从全局需求中更新

  • 从全局需求中更新

3.35.0

3.34.0

  • 从全局需求中更新

  • 清理 test-requirements

  • 改进 last_bytes() 的文档字符串

  • 在 fileutils 中添加 last_bytes 方法

  • 遵循新的 PTI 进行文档构建

  • 添加 validate_integer 方法的缺失文档信息

3.33.0

3.32.0

  • 避免使用 tox_install.sh 以支持约束

  • 从全局需求中更新

  • 移除从 releasenotes 设置版本/发布

  • 从全局需求中更新

3.31.0

  • 添加计算文件校验和的方法到 fileutils

  • 从 Zanata 导入翻译

  • 添加 validate_integer 方法

3.30.0

  • 从全局需求中更新

  • 使用 six.binary_type 指向正确的类型

  • 在 string_to_bytes 中添加混合模式解析器

  • 从全局需求中更新

  • 修复 docstring 中的一些 reST 字段列表

3.29.0

  • 从 Zanata 导入翻译

  • 添加转义 ipv6 ip 地址的方法

  • 从全局需求中更新

  • 更新 reno 以支持 stable/pike

  • 从全局需求中更新

  • 防止 pkg_resources 中的弃用错误消息

3.28.0

  • 根据文档迁移更新文档中的 URL

3.27.0

  • 重新排列现有文档以适应新的标准布局

  • 切换到 oslosphinx 到 openstackdocstheme

  • 从全局需求中更新

  • 从全局需求中更新

3.26.0

  • 从全局需求中更新

  • 从全局需求中更新

  • 从全局需求中更新

  • 从全局需求中更新

3.25.1

  • 从全局需求中更新

  • 移除 split 转换为元组

  • 从全局需求中更新

3.25.0

  • 移除日志翻译

3.24.0

  • 使用 Sphinx 1.5 warning-is-error

  • 从全局需求中更新

  • 为 hmac 添加检查字符串类型

3.23.0

  • 从全局需求中更新

  • [修复 gate] 更新测试要求

  • 添加 secretutils 的缺失文档

  • 从全局需求中更新

  • 从全局需求中更新

  • 更新 reno 以支持 stable/ocata

3.22.0

  • 删除对 Python 3.4 的引用

  • 将“encrypted_key”添加到 mask_password 列表中

  • 添加 Constraints 支持

3.21.0

  • 允许“get_all_class_names”传递 kwargs

3.20.0

  • 添加 toggle “dashed” 到 “generate_uuid” 函数

  • 在 README 上显示团队和仓库徽章

3.19.0

  • 从全局需求中更新

  • 改进 eventlet 检查,当选择 Event 后端时

  • 从全局需求中更新

3.18.0

  • 添加不截断内置的选项

  • 创建 dictutils 并添加 “flatten_dict_to_keypairs”

  • 从全局需求中更新

  • 添加 reno 以进行发布说明管理

  • 允许作用域 ipv6 地址

  • 用法文档中的琐碎修复

  • 添加 threading<->eventlet 兼容的 Event

  • 从全局需求中更新

  • [TrivialFix] 将 ‘assertEqual(None, …)’ 替换为 ‘assertIsNone(…)’

3.17.0

  • 添加 is_valid_mac 方法

  • 添加 __ne__ 内置函数

  • 使 import_versioned_module 方法正常工作

  • 更改 assertTrue(isinstance()) 为最佳断言

  • doc: 修复 bool_from_string 方法的文档字符串

  • 更改 assertTrue(isinstance()) 为最佳断言

  • 添加 is_valid_boolstr 方法

  • 添加 is_valid_ipv6_cidr 方法

  • 从全局需求中更新

  • 从全局需求中更新

  • 添加缺失的 specs_matcher 文档

  • 更新主页,添加开发者文档页面

  • 从全局需求中更新

  • 从全局需求中更新

  • 添加用于验证和拆分引号的实用程序

  • 从全局需求中更新

  • 扩展 specs matcher 以支持“>”和“<”

  • 从 test-requirements 中移除 discover

3.16.0

  • 修复 mask_dict_password 在字典中非字符串/字典类型键

  • 恢复 <all-in> 运算符

  • 更多 specs matcher 单元测试

  • 从 Zanata 导入翻译

  • 添加 Python 3.5 分类器和 venv

  • 使用实际的定义良好的解析器进行 spec 匹配

  • 移除未使用的 LOG 以保持代码清洁

  • 从全局需求中更新

3.15.0

  • 添加 stopwatch has_started/stopped 方法的基本文档字符串

  • 使 mask_dict_password 与 mask_password 一致

  • 从全局需求中更新

  • 改进 mask_password 和 mask_dict_password 的测试

  • 简化 executils.py 中的布尔表达式

3.14.0

  • 支持 qemu 命令的 json 格式输出

  • 修复 flake8 问题

  • 在 get_ipv6_addr_by_EUI64 中使用 is_valid_ipv4

  • 从 Zanata 导入翻译

3.13.0

  • 允许将“0”分配给端口

3.12.0

  • 从全局需求中更新

  • 修复 split_path 方法的文档字符串 ‘versionadded’

  • 从全局需求中更新

  • 从全局需求中更新

  • 避免捕获通用异常

  • 移除 timeuitls 中的 total_seconds 方法

  • 修复 is_valid_cidr 抛出 TypeError

3.11.0

  • 琐碎的:忽略 openstack/common 在 flake8 exclude 列表中

  • 将 split_path 方法移动到 oslo.utils

3.10.0

  • 从 Zanata 导入翻译

  • 从全局需求中更新

  • 将 nova extra_specs_ops 移动到 oslo.utils

3.9.0

  • 从 Zanata 导入翻译

  • 提供单步检查,如果 eventlet 被 monkey_patched

  • 在 netutils 中添加 is_valid_cidr 方法

  • 从全局需求中更新

  • 从全局需求中更新

  • 添加 importutils.import_any 方法

  • 添加 excutils.exception_filter

  • 显式排除测试,避免 bandit 扫描

  • 将 CHAPPASSWORD 添加到 sanitize 键列表

  • 在 gate 中启用 bandit

  • 从全局需求中更新

3.7.0

  • 添加 check_string_length 方法

  • 添加 configdrive 的缺失 versionchanged

3.6.0

3.5.0

  • 从全局需求中更新

  • 从 Zanata 导入翻译

  • 删除 bandit.yaml,转而使用默认设置

  • 从全局需求中更新

  • 缩小 getfilesystemencoding 的 mock

  • 更新翻译设置

  • 撤销“使用 assertTrue/False 代替 assertEqual(T/F)”

  • 从全局需求中更新

  • 从全局需求中更新

  • 添加 excutils.save_and_reraise_exception force_reraise + capture

  • 添加 encodeutils.to_utf8() 函数

  • 创建 secretutils 并包含 ‘constant_time_compare’ 函数

  • 修复覆盖率

  • 从 Zanata 导入翻译

  • 从全局需求中更新

3.4.0

  • 从全局需求中更新

  • 使用 assertTrue/False 代替 assertEqual(T/F)

  • 添加一种在字典中屏蔽密码的机制

  • 将“configdrive”添加到 mask_password() 使用的键列表中

  • assertIsNone(val) 而不是 assertEqual(None,val)

3.3.0

  • 修复调用 delta_seconds 方法时的 DeprecationWarning

  • 修复 fnmatch.filter 在非 POSIX 系统中的问题

  • 修复 fileutils ut 代码随机失败

  • 为 imageutils 和 fnmatch 添加缺失的文档索引

  • 重新实现线程安全的 fnmatch

  • 修复无法获取所需图像信息的错误

3.2.0

  • 撤销“将 netifaces 移动到 extras”

  • 从 requirements 中移除 Babel

3.1.0

  • 移除 bandit.yaml 中的重复 profiles 部分

  • 允许 get_class_name 接受绑定方法和类方法

  • 弃用 timeutils.total_seconds()

  • 将 imageutils 从 oslo-incubator 移动到 oslo.utils

  • 添加注释解释为什么我们不希望将额外值传递给 mask_password

  • networkutils: 停止支持 python 2.6

  • 移除 ‘MANIFEST.in’

  • 将 netifaces 移动到 extras

3.0.0

  • 在 tox.ini 中添加 bandit 目标

  • 从全局需求中更新

  • 移除 python 2.6 分类器

  • 修复错误的 bug 跟踪链接

  • 移除 python 2.6 并清理 tox.ini

  • 重构端口号验证

  • 添加有用的 ‘time_it’ 装饰器

2.8.0

  • 修复 Python 3 上的 get_class_name()

  • 为 ‘netutils’ 模块添加 ICMP ‘type’ 和 ‘code’ 检查功能

  • 从全局需求中更新

  • 从 Zanata 导入翻译

  • write_to_tempfile 中的注释

  • 在文档中使用 versionadded 和 versionchanged

2.7.0

  • 公开函数签名获取函数

  • 允许 ‘forever_retry_uncaught_exceptions’ 接受不同的默认值

  • 为 oslo_utils.utils 的每个单元编写文档

  • 修复文档字符串中 “deprecated” 标记的使用

  • 仅使用 ‘exception_to_unicode’ 处理异常到字符串

  • 将 ‘secret’ 添加到敏感密钥

2.6.0

  • 修复覆盖率配置和执行

  • 在 ‘forever_retry_uncaught_exceptions’ 中使用秒表

  • 不需要 Oslo Incubator Sync

  • 使 forever_retry_uncaught_exceptions 处理自身的失败

  • 确保秒表 __enter__、__exit__ 在文档中

  • 添加一些 timeutils 秒表示例

  • 从 Zanata 导入翻译

  • 将“历史” -> 移动到发行说明部分

  • 修复行为不端的类和 ‘is_bound_method’ 检查

  • 将 ignore-errors 更改为 ignore_errors

  • 从全局需求中更新

  • 如果 ‘bool_from_string’ 提供了一个布尔值,则直接返回它

  • 从 Zanata 导入翻译

  • 仅捕获导入时的 ImportError

  • 将 ‘token’ 添加到 mask_password 屏蔽的字段列表中

2.5.0

  • 从全局需求中更新

  • 从 Transifex 导入翻译

  • 从全局需求中更新

  • 从全局需求中更新

2.4.0

2.3.0

  • 从全局需求中更新

  • 更新秒表文档字符串以反映 monotonic lib 的使用

  • 从全局需求中更新

  • flake8 - 移除未使用的规则

  • 将 monotonic 提升到 0.3 以移除导入时的异常捕获

  • 提供由基类引起的常见异常

  • 从 Transifex 导入翻译

  • 允许访问反射 ‘get_members’

  • 从全局需求中更新

2.2.0

  • 从 Transifex 导入翻译

  • 从全局需求中更新

2.1.0

  • 从 Transifex 导入翻译

  • 从全局需求中更新

  • 添加 monotonic 导入周围的检查

2.0.0

  • 从全局需求中更新

  • 从全局需求中更新

  • 将 oslo.config 添加到测试 requirements

  • 移除 oslo 命名空间包

  • 从全局需求中更新

1.9.0

  • 从全局需求中更新

  • versionutils: 添加版本转换辅助方法

  • 从 Transifex 导入翻译

  • 将 write_to_tempfile 移回 fileutils

  • 使用 monotonic 库避免查找 monotonic 时间函数

  • 修复 oslo_i18n Message 的 exception_to_unicode()

1.8.0

  • 将 fileutils 添加到 oslo.utils

  • 从全局需求中更新

  • 添加 tox 目标以查找缺少的依赖项

1.7.0

  • 从全局需求中更新

  • 从全局需求中更新

  • 将徽章从 ‘pypip.in’ 切换到 ‘shields.io’

  • timeutils: 修复与 TZ 感知 datetime 的较新/较旧比较

  • 用 parse_isotime 替换 older/newer 中的 parse_strtime

1.6.0

  • 将 pytz 添加到 requirements

  • 弃用 strtime

  • 从 Transifex 导入翻译

  • timeutils: utcnow() 可以返回带有时区的值

  • 添加 ‘raise_with_cause’ 链式辅助函数到 excutils

  • timeutils: 弃用 isotime()

  • timeutils: 使 marshall 时区感知

  • 宣传对 Python3.4 的支持/移除对 Python 3.3 的支持

  • 从全局需求中更新

  • 添加 exception_to_unicode() 函数

  • 移除 run_cross_tests.sh

  • 从 Transifex 导入翻译

  • 将 versionutils 移动到位并移除弃用工具

  • 注明 monotonic 导入顺序 + 使用

1.5.0

  • 将 liberty 发布名称添加到 versionutils

  • 公开 opts 入口点用于 version_utils

  • 从 oslo.config 切换到 oslo_config

  • 删除 oslo.log 代码并清理 versionutils API

  • 删除移至 oslo.i18n 的代码

  • 增强 versionutils.deprecated 以适用于类

  • 将 Kilo 发布名称添加到 versionutils

  • 允许弃用装饰器指定无移除计划

  • 取消 liberty 的库需求上限

  • 将 JUNO 添加为 versionutils 模块的目标

  • 添加缺失的反射 + uuidutils 文档

  • timeutils: 避免将闰秒传递给 datetime

  • 添加 pypi 下载 + 版本徽章

  • 清理 README.rst 和 setup.cfg

  • pep8:修复了多个违规行为

  • 使用 oslotest 代替 common test 模块

  • 使用 hacking import_exceptions 获取 gettextutils._

  • 修复拼写错误

  • 修复违反 H302:import only modules

  • 添加用于弃用函数和方法的装饰器

  • 删除 vim 标头

  • 添加 `versionutils` 用于版本兼容性检查

  • 更新 hacking 设置

  • 从全局需求中更新

  • 从 Transifex 导入翻译

  • 清理 TestIsIPv6Enabled

  • 修复 test_netutils: 停止 patches

  • 添加一个新的字符串到 mask_password 屏蔽模式列表中

  • 提供通用的 `fetch_current_thread_functor` 函数

  • 从 Transifex 导入翻译

1.4.0

  • 添加秒表 + 用于持续时间(s) 的分割

  • 允许向 save_and_reraise_exception 提供 logger

  • 从全局需求中更新

  • 生成 EUI-64 IPv6 地址的实用 API

1.3.0

  • 添加 eventlet 工具辅助模块

  • 为 iso8601_from_timestamp 添加微秒支持

  • 添加依赖警告到 requirements.txt

  • 从全局需求中更新

  • 更新 Oslo 导入以删除命名空间包

  • 添加 TimeFixture

  • 为 timeutils.utcnow_ts() 添加微秒支持

  • 使 setup.cfg packages 包含 oslo.utils

1.2.1

  • 如果没有默认接口,则返回 LOCALHOST

  • 修复 README 中 bug 跟踪器的链接

1.2.0

  • 提高 strutils.mask_password 的性能

  • 将文件移出命名空间包

  • 在 netutils 中添加 is_valid_port 方法

  • 支持 is_uuid_like 中非小写的 UUID

  • 在 _SANITIZE_KEYS 中添加 ‘secret_uuid’ 用于 strutils

  • 从 Transifex 导入翻译

  • 工作流文档现在位于 infra-manual 中

1.1.0

  • 改进 _get_my_ipv4_address() 中的错误报告

  • 添加 get_my_ip()

  • 从全局需求中更新

  • 在 strutils 的 _SANITIZE_KEYS 中添加 ‘auth_password’

  • 从全局需求中更新

  • 激活 pep8 检查,以确保导入了 _

  • 将 uuidutils 添加到 oslo.utils

  • 为安装 requirements 添加 pbr

  • 从全局需求中更新

  • 添加 is_int_like() 函数

  • 隐藏 auth_token 和 new_pass

  • 从 Transifex 导入翻译

  • 将历史记录/变更日志添加到文档中

  • 从 Transifex 导入翻译

  • 支持构建 wheels (PEP-427)

  • 从 Transifex 导入翻译

  • 改进 IP 验证函数的文档字符串

  • 从 Transifex 导入翻译

  • 添加 IP 地址验证

  • 修复如何出现我们需要使用 mock_anything 来避免 ‘self’ 错误

  • 从全局需求中更新

  • 移动 taskflow 使用的反射模块

  • 使 safe_encode 函数不区分大小写

  • 启用 mask_password 处理字节码字符串

  • 从全局需求中更新

1.0.0

  • 从 Transifex 导入翻译

  • 添加从 urlsplit 中提取查询参数的能力

  • 致力于 Python 3.4 支持和测试

  • 警告不要对需求进行排序

  • 移除对 oslo.config 的未使用依赖

  • 从全局需求中更新

  • 仅使用 int(BOOL) 转换为 1 或 0

  • 重新启用 import_utils 中隐藏方法上的 _import*

0.2.0

  • 使 strutils.mask_password 更安全

  • 从 incubator 移植的 mask_password 新公共 API

  • 从 Transifex 导入翻译

0.1.1

  • 使 urlsplit 的返回类型私有

  • 添加 API 文档并清理其他文档

  • 使 i18n 集成模块私有

  • 清理 index.rst 文件

  • 仅在 __all__ 中导出 try_import

  • 切换到 oslo.i18n 并移除对 oslo-incubator 的任何依赖

  • 将 units 移动到 oslo.utils

  • 切换到标准的 python 日志记录

  • 设置翻译

  • 将 strutils 分割成 2 个不同的模块

  • 将 network_utils 重命名为 netutils

  • 使 pep8 正常工作

  • 使 tox 测试正常工作

  • 从 oslo-incubator 由 graduate.sh 导出

  • 修复一个新的 pep8 错误和一个小的拼写错误

  • 设置 pbr ‘warnerrors’ 选项用于文档构建

  • 修复 RETF 规则发现的拼写错误

  • 使用 oslotest 中的 moxstubout 和 mockpatch

  • 移除访问 sys.modules 时的 ValueError

  • 启用配置 tcp keepalive

  • 避免在没有主机时引发 index 错误

  • 移除 LOG.* 和异常中的 str()

  • 移除 SplitResult 的导入解决方法

  • 使用 oslotest 代替 common test 模块

  • 部分修复 test_strutils.py 在 Python 3 上的问题

  • 修复 safe_encode(): 在 Python 3 上返回字节

  • urlsplit 在 python26 中存在 IPv6 地址问题

  • save_and_reraise_exception: 使日志记录尊重 reraise 参数

  • strutils: 允许 safe_{encode,decode} 接受字节作为输入

  • 修复 test_excutils 中的导入顺序

  • 使用翻译域更新 oslo 日志消息

  • 实现 SI/IEC 单位系统转换为字节

  • 添加基本的 Python 3 测试

  • py3kcompat: 移除

  • 删除 cliutils 中的重复方法

  • strutils bool_from_string, 允许指定默认值

  • 使用 assertIsNone 和 assertIsNotNone

  • 修复注释中的拼写错误

  • 使用 hacking import_exceptions 获取 gettextutils._

  • 更正无效的文档字符串

  • 修复 safe_encode 中的一个错误,该错误在 py3 中返回一个字节对象

  • 修复参数文档中的拼写错误 (timeutils)

  • 避免在 is_older_than, is_newer_than 中出现 TypeError

  • 删除 vim 标头

  • 使用 py3kcompat urlutils 函数代替 urlparse

  • 添加 total_seconds 辅助方法到 timeutils.py

  • 不要将变量命名为内置变量

  • 在测试中使用 six.text_type 代替 unicode 函数

  • 修复 oslo 中的拼写错误

  • 调整导入顺序以符合 PEP8 导入规则

  • python3: 使用 six.text_types 用于 unicode()

  • 不要遮蔽 str

  • 修复 timeutils.set_override_time 不默认设置为当前墙面时间

  • 修复单元测试中误用的 assertTrue

  • 优化 timeutils.utcnow_ts()

  • excutils: 用 six.u 替换 unicode

  • excutils: 使用 six.reraise 重新引发

  • 替换使用 tests.utils part2

  • 将 hacking 升级到 0.7.0

  • 将 tests.utils 的使用替换为 openstack.common.test

  • BaseException.message 自 Python 2.6 起已弃用

  • 启用 hacking H302 检查

  • 添加条件异常重新引发

  • python3: 添加 python3 兼容性

  • 使基于 AMQP 的 RPC 消费者线程更健壮

  • 添加 network_utils.urlsplit

  • 移除 networks_utils 中的无用日志记录

  • python3: 修复运行 python3 时的回溯

  • 重构 to_bytes

  • 添加 slugify 到 strutils

  • 启用 hacking H404 测试

  • 将常用代码添加到 fileutils 和 strutils

  • 启用 hacking H402 测试

  • 启用 hacking H403 测试

  • 启用 hacking H201 测试

  • 将 ‘t’, ‘y’, 和 `strict` 添加到 `bool_from_string`

  • 处理传递给 `boolean_from_string` 的整数

  • 移除 test_timeutils 中整数的前导零

  • 转换 unicode 字符串以实现 python3 可移植性

  • 不要在 strutils 中导入 openstack.common.log

  • 改进 Python 3.x 兼容性

  • 替换标准日志记录为通用日志记录

  • 删除测试模块中未使用的导入

  • 修复版权标头 - 将 LLC 更改为 Foundation

  • 支持 ISO 8601 微秒精度

  • 解码 / 编码字符串工具用于 openstack

  • timeutils: 认为现在很快

  • 替换对 testtools BaseTestCase 的直接使用

  • 使用 testtools 作为测试基类

  • 从 keystoneclient 导入 timeutils.is_soon

  • UTC ISO8601 从时间戳

  • 实现 importutils.try_import

  • 使用 basestring 代替 str 进行类型检查

  • 使时间比较函数接受字符串

  • 修复 timeutils 测试中的时区处理

  • 将 utils.py 重命名为 strutils.py

  • 为没有 _() 的消息提供 i18n

  • 使项目 pyflakes 清洁

  • 考虑 LoopingCall 延迟中的任务持续时间

  • datetime.timedelta.total_seconds() 的便捷包装器

  • 添加 is_newer_than 函数

  • 将 parse_host_port 提取到 network_utils

  • Normalize_time() 始终返回 naive 对象

  • 使用 pep8 v1.3.3

  • 不要捕获然后重新引发 ImportError

  • 修复拼写错误

  • 支持在 marshalling datetime 时保留微秒

  • 移除未使用的导入

  • 修复 bug lp:1019348,更新 openstack-common 以支持 pep8 1.3

  • 在 to_primitive() 中使用 strtime() 处理 datetime 对象

  • 改进 importutils.import_class() 中的异常

  • 更新通用代码以支持 pep 1.3. bug 1014216

  • 添加 import_object_ns 函数

  • 添加更真实的 importutils 单元测试

  • 修复 utcnow_ts 返回 UTC 时间戳

  • 将 nova 时间实用程序函数添加到 timeutils

  • 用 timeutils.utcnow 替换 datetime.utcnow

  • 移除 common.exception 从 common.importutils

  • 添加 save_and_reraise_exception()

  • 更新 importutils.import_class() 中的异常

  • 更改 utils.import_object() 中的行为

  • 创建 openstack.common.timeutils

  • 初始骨架项目