v2.10.0
功能变动:
- 现在,对象在初始化时会对其有效性进行检查,并在检查不通过时抛出
InputError(链接格式不合法)或ResourceError(资源状态异常),因此对象的创建时间成本提高,目前不支持手动禁用检查 - 在
objects模块中新增函数get_cache_items_count、get_cache_status、set_cache_status和clear_cache,用于对objects模块的全局缓存进行操作 objects模块中的DISABLE_CACHE常量被重命名为_DISABLE_CACHE,请使用objects.get_cache_status函数获取缓存状态,objects.set_cache_status设置缓存状态objects模块中的每个对象都新增了from_url和from_slug类方法,用于以特定方式构建资源对象- 优化了错误信息展示,现在大部分错误信息都会包含引起错误的资源 URL
- 现在,
assets_funcs.py中所有关于链接有效性判断的函数均变为基于正则进行判断 - 为所有模块加入
__all__变量,使用from JianshuResearchTools.module_name import *导入时,不再会导入无关的函数 - 支持使用
objects.Article.markdown获取 Markdown 格式的文章内容 - 优化对象初始化逻辑
- 内部模块
headers中的变量jianshu_request_header更名为api_request_header
错误修复:
- 修复面向对象模块中缓存逻辑错误导致缓存跨对象生效的问题
- 修复部分函数因参数顺序错误导致在某些情况下报错的问题
- 修复测试用例中的 Type Hints 错误
性能优化:
- 通过对正则表达式的优化,提升了
article.GetArticleHtml函数的性能
代码重构:
- 新增内部模块
utils,包含供包内共享的工具函数 - 将面向对象模块中
__str__字符串的生成逻辑抽象成单独函数utils.NameValueMappingToString - 将
objects模块中禁用检查调用函数的逻辑抽象成单独的函数utils.CallWithoutCheck - 将对象初始化时判断传入参数是否合法的逻辑抽象成单独的函数
utils.OnlyOne
文档更改:
- 更新
README.md中的部分代码示例 - 为
objects.Article类中关于获取文章内容的属性加入了风险提示 - 规范了代码注释中
URL的写法,为保证兼容性,函数名将延迟到下一个大版本中进行修改 - 为
utils.NameValueMappingToString函数加入了注释
依赖变动:
- 更新
usjon到 v5.3.0 以修复 CVE-2021-45958 漏洞 - 在
Pipfile中加入缺失的开发依赖pyyaml==6.0.0 - 为避免依赖版本问题导致的异常,我们固定了
Pipfile和setup.py文件中所有依赖库的版本
测试用例:
- 更新部分测试用例
- 移除已废弃函数的测试代码