PyBloqs is a flexible framework for visualizing data and automated creation of "good enough" reports.
Sometimes all you want is a quick and easy way to generate a static report. No bells, no whistles, no server setup and no network permissions. Just a PDF, html file or even a PNG.
PyBloqs is the simple solution for creating such data-rich reports.
It works with Pandas, matplotlib and highcharts and more. See your blocks in a notebook, in the browser, or as an image, and easily share them via the filesystem or email!
PyBloqs creates atomic blocks containing text, tables (from data frames), plots (matplotlib, plotly or highcharts) or images. All blocks can be styled with CSS. Each block can be created and displayed separately for fast development turnover. Lists of blocks can be stacked together to form reports. Reports can be displayed as HTML in the browser or exported in a variety of formats (including HTML, PDF, SVG, PNG).
$ pip install pybloqs
See the documentation for further installation instructions.
Please consult the user guide for more in-depth usage.
from pybloqs import Block, HStack, VStack
import pandas as pd
from matplotlib import pyplot as plt
text_block = Block('This is a text block', styles={'text-align':'center', 'color':'blue'})
text_block.show()
df = pd.DataFrame([[1., 2.],[3.,4.]], columns =['a', 'b'])
table_block = Block(df)
table_block.show()
plot_block = Block(plt.plot(df['a'], df['b']))
plot_block.show()
plot_and_table = HStack([plot_block, table_block])
report = VStack([text_block, plot_and_table])
report.show()
report.save('report.pdf')
You can specify per-user default parameters in a yaml-formatted file ~/.pybloqs.cfg
. See the configuration section of the documentation for more details.
Please see pyproject.toml
for a list of dependencies, and the installation guide for details on optional dependencies.
PyBloqs has been under active development at Man AHL since 2013.
and many others at Man Group and elsewhere...
Contributions welcome!
PyBloqs is licensed under the GNU LGPL v2.1. A copy of which is included in LICENSE.