Skip to content

v3.5发布日志

发布日期:2021年11月15日

1 python版本支持

Borax 3.5 支持python3.5 ~ 3.10。

从 Borax3.6开始将移除对python3.5的支持。

2 festivals2新版节日库

festivals2festivals 相比,功能也更为丰富。

festivals.DateSchemafestivals2.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