基于hledger查询创建和管理报表的简单包装器。
hreports的Python项目详细描述
hr端口
基于hledger查询创建和管理报表的简单包装器。
- 自由软件:麻省理工学院许可证
- 文档:https://hreports.readthedocs.io。
功能
hreports保存hledger查询的快捷方式,以便方便地管理多个 使用不同设置和分类帐文件的查询。此外,hreports还可以保存 使用pandoc使用jinja模板将查询输出到pdfs。
- 方便地创建和管理多个heldger查询
- 使用模板自定义hledger查询结果的表示形式
- 以PDF格式保存报告结果
- 参数化查询
- 用例:使用单个命令生成发票,例如hreports save invoice_client1
- 用例:管理税务报告,例如hreports show tax_2017
快速启动
确保已安装hledger。如果要保存生成pdf报告 pandoc(>;=1.16)和wkhtml2pdf这样的pdf引擎也需要安装。确保使用修补版本wkthltopdf来确保 https://github.com/wkhtmltopdf/wkhtmltopdf/issues/2037
使用pip安装hreports:
$ pip install hreports
运行hledger查询的起点是有一个分类帐来运行查询 反对。想象一下下面这个简单的hlegder文件:
$ cat cash-account.ledger 1917/12/14 * Income assets:cash 10 USD income:client1 1917/12/12 * Expense assets:cash 5 USD expense:milk
还有一张时间表:
$ cat timesheet.ledger 1917/12/14 * Time (consulting:clien1) 1
下面的命令创建一个名为balance的报表来执行查询 ledger bal–深度1在分类账上cash.ledger:
$ hreports create balance --query "bal --depth 1" --ledger cash.ledger
执行时,hreports将查询数据存储在配置文件中以备将来使用 参考资料。现在,hreports可以通过运行:
$ hreports show balance 5 USD assets -------------------- 5 USD
这使得在不同的分类账文件上存储许多不同的查询变得很容易 并通过引用它们的hreports名称来执行它们。
模板化
有时,将上下文添加到查询结果中会很有帮助。hreports使用jinja 用于自定义报表表示形式的模板。查询结果是 添加到模板上下文中的输出变量中。此外, 报表配置数据、全局配置和自定义变量 添加了。
想象一下下面的简单模板:
$ cat balance.template The balance on {{ now }} the balance was {{ output|last }}
hreports现在可以使用此模板嵌入查询结果:
$ hreports show balance --template balance.template The balance on 2017-12-15 15:39:11.519658 was: 5 USD
如果您需要此信息以供将来参考,请通过 执行:
$ hreports save balance --template balance.template Saved balance.pdf
如果您继续重复使用此命令,只需更新报表即可:
$ hreports update balance --template balance.template
现在,当呈现平衡时,hreports将始终使用balance.template 报告。
当使用hledger进行时间跟踪和 开发票。创建一个hreport和一个简单的演示模板。添加自定义 变量名(“小时费率”)和值(“20”),带有-var选项:
$ hreports create timesheet --ledger timesheet.ledger -q "bal" -var hourly_rate 20 --template invoice.template $ cat invoice.template {% set hours = output|last|float|round(2) %} {% set net = hours * hourly_rate|float %} Please pay me {{ net }} USD. Signed {{ now|datetime("%Y/%m/%d") }} $ hreports show timesheet Please pay me 20.0 USD. Signed on 2017/12/15
无可否认,这是一个有点简单的例子。但你可以随便看看 heldger edit–模板发票模板 德国发票。
最后,所有报表配置数据都存储在一个简单的yaml文件中,该文件 如果愿意,可以手动操作。检查和操纵 配置文件运行:
$ hreports edit
路线图
- 添加文档
- 添加测试
学分
这个包是用Cookiecutter和 audreyr/cookiecutter-pypackage项目模板。
历史记录
0.2.1(2018-12-23)
- 向输出子流程调用添加字符串解码
- 更新依赖项和次要修复程序
0.2.0(2018-04-01)
- 添加测试
- 改进异常处理
0.1.5(2018-03-05)
- 添加模板筛选器以创建相对日期
- 添加multiply_last_column模板过滤器以添加额外的列,该列将每行上的最后一个字符串与自定义fac相乘TOR
- 添加百分比模板筛选器以添加一个额外的列,该列显示行中最后一个字符串的百分比,与输出的右键值相比
- 为check_output命令保留双引号中的空格
- 按字母顺序显示报表列表
0.1.4(2017-12-15)
- 添加第一个模板(德国发票)
- 为模板呈现和hledger命令添加异常捕获
0.1.3(2017-12-15)
- 添加模板和一些初始文档。
0.1.2(2017-12-03)
- pypi上的第一个版本。