从熊猫到金雅的HTML生成者
reportlib的Python项目详细描述
报表库
用于Python或Python笔记本的灵活且强大的报表库,其中Pandas和Jinja2支持
Latest Release | |
License | |
Python Version | |
Wheel |
这是什么?
^ {STR 1 } $RePiRib 是一个Python包,提供快速灵活的实用工具来装饰和呈现报表。因为它基于pandas的样式器,所以它对pandas数据框很友好,所以如果您得到了数据,就可以轻松地显示和导出它。
主要功能
以下是reportlib的一些优点:
- 基于pandas's Styler的强大灵活的样式器,与熊猫数据文件友好,具有更多的样式方法
- 对python笔记本很友好,因此您可以用html显示styler或报表
- 配置分析器:从字符串到其他数据类型,用于从环境或其他配置文件快速获取配置
- 使用Jinja2支持自定义所有内容:表头和表脚(样式器)、报表模板、css
从何处获取
源代码当前托管在teko的gitlab上,地址为:https://git.teko.vn/data/libs/reportlib
最新版本的二进制安装程序可在Python package index
pip install reportlib
依赖关系:
- css-html-js-minify:2.5或更高
- htmlmin:0.1或更高
- Jinja2:2.10或更高
- pandas:0.24或更高
- python-dateutil:2.8或更高
- PyYAML:5.1或更高
- tkmail:4.0.1或更高版本
- premailer:3.5或更高
从源安装:
克隆存储库,然后在reportlib
目录中执行以下命令(与克隆git repo后找到此文件的目录相同)
python setup.py install
或者,如果您希望自动拉入所有依赖项,-e选项用于在开发模式下安装它,则可以使用pip:
pip install -e .
基本用法
项目结构
root/ (or root/src/)
|-+-templates/
| |-styles.css
|-report.py
|-email_config.yml
|-metadata.yml
...
配置报告
exportREPORT_DATE='2019-06-30'exportEMAIL_USERNAME='your.email@gmail.com'exportEMAIL_PASSWORD='email-password'
提交报告
"""report.py"""importosimportpandasaspdimportnumpyasnpfromdatetimeimportdatetimefromdateutil.relativedeltaimportrelativedeltaimportreportlibfromreportlibimportReport,ConfigParser,Styler# Parse config from envconfig=ConfigParser(config=os.environ)report_date=config.date('REPORT_DATE',default='yesterday')# Prepare datadf=pd.DataFrame(np.random.randn(8,4),columns=['a','b','c','d'])# Config reportreportlib.add_template_dir('templates')Styler.set_option('precision',2)Styler.set_option('fillna','-')Styler.set_option('fillinf','-')Styler.set_option('fillzero','-')# Initial generatorreport=Report(styles='styles.css',title='Report Demo',context={'report_date':report_date},html_output='report_output.html',email_config='email_config.yml',email_credentials={'username':config.get('EMAIL_USERNAME'),'password':config.get('EMAIL_PASSWORD'),})# Styling datastyle=(Styler(df).add_class('bold highlight',subset=pd.IndexSlice[0:1,df.columns])# Bold and Highlight some row by using class `highlight`.add_class('text-right',columns=df.columns)# Align right columns)# Add tablesreport.add_table(style)# Run reportreport.run()
完整文档
您可以在Wiki中找到完整的文档
获取帮助
对于用法问题,最好去Full Documentation。此外,对于一般性问题和讨论,您可以create an issue或通过电子邮件nhat.nv@teko.vn或通过Teko's workplace与我联系
对reportlib的贡献
欢迎所有贡献、错误报告、错误修复、文档改进、增强和想法。