fava.beans
用于处理 Beancount 类型的类型、函数和包装器。
fava.beans.abc
Beancount 类型的抽象基类。
-
类 fava.beans.abc.余额
一个 Beancount 余额指令。
-
抽象 属性 账户: str
指令的账户。
-
抽象 属性 差额: 金额 | None
指令的账户。
-
类 fava.beans.abc.销户
一个 Beancount 关闭指令。
-
抽象 属性 账户: str
指令的账户。
-
类 fava.beans.abc.商品
一个 Beancount 币种指令。
-
抽象 属性 货币: str
货币。
-
类 fava.beans.abc.自定义
一个 Beancount 自定义指令。
-
抽象 属性 type: str
指令类型。
-
抽象 属性 值: 序列[任意类型]
自定义值。
-
类 fava.beans.abc.Directive
一个 Beancount 指令。
-
抽象 属性 date: date
指令的元数据。
-
抽象 属性 meta: Mapping[str, str | 整数 | 布尔值 | Decimal | date | 金额]
指令的元数据。
-
类 fava.beans.abc.文档
一个 Beancount 文档指令。
-
抽象 属性 账户: str
指令的账户。
-
抽象 属性 filename: str
文档的文件名。
-
抽象 属性 链接: frozenset[str]
条目链接。
-
抽象 属性 标签: frozenset[str]
条目标签。
-
类 fava.beans.abc.事件
一个 Beancount 事件指令。
-
抽象 属性 账户: str
指令的账户。
-
类 fava.beans.abc.备注
一个 Beancount 注释指令。
-
抽象 属性 账户: str
指令的账户。
注释内容。
-
类 fava.beans.abc.开户
一个 Beancount 开户指令。
-
抽象 属性 账户: str
指令的账户。
-
抽象 属性 记账: 预订 | None
账户的预订方式。
-
抽象 属性 货币: 序列[str]
账户的有效货币。
-
类 fava.beans.abc.填充
一个 Beancount 填充指令。
-
抽象 属性 账户: str
指令的账户。
-
抽象 属性 源账户: str
填充的源账户。
-
类 fava.beans.abc.头寸
一个 Beancount 仓位——仅包含成本和数量。
-
抽象 属性 cost: 成本 | None
仓位的数量。
-
抽象 属性 units: 金额
分录的数量。
-
类 fava.beans.abc.分录
一个 Beancount 分录。
-
抽象 属性 账户: str
分录的账户。
-
抽象 属性 cost: 成本 | None
分录的数量。
-
抽象 属性 flag: str | None
分录的标记。
-
抽象 属性 meta: Mapping[str, str | 整数 | 布尔值 | Decimal | date | 金额] | None
分录的元数据。
-
抽象 属性 价格: 金额 | None
分录的价格。
-
抽象 属性 units: 金额
分录的数量。
-
类 fava.beans.abc.价格
一个 Beancount 价格指令。
-
抽象 属性 金额: 金额
价格金额。
-
抽象 属性 货币: str
此价格对应的货币。
-
类 fava.beans.abc.查询
一个 Beancount 查询指令。
-
抽象 属性 名称: str
此查询的名称。
-
抽象 属性 query_string: str
BQL 查询。
-
类 fava.beans.abc.交易
一个 Beancount 交易指令。
-
抽象 属性 flag: str
交易的标记。
-
抽象 属性 链接: frozenset[str]
条目链接。
-
抽象 属性 narration: str
交易的说明。
-
抽象 属性 payee: str
交易的收款方。
-
抽象 属性 分录: 序列[分录]
交易的收款方。
-
抽象 属性 标签: frozenset[str]
条目标签。
-
类 fava.beans.abc.TxnPosting
一笔交易和一个分录。
-
抽象 属性 记账: 分录
分录。
-
抽象 属性 交易: 交易
交易。
fava.beans.account
账户名称辅助函数。
- fava.beans.account.account_tester(账户, *, 包含子账户)
获取一个函数,用于检查账户是否等于指定账户。
- 参数:
-
- 返回类型:
Callable[[str], bool]
-
fava.beans.account.child_account_tester(账户)
获取一个函数,用于检查账户是否为指定账户的子账户。
- 返回类型:
Callable[[str], bool]
-
fava.beans.account.get_entry_accounts(条目)
交易条目的账户。
- 参数:
条目 (Directive) – 一个条目。
- 返回:
对于交易,记账账户按逆序列出。
- 返回类型:
按优先级排序的条目账户列表。
-
fava.beans.account.parent(账户)
获取给定账户的父账户名称。
- 返回类型:
str | None
-
fava.beans.account.root(账户)
获取给定账户的根账户。
- 返回类型:
str
fava.beans.create
用于创建条目的辅助函数。
- fava.beans.create.amount(金额, 货币=None)
从字符串或元组创建金额。
- 返回类型:
金额
- fava.beans.create.balance(meta, date, account, amount, tolerance=None, diff_amount=None)
创建一个 Beancount 余额。
- 返回类型:
余额
- fava.beans.create.close(meta, date, account)
创建一个 Beancount 关闭记录。
- 返回类型:
销户
- fava.beans.create.cost(number, currency, date, label=None)
创建一个成本。
- 返回类型:
成本
- fava.beans.create.document(meta, date, account, filename, tags=None, links=None)
创建一个 Beancount 文档。
- 返回类型:
文档
- fava.beans.create.note(meta, date, account, comment, tags=None, links=None)
创建一个 Beancount 注释。
- 返回类型:
备注
- fava.beans.create.open(meta, date, account, currencies, booking=None)
创建一个 Beancount 关闭记录。
- 返回类型:
开户
- fava.beans.create.position(units, cost)
创建一个持仓。
- 返回类型:
头寸
- fava.beans.create.posting(账户, 数量, 成本=None, 价格=None, 标记=None, 元数据=None)
创建一个 Beancount 记录。
- 返回类型:
分录
- fava.beans.create.transaction(元数据, 日期, 标记, 收款方, 描述, 标签=None, 链接=None, 记录=None)
创建一个 Beancount 交易。
- 返回类型:
交易
fava.beans.flags
Beancount 条目标记。
fava.beans.funcs
用于处理 Beancount 数据的各种函数。
-
fava.beans.funcs.get_position(条目)
从条目元数据中获取文件名和位置。
- 返回类型:
tuple[str, int]
-
fava.beans.funcs.hash_entry(条目)
对条目进行哈希处理。
- 返回类型:
str
fava.beans.helpers
Beancount 条目的辅助函数。
- fava.beans.helpers.replace(entry, **kwargs)
创建给定指令的副本,并替换部分参数。
- 返回类型:
TypeVar(T, bound= Directive | Posting)
- fava.beans.helpers.slice_entry_dates(entries, begin, end)
获取指定日期范围内的条目切片。
- 参数:
-
- 返回:
Sequence[TypeVar(T, bound= Directive | Posting)] – 在给定日期之间的切片。
fava.beans.ingest
Beancount 导入器的类型定义。
- class fava.beans.ingest.BeanImporterProtocol(*args, **kwargs)
Beancount 导入器的接口。
beancount.ingest.importer.ImporterProtocol 的 typing.Protocol 版本
导入器可以继承此类而非 Beancount 的原始类,以获得对方法的类型检查支持。
从文件中提取交易记录。
- 返回类型:
list[Directive] | None
-
file_account(file)
返回与给定文件关联的账户。
- 返回类型:
str
-
file_date(file)
尝试获取与给定文件对应的日期。
- 返回类型:
date | None
-
file_name(file)
一个可选的文件重命名过滤器,用于文件归档前的重命名。
- 返回类型:
str | None
-
identify(file)
如果此导入器匹配给定文件,则返回 True。
- 返回类型:
布尔值
-
名称()
为此导入器返回一个唯一的 ID 或名称。
- 返回类型:
str
- class fava.beans.ingest.FileMemo(*args, **kwargs)
传递给导入器的带有缓存支持的文件对象。
-
contents()
获取文件内容。
- 返回类型:
str
-
convert(converter_func)
对文件运行转换函数。
- 返回类型:
TypeVar(T)
-
mimetype()
获取文件的 MIME 类型。
- 返回类型:
str
-
名称:
str
fava.beans.prices
价格辅助工具。
-
类 fava.beans.prices.DateKeyWrapper(inner)
一个包装价格列表以用于二分查找的类。
这在 Python 3.10 之前是必需的,因为 3.10 版本增加了 key 参数。
-
inner
-
类 fava.beans.prices.FavaPriceMap(price_entries)
Beancount 的 PriceMap 的 Fava 替代实现。
通过在此类上添加更多方法,可以减少需要导入的辅助函数数量。此外,此实现具有完整的类型注解,便于更轻松地复现整个价格逻辑中的问题。
此行为与 Beancount 略有不同。Beancount 会为每种货币对创建一个列表,然后合并反向汇率;而我们则同时创建两个方向的列表,并统计价格出现的方向。
- 参数:
price_entries (Iterable[Price]) – 一个已排序的价格条目列表。
-
commodity_pairs(operating_currencies)
列出商品对。
- 参数:
operating_currencies (Sequence[str]) – 一组运营货币。
- 返回:
list[tuple[str, str]] – 商品对列表。运营货币之间的组合将双向列出,而不仅限于文件中更常见的方向。
-
get_all_prices(base_quote)
获取指定货币对的所有价格。
- 返回类型:
列表[元组[日期, Decimal]] | None
- get_price(base_quote, date=None)
获取给定货币对的价格。
- 返回类型:
Decimal | None
- get_price_point(base_quote, date=None)
获取给定货币对的价格点。
- 返回类型:
元组[日期, Decimal] | 元组[None, Decimal] | 元组[None, None]
fava.beans.protocols
Beancount 类型的抽象基类。
- 类 fava.beans.protocols.Amount(*args, **kwargs)
某种货币的金额。
-
属性 货币: str
金额的货币。
-
属性 数字: Decimal
金额中的单位数量。
- 类 fava.beans.protocols.Cost(*args, **kwargs)
成本(基本上是带有日期和标签的数量)。
-
属性 货币: str
成本的货币。
-
属性 date: date
成本的日期。
-
属性 label: str | None
成本的标签。
-
属性 数字: Decimal
成本中的单位数量。
- 类 fava.beans.protocols.Position(*args, **kwargs)
一个 Beancount 仓位——仅包含成本和数量。
-
属性 cost: 成本 | None
仓位的数量。
-
属性 units: 金额
分录的数量。
fava.beans.str
将 Beancount 类型转换为字符串。
-
fava.beans.str.amount_to_string(obj)
将数量转换为字符串。
- 返回类型:
str
-
fava.beans.str.cost_to_string(cost)
将成本转换为字符串。
- 返回类型:
str
- fava.beans.str.to_string(obj, _currency_column=None, _indent=None)
转换为字符串。
- 返回类型:
str
fava.beans.types
类型辅助工具。
-
类 fava.beans.types.BeancountOptions
Beancount 选项。
-
account_current_conversions: str
-
account_current_earnings: str
-
dcontext: DisplayContext
-
documents: Sequence[str]
-
filename: str
-
include: Sequence[str]
-
name_assets: str
-
name_equity: str
-
name_expenses: str
-
name_income: str
-
name_liabilities: str
-
operating_currency: Sequence[str]
-
render_commas: 布尔值
-
title: str