fava.core¶
此模块提供 Fava 报表所需的数据。
- exception fava.core.EntryNotFoundForHashError(entry_hash)¶
未找到哈希值对应的条目。
- class fava.core.FavaLedger(path, *, poll_watcher=False)¶
创建一个 Beancount 账本的接口。
- 参数:
path (
str) – 主 Beancount 文件的路径。
- account_journal(filtered, account_name, conversion, *, with_children)¶
某个账户的日记账。
- 参数:
filtered (
FilteredLedger) – 当前过滤后的账本。account_name (
str) – 账户名称。conversion (
str|Conversion) – 要使用的转换方式。with_children (
bool) – 是否包含该账户的子账户的过账记录。
- 生成:
由
(索引, 条目, 变动, 余额)组成的元组。- 返回类型:
可迭代对象[元组[int,Directive,SimpleCounterInventory,SimpleCounterInventory]]
- 账户¶
一个
AccountDict模块 - 账户的详细信息。
-
all_entries_by_type:
EntriesByType¶ 按类型分组的所有(未过滤)条目的字典。
- attributes¶
一个
AttributesModule实例。
- beancount_file_path¶
主 Beancount 文件的路径。
- 预算¶
一个
BudgetModule实例。
- charts¶
一个
ChartModule实例。
- commodities¶
一个
CommoditiesModule实例。
- context(entry_hash)¶
条目的上下文信息。
- 属性 错误: 序列[BeancountError]¶
Beancount 加载过程中以及 Fava 模块产生的错误。
- 扩展¶
一个
ExtensionModule实例。
-
Fava 选项:
FavaOptions¶ 包含 Fava 所有选项值的字典。
-
fava_options_errors:
序列[BeancountError]¶ 解析自定义选项时产生的所有错误列表。
- file¶
一个
FileModule实例。
- format_decimal¶
一个
DecimalFormatModule实例。
- get_entry(entry_hash)¶
查找一个条目。
- 参数:
entry_hash (
str) — 条目的哈希值。- 返回:
Directive— 具有给定哈希值的条目。- 抛出:
EntryNotFoundForHashError — 如果不存在具有该哈希值的条目。
- get_filtered¶
- 静态 group_entries_by_type()¶
按类型对条目进行分组。
- 参数:
- 返回:
EntriesByType– 一个包含分组条目列表的命名元组。
- 导入¶
一个
IngestModule实例。
- interval_balances(filtered, interval, account_name, *, accumulate=False)¶
按区间划分的余额。
- join_path(*args)¶
相对于账本目录的路径。
- 返回类型:
Path
-
load_errors:
序列[BeancountError]¶ Beancount 报告的所有错误的列表。
-
options:
BeancountOptions¶ Beancount 选项映射。
- paths_to_watch()¶
获取包含文件和文档目录的路径。
-
价格:
FavaPriceMap¶ 价格映射。
- query_shell¶
QueryShell实例。
- statement_path(entry_hash, metadata_key)¶
获取指定条目中语句的路径。
我们查找的条目应包含指向文档的路径(绝对路径或相对于条目文件名的相对路径),或仅包含其基本名称。我们将遍历所有文档,并根据完整路径进行匹配,或如果某个具有匹配账户的文档具有匹配的文件基本名称,则进行匹配。
- 参数:
- 返回:
str– 匹配的文档条目的文件名。- 抛出:
StatementMetadataInvalidError – 如果给定键处的元数据无效。
StatementNotFoundError – 如果未找到匹配的文档。
- watcher¶
- class fava.core.FilteredLedger(ledger, *, account=None, filter=None, time=None)¶
过滤后的 Beancount 账本。
- account_is_closed(account_name)¶
检查账户是否已关闭。
- entries¶
- ledger¶
- paginate_journal(page, per_page=1000)¶
获取带有分页信息的日记账页面条目。
- exception fava.core.StatementMetadataInvalidError(key)¶
未找到或无效的报表元数据。
- exception fava.core.StatementNotFoundError¶
未找到报表。
fava.core.accounts¶
账户关闭日期和元数据。
- class fava.core.accounts.AccountData(close_date=None, meta=<factory>, uptodate_status=None, balance_string=None, last_entry=None)¶
保存有关账户的信息。
- 类 fava.core.accounts.AccountDict(ledger)¶
账户信息字典。
- EMPTY = AccountData(close_date=None, meta={}, uptodate_status=None, balance_string=None, last_entry=None)¶
- setdefault(key, _=None)¶
获取指定名称的账户,如果不存在则插入一个。
- 返回类型:
- class fava.core.accounts.LastEntry(date, entry_hash)¶
账户最后一条记录的日期和哈希值。
fava.core.attributes¶
用于自动补全的属性。
- 类 fava.core.attributes.AttributesModule(ledger)¶
账本的一些属性(主要用于自动补全)。
fava.core.budgets¶
解析和计算预算。
- 类 fava.core.budgets.Budget(account: str, date_start: datetime.date, period: Interval, number: Decimal, currency: str)¶
一个预算条目。
- class fava.core.budgets.BudgetError(source: Meta | None, message: str, entry: Directive | None)¶
预算错误。
- 类 fava.core.budgets.BudgetModule(ledger)¶
解析预算条目。
- fava.core.budgets.calculate_budget(budgets, account, date_from, date_to)¶
计算账户的预算。
- fava.core.budgets.calculate_budget_children(budgets, account, date_from, date_to)¶
计算账户及其子账户的预算。
fava.core.charts¶
提供适用于 Fava 图表的数据。
- 类 fava.core.charts.ChartModule(ledger)¶
返回 Fava 中各种图表所需的数据。
- 层级结构(筛选后的, 账户名称, 转换)¶
渲染账户树。
- 返回类型:
- 区间总计(已过滤的账本, 区间, 账户, 转换方式, *, 反转=假)¶
在指定区间内渲染账户(或多个账户)的总计。
- linechart(filtered, account_name, conversion)¶
以折线图形式获取账户余额。
- 参数:
已过滤的账本 (
已过滤账本) – 已过滤的账本。account_name (
str) — 一个字符串。conversion (
str|Conversion) – 要使用的转换方式。
- 生成:
包含指定账户余额发生变更的所有日期的字典,每个字典记录该日期账户的余额(以单位计)。
- 返回类型:
- net_worth(filtered, interval, conversion)¶
计算净资产。
- 参数:
已过滤的账本 (
已过滤账本) – 已过滤的账本。interval (
Interval) — 表示时间段的字符串。conversion (
str|Conversion) – 要使用的转换方式。
- 生成:
包含指定时间段末尾的所有字典,每个字典分别将净资产(资产 + 负债)转换为所有运营货币。
- 返回类型:
- class fava.core.charts.DateAndBalance(date, balance)¶
某日期的余额。
- class fava.core.charts.DateAndBalanceWithBudget(date, balance, account_balances, budgets)¶
带预算的日期余额。
-
account_balances:
Mapping[str,SimpleCounterInventory]¶
-
account_balances:
- 类 fava.core.charts.FavaJSONProvider(app)¶
使用自定义的 JSON 编码器和解码器。
fava.core.commodities¶
用于自动补全的属性。
fava.core.conversion¶
Fava 的商品转换辅助工具。
本模块中的所有函数将自动作为模板过滤器添加。
- fava.core.conversion.AT_COST = <fava.core.conversion._AtCostConversion object>¶
将持仓转换为其总成本。
- fava.core.conversion.AT_VALUE = <fava.core.conversion._AtValueConversion object>¶
将头寸转换为其市场价值。
- 类 fava.core.conversion.Conversion¶
转换。
- abstractmethod apply(inventory, prices, date=None)¶
将转换应用于库存(CounterInventory)。
- 返回类型:
- fava.core.conversion.单位 = <fava.core.conversion._UnitsConversion object>¶
将头寸转换为其单位。
- fava.core.conversion.conversion_from_str(value)¶
解析转换字符串。
- 返回类型:
- fava.core.conversion.convert_position(pos, target_currency, prices, date=None)¶
获取头寸在特定货币下的价值。
- fava.core.conversion.cost_or_value(inventory, conversion, prices, date=None)¶
获取库存的成本或价值。
- 返回类型:
- fava.core.conversion.get_market_value(pos, prices, date=None)¶
获取一个头寸的市场价值。
这与 Beancount 中的 convert.get_value 函数不同,当找不到价格时,它会返回成本值。
- 参数:
pos (
Position) – 一个头寸。prices (
FavaPriceMap) – 一个 FavaPriceMap。
- 返回:
Amount– 一个 Amount,其值已转换;若转换失败,则返回成本值(若头寸无成本,则返回单位)。
fava.core.documents¶
与文档路径相关的辅助函数。
- exception fava.core.documents.NotADocumentsFolderError(folder)¶
不是文档文件夹。
- exception fava.core.documents.NotAValidAccountError(账户)¶
不是有效的账户。
- fava.core.documents.filepath_in_document_folder(documents_folder, account, filename, ledger)¶
账户文件夹中文档的文件路径。
- 参数:
documents_folder (
str) – 文档文件夹。account (
str) – 用于选择子文件夹的账户。filename (
str) – 文档的文件名。ledger (
FavaLedger) – FavaLedger。
- 返回:
Path– 文档应保存的路径。
- fava.core.documents.is_document_or_import_file(filename, ledger)¶
检查文件名是否为文档或位于导入目录中。
- 参数:
filename (
str) – 要检查的文件名。ledger (
FavaLedger) – FavaLedger。
- 返回:
bool– 是否为文档之一或导入目录中的路径。
fava.core.extensions¶
Fava 扩展插件。
- class fava.core.extensions.ExtensionDetails(name, report_title, has_js_module)¶
前端所需扩展插件的信息。
- 类 fava.core.extensions.ExtensionModule(ledger)¶
Fava 扩展插件。
- 属性 extension_details: 序列[ExtensionDetails]¶
提供给前端的扩展插件信息。
- get_extension(名称)¶
获取指定名称的扩展插件。
- 返回类型:
fava.core.fava_options¶
Fava 的选项。
Fava 的选项可通过 Beancount 文件中的自定义条目指定。本模块包含所有可能选项的列表、默认值以及解析选项的代码。
- class fava.core.fava_options.FavaOptions(account_journal_include_children=True, auto_reload=False, collapse_pattern=<factory>, conversion_currencies=(), currency_column=61, default_file=None, default_page='income_statement/', fiscal_year_end=FiscalYearEnd(month=12, day=31), import_config=None, import_dirs=(), indent=2, insert_entry=<factory>, invert_gains_losses_colors=False, invert_income_liabilities_equity=False, language=None, locale=None, show_accounts_with_zero_balance=True, show_accounts_with_zero_transactions=True, show_closed_accounts=False, sidebar_show_queries=5, unrealized='Unrealized', upcoming_events=7, uptodate_indicator_grey_lookback_days=60, use_external_editor=False)¶
可在 Beancount 文件中设置的 Fava 选项。
-
fiscal_year_end:
FiscalYearEnd= FiscalYearEnd(month=12, day=31)¶
-
insert_entry:
序列[InsertEntryOption]¶
-
fiscal_year_end:
- class fava.core.fava_options.InsertEntryOption(date, re, filename, lineno)¶
插入选项。
一个决定匹配账户的条目应插入位置的选项。
- exception fava.core.fava_options.InvalidFiscalYearEndOptionError(value)¶
- exception fava.core.fava_options.MissingOptionError¶
- exception fava.core.fava_options.NotARegularExpressionError(value)¶
- exception fava.core.fava_options.NotAStringOptionError(key)¶
- class fava.core.fava_options.OptionError(source: Meta | None, message: str, entry: Directive | None)¶
Fava 选项的错误。
- exception fava.core.fava_options.UnknownLocaleOptionError(value)¶
- exception fava.core.fava_options.UnknownOptionError(key)¶
- exception fava.core.fava_options.UnsupportedLanguageOptionError(value)¶
- fava.core.fava_options.parse_option_custom_entry(entry, options)¶
解析单个自定义 Fava 选项条目并相应设置选项。
- 返回类型:
- fava.core.fava_options.parse_options(custom_entries)¶
解析 Fava 选项的自定义条目。
选项条目的格式如下:
2016-04-01 custom "fava-option" "[name]" "[value]"
- 参数:
- 返回:
tuple[FavaOptions,list[OptionError]] – 一个元组 (options, errors),其中 options 是包含所有选项及其值的字典,errors 包含可能的解析错误。
fava.core.file¶
读取/写入 Beancount 文件。
- exception fava.core.file.ExternallyChangedError(path)¶
文件被外部修改。
- 类 fava.core.file.FileModule(ledger)¶
与读取/写入 Beancount 文件相关的函数。
- delete_entry_slice(entry_hash, sha256sum)¶
删除某个条目在源文件中的片段。
- 参数:
- 抛出:
FavaAPIError – 如果未找到该条目或文件已被修改。
- 返回类型:
- get_source(path)¶
获取源文件。
- 参数:
path (
Path) – 文件的路径。- 返回:
- 抛出:
NonSourceFileError – 如果该文件不是源文件之一。
InvalidUnicodeError – 如果文件包含无效的 Unicode 字符。
- insert_metadata(entry_hash, basekey, value)¶
在指定行号处向文件中插入元数据。
同时防止重复的键。
- render_entries(entries)¶
以 Beancount 格式返回条目。
仅渲染
Balance和Transaction。
- save_entry_slice(entry_hash, source_slice, sha256sum)¶
为条目保存源文件的片段。
- 参数:
- 返回:
str– 条目新行内容的 sha256sum 哈希值。- 抛出:
FavaAPIError – 如果未找到该条目或文件已被修改。
- set_source(path, source, sha256sum)¶
写入源文件。
- 参数:
- 返回:
str– 更新后文件的 sha256sum 哈希值。- 抛出:
NonSourceFileError – 如果该文件不是源文件之一。
InvalidUnicodeError – 如果文件包含无效的 Unicode 字符。
ExternallyChangedError – 如果文件被外部修改。
- exception fava.core.file.InvalidUnicodeError(reason)¶
源文件包含无效的 Unicode。
- exception fava.core.file.NonSourceFileError(path)¶
尝试读取非源文件。
- fava.core.file.delete_entry_slice(entry, sha256sum)¶
删除某个条目在源文件中的片段。
- 参数:
- 抛出:
ExternallyChangedError – 如果文件被外部修改。
- 返回类型:
- fava.core.file.find_entry_lines(lines, lineno)¶
从 lineno 开始的条目行。
- fava.core.file.find_insert_position(entry, insert_options, default_filename)¶
查找条目的插入位置。
- fava.core.file.get_entry_slice(条目)¶
获取条目的源文件切片。
- fava.core.file.insert_entry(entry, default_filename, insert_options, currency_column, indent)¶
插入一条记录。
- 参数:
- 返回:
tuple[Path,Sequence[InsertEntryOption]] – 修改后的路径和更新后的插入选项列表。
- fava.core.file.insert_metadata_in_file(path, lineno, indent, key, value)¶
在 lineno 之后的文件中插入指定的元数据。
考虑 lineno 所在行前的空白字符。
- 返回类型:
fava.core.filters¶
条目过滤器。
- 类 fava.core.filters.AccountFilter(value)¶
按账户过滤。
过滤字符串可以是正则表达式或父账户。
- 类 fava.core.filters.AdvancedFilter(value)¶
按标签、链接和键筛选。
- 类 fava.core.filters.EntryFilter¶
筛选条目列表。
- 异常 fava.core.filters.FilterError(filter_type, message)¶
筛选异常。
- exception fava.core.filters.FilterIllegalCharError(字符)¶
非法字符筛选错误。
- exception fava.core.filters.FilterParseError¶
筛选解析错误。
- 类 fava.core.filters.FilterSyntaxLexer¶
Fava 筛选语法的词法分析器。
- 规则 = (('LINK', '\\^[A-Za-z0-9\\-_/.]+'), ('TAG', '\\#[A-Za-z0-9\\-_/.]+'), ('ALL', 'all\\('), ('ANY', 'any\\('), ('KEY', '[a-z][a-zA-Z0-9\\-_]+(?=\\s*(:|=|>=|<=|<|>))'), ('EQ_OP', ':'), ('CMP_OP', '(=|>=|<=|<|>)'), ('NUMBER', '\\d*\\.?\\d+'), ('STRING', '\\w[-\\w]*|"[^"]*"|\'[^\']*\''))¶
- lex(data)¶
一个生成器,用于输出给定行中的所有标记。
- regex = re.compile('(?P<LINK>\\^[A-Za-z0-9\\-_/.]+)|(?P<TAG>\\#[A-Za-z0-9\\-_/.]+)|(?P<ALL>all\\()|(?P<ANY>any\\()|(?P<KEY>[a-z][a-zA-Z0-9\\-_]+(?=\\s*(:|=|>=|<=|<|>)))|(?P<EQ_OP>:)|(?P<CMP_OP>(=|>=|<=|<|>))|(?P<NUMBER>)¶
- tokens = ('ANY', 'ALL', 'CMP_OP', 'EQ_OP', 'KEY', 'LINK', 'NUMBER', 'STRING', 'TAG')¶
- 类 fava.core.filters.FilterSyntaxParser¶
-
- precedence = (('left', 'AND'), ('right', 'UMINUS'))¶
- tokens = ('ANY', 'ALL', 'CMP_OP', 'EQ_OP', 'KEY', 'LINK', 'NUMBER', 'STRING', 'TAG')¶
- exception fava.core.filters.TimeFilterParseError(value)¶
时间过滤器解析错误。
fava.core.group_entries¶
按类型分组的条目。
- 类 fava.core.group_entries.EntriesByType(余额: 序列[abc.Balance], 关闭: 序列[abc.Close], 货币: 序列[abc.Commodity], 自定义: 序列[abc.Custom], 文档: 序列[abc.Document], 事件: 序列[abc.Event], 备注: 序列[abc.Note], 开户: 序列[abc.Open], 补足: 序列[abc.Pad], 价格: 序列[abc.Price], 查询: 序列[abc.Query], 交易: 序列[abc.Transaction])¶
按类型分组的条目。
- 类 fava.core.group_entries.TransactionPosting(transaction: abc.Transaction, posting: abc.Posting)¶
交易和记账项的组合。
- fava.core.group_entries.group_entries_by_account(entries)¶
按账户对记账项进行分组。
- fava.core.group_entries.group_entries_by_type(entries)¶
按类型对条目进行分组。
- 参数:
- 返回:
EntriesByType– 一个包含分组条目列表的命名元组。
fava.core.ingest¶
导入辅助函数。
- 类 fava.core.ingest.FileImportInfo(importer_name, account, date, name)¶
关于一个文件/导入器组合的信息。
- 类 fava.core.ingest.FileImporters(name, basename, importers)¶
用于文件的导入器。
-
importers:
列表[FileImportInfo]¶
-
importers:
- exception fava.core.ingest.ImportConfigLoadError(message)¶
加载导入配置时出错。
- exception fava.core.ingest.ImporterExtractError¶
调用导入器的 extract 方法时出错。
- 异常 fava.core.ingest.ImporterInvalidTypeError(属性, 预期, 实际)¶
某个导入器方法返回了意外的类型。
- exception fava.core.ingest.ImporterMethodCallError¶
调用某个导入器方法时出错。
- 类 fava.core.ingest.IngestModule(ledger)¶
提供导入功能。
- 提取(文件名, 导入器名称)¶
使用指定的导入器从文件中提取条目。
- import_data()¶
识别可导入的文件和导入器。
- 返回:
list[FileImporters] – 一个包含FileImportInfo的列表。
- exception fava.core.ingest.MissingImporterConfigError¶
缺少 import-config 选项。
- exception fava.core.ingest.MissingImporterDirsError¶
您至少需要设置一个 imports-dir。
- 类 fava.core.ingest.WrappedImporter(导入器)¶
用于安全调用导入器方法的包装器。
-
导入器:
BeanImporterProtocol|导入器¶
- 属性 名称: T¶
-
导入器:
- fava.core.ingest.extract_from_file(wrapped_importer, path, existing_entries)¶
从文档中导入条目。
- 参数:
wrapped_importer (
WrappedImporter) – 用于处理文档的导入器实例。path (
Path) – 文档的文件系统路径。
- 返回:
- fava.core.ingest.filepath_in_primary_imports_folder(filename, ledger)¶
用于上传到主导入文件夹的文档的文件路径。
- 参数:
filename (
str) – 文档的文件名。ledger (
FavaLedger) – FavaLedger。
- 返回:
Path– 文档应保存的路径。
- fava.core.ingest.find_imports(config, directory)¶
将文件与匹配的导入器配对。
- fava.core.ingest.get_cached_file(path)¶
获取一个缓存的 FileMemo。
在从缓存中获取之前,会检查文件的修改时间。除了使用 beangulp 缓存外。
- 返回类型:
- fava.core.ingest.load_import_config(模块路径)¶
加载给定的导入配置,并提取导入器和钩子。
- 参数:
module_path (
Path) —— 导入配置的路径。- 返回:
tuple[Mapping[str,WrappedImporter],Sequence[Callable[[list[tuple[str,list[Directive],str,BeanImporterProtocol|Importer]] |list[tuple[str,list[Directive]]],Sequence[Directive]],list[tuple[str,list[Directive],str,BeanImporterProtocol|Importer]] |list[tuple[str,list[Directive]]]]]] —— 由名称标识的导入器及其钩子列表组成的对。
fava.core.inventory¶
Beancount 的 Inventory 的替代实现。
- 类 fava.core.inventory.CounterInventory¶
一种轻量级库存。
此实现旨在作为 Beancount 的 Inventory 类的更快替代方案。由于不使用列表,对于包含大量不同头寸的库存,插入操作要快得多。
键应为元组
(货币, 成本)。- add_inventory(counter)¶
添加另一个
CounterInventory。- 返回类型:
- reduce(reducer, *args, **_kwargs)¶
简化库存。
请注意,此方法返回一个仅以货币为键的简单
CounterInventory。- 返回类型:
fava.core.misc¶
一些杂项报告。
- class fava.core.misc.FavaError(source: Meta | None, message: str, entry: Directive | None)¶
Fava 特有的通用错误。
- 类 fava.core.misc.FavaMisc(ledger)¶
提供对一些杂项报表的访问。
- fava.core.misc.侧边栏链接(custom_entries)¶
解析自定义条目以获取链接。
其格式如下:
2016-04-01 custom "fava-sidebar-link" "2014" "/income_statement/?time=2014"
fava.core.module_base¶
FavaLedger 的“模块”的基类。
fava.core.number¶
数字格式化。
fava.core.query¶
查询结果类型。
- 类 fava.core.query.BaseColumn(name, dtype)¶
一个查询列。
- 类 fava.core.query.InventoryColumn(name, dtype='Inventory')¶
一个字符串查询列。
- 静态 serialise(val)¶
序列化库存。
- 返回类型:
- 类 fava.core.query.ObjectColumn(name, dtype='object')¶
一个对象查询列。
- 类 fava.core.query.QueryResultTable(类型, 行, t='table')¶
表格查询结果。
-
类型:
列表[BaseColumn]¶
-
类型:
- 类 fava.core.query.QueryResultText(内容, t='string')¶
文本查询结果。
fava.core.query_shell¶
用于从 Fava 中使用 Beancount shell。
- 类 fava.core.query_shell.FavaBQLShell(ledger)¶
对 Beancount shell 的轻量级封装。
- on_Select(statement)¶
从交易明细查询中提取数据。
SELECT 语句的一般形式大致遵循 SQL 语法,并包含一些轻微且符合习惯的扩展:
SELECT [DISTINCT] [<targets>|*] [FROM <from_expr> [OPEN ON <date>] [CLOSE [ON <date>]] [CLEAR]] [WHERE <where_expr>] [GROUP BY <groups>] [ORDER BY <groups> [ASC|DESC]] [LIMIT num]
其中:
- targets:一组期望从交易明细中输出的属性,
以及对这些属性的表达式。在此上下文中,父交易指令的一些属性也可用。支持单行返回值的简单函数和单组返回值的聚合函数均可使用。有关支持的列和函数的完整列表,请参见“targets”帮助。您也可以在此处使用通配符,以选择一组合理的默认列用于渲染日记账。
- from_expr:匹配指令(而非交易明细)属性的逻辑表达式。
这允许您选择一部分交易,从而确保余额报告符合会计等式。有关支持的列和函数的完整列表,请参见“from”帮助。
- where_expr:匹配交易明细属性的逻辑表达式。
可用的列与 targets 子句中的类似,但不包含聚合函数。
- OPEN 子句:用以下方式替换指定日期之前的所有交易:
汇总条目,并将收入和支出余额转入权益。
CLOSE 子句:删除指定日期之后的所有交易,并
CLEAR:将最终的收入和支出余额转入权益。
- 返回类型:
游标
- exception fava.core.query_shell.FavaShellError(message)¶
Fava BQL shell 中的错误将被转换为字符串。
- exception fava.core.query_shell.NonExportableQueryError¶
只有返回表格的查询才能输出到文件。
- exception fava.core.query_shell.QueryCompilationError(err)¶
查询编译错误。
- exception fava.core.query_shell.QueryNotFoundError(名称)¶
查询“{name}”未找到。
- exception fava.core.query_shell.QueryParseError(err)¶
查询解析错误。
- 类 fava.core.query_shell.QueryShell(ledger)¶
一个用于运行 BQL 查询的 Fava 模块。
- execute_query_serialised(条目, 查询)¶
运行查询并返回其序列化结果。
- 参数:
- 返回:
QueryResultTable|QueryResultText– 表格结果或文本结果(取决于查询)。- 抛出:
FavaAPIError – 如果查询响应为错误。
- query_to_file(条目, 查询字符串, 结果格式)¶
将查询结果作为文件获取。
- exception fava.core.query_shell.TooManyRunArgsError(args)¶
运行命令的参数过多:'{args}'。
fava.core.tree¶
账户余额树。
- class fava.core.tree.SerialisedTreeNode(account, balance, balance_children, children, has_txns, cost=None, cost_children=None)¶
一个序列化的 TreeNode。
-
balance_children:
SimpleCounterInventory¶
-
children:
序列[SerialisedTreeNode]¶
-
cost:
SimpleCounterInventory|None= None¶
-
cost_children:
SimpleCounterInventory|None= None¶
-
balance_children:
- class fava.core.tree.Tree(entries=None, create_accounts=None)¶
账户树。
- 参数:
- cap(options, unrealized_account)¶
转移收入与支出,添加汇兑损益和未实现收益。
- 参数:
options (
BeancountOptions) – Beancount 选项。unrealized_account (
str) – 用于记录未实现收益的账户名称(作为 Equity 的子账户)。
- 返回类型:
- 获取(名称, *, 插入=False)¶
获取一个账户。
- 插入(名称, 余额)¶
插入一个带有余额的账户。
插入账户并更新其余额及其所有祖先账户的余额。
- 参数:
name (
str) – 账户名称。balance (
CounterInventory) – 账户的余额。
- 返回类型:
- 净收益(选项, 账户名称)¶
计算净收益。
- 参数:
options (
BeancountOptions) – Beancount 选项。account_name (
str) – 用于包含净收益的账户的名称。
- 返回类型:
fava.core.watcher¶
一个简单的文件和文件夹监视器。
- 类 fava.core.watcher.Watcher¶
一个简单的文件和文件夹监视器。
对于文件夹,仅检查文件夹及其所有子目录的修改时间。因此,文件更改不会被察觉,仅能检测到新增或删除的文件。
- 类 fava.core.watcher.WatcherBase¶
Fava 账本文件监视器的抽象基类。