Skip to content

A flexible framework for visualizing data and automated creation of "good enough" reports.

License

Notifications You must be signed in to change notification settings

man-group/PyBloqs

Repository files navigation

pybloqs

PyBloqs is a flexible framework for visualizing data and automated creation of "good enough" reports.

CircleCI PyPI ReadTheDocs Coverage Status


PyBloqs in use in ipython notebook

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).

Quickstart

Install PyBloqs

$ pip install pybloqs

See the documentation for further installation instructions.

Using PyBloqs

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')

Configuration

You can specify per-user default parameters in a yaml-formatted file ~/.pybloqs.cfg. See the configuration section of the documentation for more details.

Requirements

Please see pyproject.toml for a list of dependencies, and the installation guide for details on optional dependencies.

Acknowledgements

PyBloqs has been under active development at Man AHL since 2013.

Original concept and implementation:

Tom Farnbauer

Contributors:

Dominik Christ Barry Fitzgerald Wilfred Hughes James Munro Bogdan Cozmaciuc Dave Jepson Jason Matthews Rhodi Richards Doug Bruce Jonathan Nye Matthew Dodds Han Wei Teo Manjunath Goudreddy Edwin Flores jamesoliverh Romain Morotti Robert Spencer Radu Andra James Hylands and many others at Man Group and elsewhere...

Contributions welcome!

License

PyBloqs is licensed under the GNU LGPL v2.1. A copy of which is included in LICENSE.