v3.5发布日志
发布日期:2021年11月15日
1 python版本支持
Borax 3.5 支持python3.5 ~ 3.10。
从 Borax3.6开始将移除对python3.5的支持。
2 festivals2新版节日库
festivals2
和 festivals
相比,功能也更为丰富。
festivals.DateSchema
和 festivals2.Festival
都是节日的基类,不可实例化。
DateSchema | Festival | 备注 |
---|---|---|
DateSchema.match | Festival.is_ | |
DateSchema.resolve/resolve_solar | Festival.at | at增加month参数 |
DateSchema.countdown | Festival.countdown | Festival.countdown返回值新增相差天数 |
- | Festival.get_one_day | |
- | Festival.list_days |
3 废弃LunarDate序列化
随着 festivals2 的引入,节日日期序列化的实现进行了改变,类 LunarDate
不再继承 EncoderMixin
。下面的调用方式将被废弃:
from borax.calendars import LunarDate
ld = LunarDate(2021, 8, 15)
print(ld.encode()) # 202108150
ld2 = LunarDate.decode('202102010')
print(ld2) # LunarDate(2021, 2, 1)
新版将使用下列的方式,即通过 WrappedDate
对象作为转化的中间桥梁。
from borax.calendars import LunarDate
from borax.calendars.festivals2 import WrappedDate
ld = LunarDate(2021, 8, 15)
print(WrappedDate(ld).encode()) # '1202108150'
# 根据传入WrappedDate的日期类型决定按公历或农历方式编码
sd = ld.to_solar_date()
print(WrappedDate(sd).encode()) # '0202109210'
wd = WrappedDate.decode('1202102010')
print(wd.lunar) # LunarDate(2021, 2, 1)
4 移除的模块和函数
- 模块
borax.calendars.festivals
- 模块
borax.serialize.bjson
- 函数
borax.serialize.cjson.to_serializable
- 函数
borax.datasets.join_.old_join
- 函数
borax.datasets.join_.old_join_one
- 模块
borax.finance