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
文件中所有依赖库的版本
测试用例:
- 更新部分测试用例
- 移除已废弃函数的测试代码