fava.util¶
一些小型实用函数。
- fava.util.get_translations(locale)¶
检查 Fava 是否支持指定的区域设置。
- fava.util.listify(func)¶
将生成器函数包装为返回列表的装饰器。
- fava.util.next_key(basekey, keys)¶
在提供的字典中返回 basekey 的下一个未使用的键。
首先尝试 basekey,然后依次尝试 basekey-2、basekey-3 等,直到找到一个可用的键。
- 返回类型:
- fava.util.send_file_inline(filename)¶
以内联方式发送文件,包含原始文件名。
参考: http://test.greenbytes.de/tech/tc2231/。
- 返回类型:
响应
- fava.util.slugify(string)¶
将字符串转换为 slug 格式。
fava.util.date¶
与日期相关的功能。
备注
日期范围始终为元组 (start, end),从包含起始日期到不包含结束日期。
- class fava.util.date.DateRange(begin, end)¶
一个日期范围,通常对应一个时间区间。
- class fava.util.date.FiscalYearEnd(month, day)¶
指定财年结束的月份和日期。
- exception fava.util.date.FyeHasNoQuartersError¶
只有在每月第一天开始的财年才支持财季。
- 类 fava.util.date.Interval¶
一个区间。
- exception fava.util.date.InvalidDateRangeError¶
结束日期必须在开始日期之后。
- fava.util.date.dateranges(begin, end, interval, *, complete)¶
获取给定开始和结束日期的日期范围。
- fava.util.date.days_in_daterange(start_date, end_date)¶
为指定间隔内的每一天生成一个 datetime。
- fava.util.date.get_fiscal_period(年份, 财年结束日, 季度=None)¶
计算财年期间。
使用 fava 选项 “fiscal-year-end”,其格式应为 “%m-%d”。默认为日历年 [12-31]。
- fava.util.date.month_offset(date, months)¶
将日期按指定的月数偏移。
保持日期的天数不变,除非该天数无效,此时将抛出 ValueError。
- 返回类型:
- fava.util.date.parse_date(string, fye=None)¶
解析日期。
支持的格式示例:
2010-03-15、2010-03、2010
2010-W01、2010-Q3
FY2012、FY2012-Q2
日期范围可以用以下形式表示:
起始日期 - 结束日期
起始日期 到 结束日期
其中起始日期和结束日期类似于上述示例之一
- fava.util.date.substitute(string, fye=None)¶
替换引用当前日期的变量。
- 参数:
string (
str) – 可能包含今天变量的字符串。fye (
FiscalYearEnd|None) – 使用指定的财年结束日期
- 返回:
str– 一个字符串,其中如“year”或“week”等指向当前日期的变量已被parse_date()能识别的对应字符串替换。支持加减运算。
fava.util.excel¶
将查询结果写入 CSV 和电子表格文档。
- exception fava.util.excel.InvalidResultFormatError(result_format)¶
- fava.util.excel.to_csv(types, rows)¶
将结果保存为 CSV 文件。
fava.util.ranking¶
排名工具。
- class fava.util.ranking.ExponentialDecayRanker(list_=None, rate=0.0018990333713971104)¶
通过指数衰减对列表进行排序。
为列表中的项目维护分数。我们可以将其视为所有“喜欢”值的总和,其中每个“喜欢”的初始值为 1,并呈指数衰减。因此,当前分数由下式给出(其中 t 为当前时间,l 为“喜欢”发生的时间):
s = Σ exp(-RATE * (t - l))
由于仅需关注项目之间的相对顺序,我们可以将所有分数乘以 exp(RATE * t),因此只需计算以下分数:
s = Σ exp(RATE * l)
为避免数值过大,我们实际计算并存储该和的对数。
- 参数:
list – 如果提供,该列表将通过
.sort()进行排序;否则,所有至少有一个“喜欢”的项目都将被排序。rate (
float) – 设置衰减率。1/rate表示一个“喜欢”的价值降至1/e所需的时间(以天为单位)。默认速率设置为math.log(2) * 1/365,使得一年前的“喜欢”仅相当于今天的“喜欢”的一半。
- 列表¶
- 速率¶
fava.util.sets¶
用于 Python 集合的工具。
fava.util.unreachable¶
用于不可达代码的类型检查辅助工具。
- exception fava.util.unreachable.UnreachableCodeAssertionError¶
预期这段代码不可达。
- fava.util.unreachable.assert_never(_)¶
断言此代码不可达。
- 返回类型:
永不