fava.ext

Fava 的扩展系统。

异常 fava.ext.ExtensionConfigError(error, config)
fava.ext.FavaExtensionBase(ledger, config=None)

Fava 扩展的基类。

所有扩展都应继承此类。find_extension() 将在指定模块中发现该类的所有子类。

after_delete_entry(条目)

在删除一个 entry 后运行。

返回类型

None

after_entry_modified(entry, new_lines)

在修改一个 entry 后运行。

返回类型

None

after_insert_entry(条目)

在插入一个 entry 后运行。

返回类型

None

after_insert_metadata(entry, key, value)

在向条目添加元数据(键:值)后运行。

返回类型

None

after_load_file()

在加载账本文件后运行。

返回类型

None

after_write_source(path, source)

在将 source 写入路径后运行。

返回类型

None

before_request()

在每个客户端请求前运行。

返回类型

None

config: 任意类型
endpoints: 字典[元组[str, str], Callable[[FavaExtensionBase], 任意类型]]
属性 extension_dir: Path

查找模板目录和 JavaScript 代码的目录。

has_js_module: 布尔值 = False

此扩展是否包含 JavaScript 模块。

属性 jinja_env: 环境

此扩展的 Jinja 环境。

属性 名称: str

此扩展的唯一名称。

report_title: str | None = None

此扩展的 HTML 报告名称。

class fava.ext.FavaExtensionError(source: Meta | None, message: str, entry: Directive | None)

Fava 扩展中的错误。

exception fava.ext.JinjaLoaderMissingError
fava.ext.extension_endpoint(func_or_endpoint_name=None, methods=None)

用于将函数标记为端点的装饰器。

可作为 @extension_endpoint@extension_endpoint(endpoint_name, methods) 使用。

当用作 @extension_endpoint 时,端点名称为函数名称,方法为 "GET"。

当用作 @extension_endpoint(endpoint_name, methods) 时,使用给定的端点名称和方法,但两者均为可选。若 endpoint_name 为 None,则默认使用函数名称;若 methods 为 None,则默认为 "GET"。

返回类型

Callable[[TypeVar(T, bound= FavaExtensionBase)], Response] | Callable[[Callable[[TypeVar(T, bound= FavaExtensionBase)], Response]], Callable[[TypeVar(T, bound= FavaExtensionBase)], Response]]

fava.ext.find_extensions(base_path, name)

在模块中查找扩展。

参数
  • base_path (Path) – 该模块可以相对于此路径指定。

  • name (str) – 包含扩展的模块名称。

返回

tuple[list[type[FavaExtensionBase]], list[FavaExtensionError]] – 一个元组 (classes, errors),其中 classes 是在 name 中找到的 FavaExtensionBase 的子类列表。

fava.ext.auto_commit

Fava 的自动提交钩子。

这主要作为示例,说明 Fava 的扩展系统(目前仅支持钩子)的工作方式。

fava.ext.auto_commit.AutoCommit(账本, 配置=)

Fava 的自动提交钩子。

after_delete_entry(条目)

after_delete_entry 时提交所有更改。

返回类型

None

after_entry_modified(条目, _新行)

after_entry_modified 时提交所有更改。

返回类型

None

after_insert_entry(条目)

after_insert_entry 时提交所有更改。

返回类型

None

after_insert_metadata(_条目, _键, _值)

after_insert_metadata 时提交所有更改。

返回类型

None

after_write_source(路径, _源)

将更改的文件添加到 git 并提交。

返回类型

None