|pybloqs|
=========
|CircleCI| |PyPI| |ReadTheDocs| |Coverage Status|
PyBloqs is a flexible framework for visualizing data and automated
creation of reports.
.. figure:: pybloqs_in_notebook.png
:alt: pybloqs in use in ipython notebook
pybloqs in use in ipython notebook
It works with `Pandas <http://pandas.pydata.org>`__,
`matplotlib <http://matplotlib.org>`__ and
`highcharts <http://www.highcharts.com>`__. PyBloqs creates atomic
blocks containing text, tables (from Pandas DataFrame), plots
(matplotlib 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
~~~~~~~~~~~~~~~
For a minimal install without HighCharts support run:
::
pip install pybloqs
or when installing in development mode:
::
python setup.py develop
This will allow you to run the example code below.
External dependencies
~~~~~~~~~~~~~~~~~~~~~
For full functionality, PyBloqs requires the following 3rd party
programs and libraries. For some, the file location must be specified at
install time:
::
pip install --install-option="INSTALL OPTIONS" git+https://github.com/manahl/pybloqs.git
e.g.
::
pip install --install-option="--highcharts=~/node_modules/highcharts/,~/node_modules/highcharts-heatmap/" git+https://github.com/manahl/pybloqs.git
- Libraries bundled with PyBloqs:
- jsinflate.js (https://github.com/augustl/js-inflate; MIT License)
- jquery.js (https://jquery.com; MIT License)
- jquery-DataTables.js (https://datatables.net; MIT License)
- wkhtmltopdf/wkhtmltoimage (http://wkhtmltopdf.org/; LGPLv3):
wkhtmltopdf is not bundled with PyBloqs. You need to install it from
your distribution's repository (Linux) or download it from the project
page (https://wkhtmltopdf.org) . The binaries wkhtmltopdf and
wkhtmltoimage are used for file output other than HTML. PyBloqs will
search for the binaries on the system path. If you would like to use a
local copy of the binaries, install with following option:
::
--wkhtmltopdf=/path/to/binary
When installing in development mode you can load wkhtmltopdf explicitly:
::
python setup.py load_wkhtmltopdf --wkhtmltopdf=/path/to/binary
- Node.js with comander and puppeteer (optional; for PDF output with
'chrome\_headless' backend). Please make sure these are available
globally. In development mode, you can run
::
npm install
in the main PyBloqs directory.
- Bokeh (optional). To install Bokeh dependency, you can use:
::
pip install pybloqs[bokeh]
- Plotly (optional). To install Plotly dependency, you can use:
::
pip install pybloqs[plotly]
- HighCharts (optional; proprietary license, see
https://shop.highsoft.com/highcharts-t2):
Highcharts is not bundled with PyBloqs. To create blocks with Highcharts
plots, you need to download Highcharts separately (e.g. with
``npm install highcharts``, ``npm install highcharts-heatmap`` etc.),
and provide the path to your highcharts installation. Please make sure
you have the right license for Highcharts. For full functionality you
will need the following highcharts packages: highcharts,
highcharts-heatmap, highcharts-funnel, highcharts-exporting,
highcharts-export-csv (this example assumes, npm installed files into
directory ~/node\_modules).
::
--highcharts=~/node_modules/highcharts/,
~/node_modules/highcharts-heatmap/,~/node_modules/highcharts-funnel,~/node_modules/highcharts-exporting,
~/node_modules/highcharts-export-csv
When installing in development mode you can load highcharts explicitly
(this example assumes, npm installed files into directory
~/node\_modules)
::
python setup.py load_highcharts --highcharts=~/node_modules/highcharts/,~/node_modules/highcharts-heatmap/,\
~/node_modules/highcharts-funnel,~/node_modules/highcharts-exporting,~/node_modules/highcharts-export-csv
Using PyBloqs
~~~~~~~~~~~~~
::
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. This config file allows you to setup a call setup and
login sequence against an smtplib.SMTP
(https://docs.python.org/2/library/smtplib.html#smtplib.SMTP) object.
The following works for Google gmail - more details here
(https://support.google.com/a/answer/176600?hl=en)
::
smtp_kwargs:
host: smtp.gmail.com
port: 587
smtp_pre_login_calls:
- !!python/tuple
- ehlo
- {}
- !!python/tuple
- starttls
- {}
- !!python/tuple
- ehlo
- {}
smtp_login:
user: me@gmail.com
password: a_secret
public_dir: /tmp
tmp_html_dir: /tmp
user_email_address: me@gmail.com
Documentation
-------------
Have a look at the `detailed
documentation <https://pybloqs.readthedocs.io>`__.
Requirements
------------
PyBloqs works with:
- matplotlib
- Pandas
- html5lib
- lxml
- jinja2
- markdown
- beautifulsoup4
- docutils
Acknowledgements
----------------
PyBloqs has been under active development at `Man
AHL <http://www.ahl.com/>`__ since 2013.
Original concept and implementation: `Tom
Farnbauer <https://github.com/SleepingPills>`__
Contributors:
- `Dominik Christ <https://github.com/DominikMChrist>`__
- `Barry Fitzgerald <https://github.com/pablojim>`__
- `Wilfred Hughes <https://github.com/wilfred>`__
- `James Munro <https://github.com/jamesmunro>`__
- `Bogdan Cozmaciuc <https://github.com/cozmacib>`__
- `Dave Jepson <https://github.com/swedishhh>`__
- `Jason Matthews <https://github.com/jjbmatthews>`__
- `Rhodri Richards <https://github.com/rhodrich>`__
- `Doug Bruce <https://github.com/douglasbruce88>`__
- `Jonathan Nye <https://github.com/jonnynye>`__
- `Matthew Dodds <https://github.com/doddsiedodds>`__
- `Han Wei Teo <https://github.com/HanTeo>`__
- `Manjunath Goudreddy <https://github.com/manjugoudreddy>`__
- `Edwin Flores <https://github.com/edf825>`__
- ... and many others ...
Contributions welcome!
License
-------
PyBloqs is licensed under the GNU LGPL v2.1. A copy of which is included
in `LICENSE <LICENSE>`__
.. |pybloqs| image:: logo/logo50.png
:target: https://github.com/manahl/pybloqs
.. |CircleCI| image:: https://circleci.com/gh/man-group/PyBloqs.svg?style=shield
:target: https://circleci.com/gh/man-group/PyBloqs
.. |PyPI| image:: https://img.shields.io/pypi/pyversions/pybloqs.svg
:target: https://pypi.python.org/pypi/pybloqs/
.. |ReadTheDocs| image:: https://readthedocs.org/projects/pybloqsmain/badge
:target: https://pybloqsmain.readthedocs.io
.. |Coverage Status| image:: https://coveralls.io/repos/github/manahl/PyBloqs/badge.svg?branch=master
:target: https://coveralls.io/github/manahl/PyBloqs?branch=master
Changelog
1.0.0 (2017-04-07)
~~~~~~~~~~~~~~~~~~
- Initial public release
1.0.1 (2017-04-13)
~~~~~~~~~~~~~~~~~~
- Integration with pypi and ReadTheDocs.
- Installation on Mac and Windows.
1.0.2 (2017-04-26)
~~~~~~~~~~~~~~~~~~
- Metadata and badge for Python version.
- Python 3 compatibility changes, part 1.
- Installation with Coveralls.
1.0.3 (2017-04-26)
~~~~~~~~~~~~~~~~~~
- Bugfix: Import of urlparse corrected, fixes Block.show() .
1.1.0 (2017-05-10)
~~~~~~~~~~~~~~~~~~
- jQuery DataTables support.
- HTML anchors.
- Bugfix: Width of HTML-body no longer hard-coded.
1.1.1 (2017-05-10)
~~~~~~~~~~~~~~~~~~
- Bugfix: Static data including DataTables CSS.
1.1.2 (2017-06-2)
~~~~~~~~~~~~~~~~~
- Bugfix: Image size for Matplotlib figure no longer truncated to whole
number.
- Updated download path for wkhtmltopdf in CI setup.
1.1.3 (2017-06-6)
~~~~~~~~~~~~~~~~~
- Bugfix: Expansion of user home directory for show().
- Bugfix: Flexible definition of default type handling for Block() that
allows updating.
1.1.4 (2017-06-22)
~~~~~~~~~~~~~~~~~~
- Bugfix: When applying operator on rows or columns (e.g. in totals
row), replace nan with zero.
1.1.5 (2017-08-22)
~~~~~~~~~~~~~~~~~~
- Bugfix: Multi-index formatter can now digest DataFrame with
nun-unique multi-index.
- Bugfix: ReadTheDocs autodoc build fixed.
1.1.6 (2017-08-23)
~~~~~~~~~~~~~~~~~~
- Bugfix: Unicode meta tag set in html output and unicode strings
working wit Raw() block.
1.1.7 (2018-02-23)
~~~~~~~~~~~~~~~~~~
- Feature: More SMTP options
- Feature: UTF-8 email mime-type
- Feature: Allow BCC for email
1.1.8 (2018-03-26)
~~~~~~~~~~~~~~~~~~
- Bugfix: FmtHighlightText - explicitly set non-bold for column header
- Feature: Add page break example to documentation
- Bugfix: Pass ``apply_to_header_and_index`` to base class on all
formatters
1.1.9 (2018-09-19)
~~~~~~~~~~~~~~~~~~
- Bugfix: Indexing error in table.html with non-unique indices
- Bugfix: Removed Pandas warning in tests
- Remove WidePanel, update ipynb
- Feature: Add support for specifying different text colors for
MultiIndex levels
- Feature: Add a context manager for temporarily setting plot
format/DPI
1.2.0 (2018-11-21)
~~~~~~~~~~~~~~~~~~
- Feature: Python 3 support
- Feature: Support for Bokeh plots
- Feature: Support for Plotly plots
- Feature: Allow use of different HTML conversion backends
- Feature: Added Chrome-headless backend for HTML->PDF conversion
- Updated CircleCI configuration to version 2
1.2.1 (2018-11-23)
~~~~~~~~~~~~~~~~~~
- Bugfix: Removed pybloqs.plot import from top-level **init**.py
- Bugfix: puppeteer.js now included in egg/wheel packaging
1.2.2 (2018-11-27)
~~~~~~~~~~~~~~~~~~
- Bugfix: Added missing formatter arg for wkhtmltox failure logging
1.2.3 (2018-12-03)
~~~~~~~~~~~~~~~~~~
- Bugfix: Ensured python2 strings were being correctly encoded
1.2.4 (2019-03-27)
~~~~~~~~~~~~~~~~~~
- Bugfix: Maintain static import ordering
1.2.5 (2019-06-25)
~~~~~~~~~~~~~~~~~~
- Bugfix: Totals Row formatter no longer inserts NaN for non-numeric
columns.
1.2.6 (2019-07-17)
~~~~~~~~~~~~~~~~~~
- Feature: Passing kwargs to plotly plot function.
1.2.7 (2019-08-06)
~~~~~~~~~~~~~~~~~~
- Bugfix: Use require.js for Plotly and Highcharts inside Jupyter
- Moved id\_precision to user\_config
- Use tmp\_html\_dir everywhere
1.2.8 (2020-08-25)
~~~~~~~~~~~~~~~~~~
- Bugfix: Use colgroup tag for FmtHeader width specification
- Bugfix: Do not merge MultiIndex cells if parent cells not merged
- Bugfix: Pass actual header cell contents to formatter methods
- Feature: Add ability to vertically merge MultiIndex labels
1.2.9 (2020-12-02)
~~~~~~~~~~~~~~~~~~
- Bugfix: Fix header positions when index is a MultiIndex
- Bugfix: Fix MultiIndex styling
- Feature: Add formatter for vertical-align
1.2.10 (2020-12-03)
~~~~~~~~~~~~~~~~~~~
- Bugfix: Pass only single row name into formatter from jinja table
template
1.2.11 (2020-12-03)
~~~~~~~~~~~~~~~~~~~
- Bugfix: Stop MultiIndex flattening columns from being rendered
1.2.12 (2022-01-18)
~~~~~~~~~~~~~~~~~~~
- Feature: Add CommonTableFormatter builder to configuring table
formatting
- Bugfix: Fix striped background for table formatting
- Deprecate Python 2.7, make Python 3.6 minimum required version
1.2.13 (2022-01-25)
~~~~~~~~~~~~~~~~~~~
- Bugfix: Fix output of Plotly blocks no longer showing in newer
versions of Jupyter
- Bugfix: Add static output to Bokeh and Plotly to enable sending
within email body
Raw data
{
"_id": null,
"home_page": "https://github.com/man-group/pybloqs",
"name": "pybloqs",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "ahl,pdf,html,visualization,report",
"author": "Man Alpha Technology",
"author_email": "ManAlphaTech@man.com",
"download_url": "https://files.pythonhosted.org/packages/ca/5f/37544dcde44db8a2cd8b16a889c1a43e6da4057a5f1e0f58bef5f9329a6e/pybloqs-1.2.13.tar.gz",
"platform": "",
"description": "|pybloqs|\n=========\n\n|CircleCI| |PyPI| |ReadTheDocs| |Coverage Status|\n\nPyBloqs is a flexible framework for visualizing data and automated\ncreation of reports.\n\n.. figure:: pybloqs_in_notebook.png\n :alt: pybloqs in use in ipython notebook\n\n pybloqs in use in ipython notebook\n\u00a0\n\nIt works with `Pandas <http://pandas.pydata.org>`__,\n`matplotlib <http://matplotlib.org>`__ and\n`highcharts <http://www.highcharts.com>`__. PyBloqs creates atomic\nblocks containing text, tables (from Pandas DataFrame), plots\n(matplotlib or highcharts) or images. All blocks can be styled with CSS.\nEach block can be created and displayed separately for fast development\nturnover. Lists of blocks can be stacked together to form reports.\nReports can be displayed as HTML in the browser or exported in a variety\nof formats (including HTML, PDF, SVG, PNG).\n\nQuickstart\n----------\n\nInstall PyBloqs\n~~~~~~~~~~~~~~~\n\nFor a minimal install without HighCharts support run:\n\n::\n\n pip install pybloqs\n\nor when installing in development mode:\n\n::\n\n python setup.py develop\n\nThis will allow you to run the example code below.\n\nExternal dependencies\n~~~~~~~~~~~~~~~~~~~~~\n\nFor full functionality, PyBloqs requires the following 3rd party\nprograms and libraries. For some, the file location must be specified at\ninstall time:\n\n::\n\n pip install --install-option=\"INSTALL OPTIONS\" git+https://github.com/manahl/pybloqs.git\n\ne.g.\n\n::\n\n pip install --install-option=\"--highcharts=~/node_modules/highcharts/,~/node_modules/highcharts-heatmap/\" git+https://github.com/manahl/pybloqs.git\n\n- Libraries bundled with PyBloqs:\n- jsinflate.js (https://github.com/augustl/js-inflate; MIT License)\n- jquery.js (https://jquery.com; MIT License)\n- jquery-DataTables.js (https://datatables.net; MIT License)\n\n- wkhtmltopdf/wkhtmltoimage (http://wkhtmltopdf.org/; LGPLv3):\n\nwkhtmltopdf is not bundled with PyBloqs. You need to install it from\nyour distribution's repository (Linux) or download it from the project\npage (https://wkhtmltopdf.org) . The binaries wkhtmltopdf and\nwkhtmltoimage are used for file output other than HTML. PyBloqs will\nsearch for the binaries on the system path. If you would like to use a\nlocal copy of the binaries, install with following option:\n\n::\n\n --wkhtmltopdf=/path/to/binary\n\nWhen installing in development mode you can load wkhtmltopdf explicitly:\n\n::\n\n python setup.py load_wkhtmltopdf --wkhtmltopdf=/path/to/binary\n\n- Node.js with comander and puppeteer (optional; for PDF output with\n 'chrome\\_headless' backend). Please make sure these are available\n globally. In development mode, you can run\n\n ::\n\n npm install\n\n in the main PyBloqs directory.\n\n- Bokeh (optional). To install Bokeh dependency, you can use:\n\n ::\n\n pip install pybloqs[bokeh]\n\n- Plotly (optional). To install Plotly dependency, you can use:\n\n ::\n\n pip install pybloqs[plotly]\n\n- HighCharts (optional; proprietary license, see\n https://shop.highsoft.com/highcharts-t2):\n\nHighcharts is not bundled with PyBloqs. To create blocks with Highcharts\nplots, you need to download Highcharts separately (e.g. with\n``npm install highcharts``, ``npm install highcharts-heatmap`` etc.),\nand provide the path to your highcharts installation. Please make sure\nyou have the right license for Highcharts. For full functionality you\nwill need the following highcharts packages: highcharts,\nhighcharts-heatmap, highcharts-funnel, highcharts-exporting,\nhighcharts-export-csv (this example assumes, npm installed files into\ndirectory ~/node\\_modules).\n\n::\n\n --highcharts=~/node_modules/highcharts/,\n ~/node_modules/highcharts-heatmap/,~/node_modules/highcharts-funnel,~/node_modules/highcharts-exporting,\n ~/node_modules/highcharts-export-csv\n\nWhen installing in development mode you can load highcharts explicitly\n(this example assumes, npm installed files into directory\n~/node\\_modules)\n\n::\n\n python setup.py load_highcharts --highcharts=~/node_modules/highcharts/,~/node_modules/highcharts-heatmap/,\\\n ~/node_modules/highcharts-funnel,~/node_modules/highcharts-exporting,~/node_modules/highcharts-export-csv\n\nUsing PyBloqs\n~~~~~~~~~~~~~\n\n::\n\n from pybloqs import Block, HStack, VStack\n import pandas as pd\n from matplotlib import pyplot as plt\n\n text_block = Block('This is a text block', styles={'text-align':'center', 'color':'blue'})\n text_block.show()\n\n df = pd.DataFrame([[1., 2.],[3.,4.]], columns =['a', 'b'])\n table_block = Block(df)\n table_block.show()\n\n plot_block = Block(plt.plot(df['a'], df['b']))\n plot_block.show()\n\n plot_and_table = HStack([plot_block, table_block])\n report = VStack([text_block, plot_and_table])\n report.show()\n report.save('report.pdf')\n\nConfiguration\n-------------\n\nYou can specify per-user default parameters in a yaml-formatted file\n~/.pybloqs.cfg. This config file allows you to setup a call setup and\nlogin sequence against an smtplib.SMTP\n(https://docs.python.org/2/library/smtplib.html#smtplib.SMTP) object.\nThe following works for Google gmail - more details here\n(https://support.google.com/a/answer/176600?hl=en)\n\n::\n\n smtp_kwargs:\n host: smtp.gmail.com\n port: 587\n smtp_pre_login_calls:\n - !!python/tuple\n - ehlo\n - {}\n - !!python/tuple\n - starttls\n - {}\n - !!python/tuple\n - ehlo\n - {}\n smtp_login:\n user: me@gmail.com\n password: a_secret\n public_dir: /tmp\n tmp_html_dir: /tmp\n user_email_address: me@gmail.com\n\nDocumentation\n-------------\n\nHave a look at the `detailed\ndocumentation <https://pybloqs.readthedocs.io>`__.\n\nRequirements\n------------\n\nPyBloqs works with:\n\n- matplotlib\n- Pandas\n- html5lib\n- lxml\n- jinja2\n- markdown\n- beautifulsoup4\n- docutils\n\nAcknowledgements\n----------------\n\nPyBloqs has been under active development at `Man\nAHL <http://www.ahl.com/>`__ since 2013.\n\nOriginal concept and implementation: `Tom\nFarnbauer <https://github.com/SleepingPills>`__\n\nContributors:\n\n- `Dominik Christ <https://github.com/DominikMChrist>`__\n- `Barry Fitzgerald <https://github.com/pablojim>`__\n- `Wilfred Hughes <https://github.com/wilfred>`__\n- `James Munro <https://github.com/jamesmunro>`__\n- `Bogdan Cozmaciuc <https://github.com/cozmacib>`__\n- `Dave Jepson <https://github.com/swedishhh>`__\n- `Jason Matthews <https://github.com/jjbmatthews>`__\n- `Rhodri Richards <https://github.com/rhodrich>`__\n- `Doug Bruce <https://github.com/douglasbruce88>`__\n- `Jonathan Nye <https://github.com/jonnynye>`__\n- `Matthew Dodds <https://github.com/doddsiedodds>`__\n- `Han Wei Teo <https://github.com/HanTeo>`__\n- `Manjunath Goudreddy <https://github.com/manjugoudreddy>`__\n- `Edwin Flores <https://github.com/edf825>`__\n- ... and many others ...\n\nContributions welcome!\n\nLicense\n-------\n\nPyBloqs is licensed under the GNU LGPL v2.1. A copy of which is included\nin `LICENSE <LICENSE>`__\n\n.. |pybloqs| image:: logo/logo50.png\n :target: https://github.com/manahl/pybloqs\n.. |CircleCI| image:: https://circleci.com/gh/man-group/PyBloqs.svg?style=shield\n :target: https://circleci.com/gh/man-group/PyBloqs\n.. |PyPI| image:: https://img.shields.io/pypi/pyversions/pybloqs.svg\n :target: https://pypi.python.org/pypi/pybloqs/\n.. |ReadTheDocs| image:: https://readthedocs.org/projects/pybloqsmain/badge\n :target: https://pybloqsmain.readthedocs.io\n.. |Coverage Status| image:: https://coveralls.io/repos/github/manahl/PyBloqs/badge.svg?branch=master\n :target: https://coveralls.io/github/manahl/PyBloqs?branch=master\n\nChangelog\n\n1.0.0 (2017-04-07)\n~~~~~~~~~~~~~~~~~~\n\n- Initial public release\n\n1.0.1 (2017-04-13)\n~~~~~~~~~~~~~~~~~~\n\n- Integration with pypi and ReadTheDocs.\n- Installation on Mac and Windows.\n\n1.0.2 (2017-04-26)\n~~~~~~~~~~~~~~~~~~\n\n- Metadata and badge for Python version.\n- Python 3 compatibility changes, part 1.\n- Installation with Coveralls.\n\n1.0.3 (2017-04-26)\n~~~~~~~~~~~~~~~~~~\n\n- Bugfix: Import of urlparse corrected, fixes Block.show() .\n\n1.1.0 (2017-05-10)\n~~~~~~~~~~~~~~~~~~\n\n- jQuery DataTables support.\n- HTML anchors.\n- Bugfix: Width of HTML-body no longer hard-coded.\n\n1.1.1 (2017-05-10)\n~~~~~~~~~~~~~~~~~~\n\n- Bugfix: Static data including DataTables CSS.\n\n1.1.2 (2017-06-2)\n~~~~~~~~~~~~~~~~~\n\n- Bugfix: Image size for Matplotlib figure no longer truncated to whole\n number.\n- Updated download path for wkhtmltopdf in CI setup.\n\n1.1.3 (2017-06-6)\n~~~~~~~~~~~~~~~~~\n\n- Bugfix: Expansion of user home directory for show().\n- Bugfix: Flexible definition of default type handling for Block() that\n allows updating.\n\n1.1.4 (2017-06-22)\n~~~~~~~~~~~~~~~~~~\n\n- Bugfix: When applying operator on rows or columns (e.g. in totals\n row), replace nan with zero.\n\n1.1.5 (2017-08-22)\n~~~~~~~~~~~~~~~~~~\n\n- Bugfix: Multi-index formatter can now digest DataFrame with\n nun-unique multi-index.\n- Bugfix: ReadTheDocs autodoc build fixed.\n\n1.1.6 (2017-08-23)\n~~~~~~~~~~~~~~~~~~\n\n- Bugfix: Unicode meta tag set in html output and unicode strings\n working wit Raw() block.\n\n1.1.7 (2018-02-23)\n~~~~~~~~~~~~~~~~~~\n\n- Feature: More SMTP options\n- Feature: UTF-8 email mime-type\n- Feature: Allow BCC for email\n\n1.1.8 (2018-03-26)\n~~~~~~~~~~~~~~~~~~\n\n- Bugfix: FmtHighlightText - explicitly set non-bold for column header\n- Feature: Add page break example to documentation\n- Bugfix: Pass ``apply_to_header_and_index`` to base class on all\n formatters\n\n1.1.9 (2018-09-19)\n~~~~~~~~~~~~~~~~~~\n\n- Bugfix: Indexing error in table.html with non-unique indices\n- Bugfix: Removed Pandas warning in tests\n- Remove WidePanel, update ipynb\n- Feature: Add support for specifying different text colors for\n MultiIndex levels\n- Feature: Add a context manager for temporarily setting plot\n format/DPI\n\n1.2.0 (2018-11-21)\n~~~~~~~~~~~~~~~~~~\n\n- Feature: Python 3 support\n- Feature: Support for Bokeh plots\n- Feature: Support for Plotly plots\n- Feature: Allow use of different HTML conversion backends\n- Feature: Added Chrome-headless backend for HTML->PDF conversion\n- Updated CircleCI configuration to version 2\n\n1.2.1 (2018-11-23)\n~~~~~~~~~~~~~~~~~~\n\n- Bugfix: Removed pybloqs.plot import from top-level **init**.py\n- Bugfix: puppeteer.js now included in egg/wheel packaging\n\n1.2.2 (2018-11-27)\n~~~~~~~~~~~~~~~~~~\n\n- Bugfix: Added missing formatter arg for wkhtmltox failure logging\n\n1.2.3 (2018-12-03)\n~~~~~~~~~~~~~~~~~~\n\n- Bugfix: Ensured python2 strings were being correctly encoded\n\n1.2.4 (2019-03-27)\n~~~~~~~~~~~~~~~~~~\n\n- Bugfix: Maintain static import ordering\n\n1.2.5 (2019-06-25)\n~~~~~~~~~~~~~~~~~~\n\n- Bugfix: Totals Row formatter no longer inserts NaN for non-numeric\n columns.\n\n1.2.6 (2019-07-17)\n~~~~~~~~~~~~~~~~~~\n\n- Feature: Passing kwargs to plotly plot function.\n\n1.2.7 (2019-08-06)\n~~~~~~~~~~~~~~~~~~\n\n- Bugfix: Use require.js for Plotly and Highcharts inside Jupyter\n- Moved id\\_precision to user\\_config\n- Use tmp\\_html\\_dir everywhere\n\n1.2.8 (2020-08-25)\n~~~~~~~~~~~~~~~~~~\n\n- Bugfix: Use colgroup tag for FmtHeader width specification\n- Bugfix: Do not merge MultiIndex cells if parent cells not merged\n- Bugfix: Pass actual header cell contents to formatter methods\n- Feature: Add ability to vertically merge MultiIndex labels\n\n1.2.9 (2020-12-02)\n~~~~~~~~~~~~~~~~~~\n\n- Bugfix: Fix header positions when index is a MultiIndex\n- Bugfix: Fix MultiIndex styling\n- Feature: Add formatter for vertical-align\n\n1.2.10 (2020-12-03)\n~~~~~~~~~~~~~~~~~~~\n\n- Bugfix: Pass only single row name into formatter from jinja table\n template\n\n1.2.11 (2020-12-03)\n~~~~~~~~~~~~~~~~~~~\n\n- Bugfix: Stop MultiIndex flattening columns from being rendered\n\n1.2.12 (2022-01-18)\n~~~~~~~~~~~~~~~~~~~\n\n- Feature: Add CommonTableFormatter builder to configuring table\n formatting\n- Bugfix: Fix striped background for table formatting\n- Deprecate Python 2.7, make Python 3.6 minimum required version\n\n1.2.13 (2022-01-25)\n~~~~~~~~~~~~~~~~~~~\n\n- Bugfix: Fix output of Plotly blocks no longer showing in newer\n versions of Jupyter\n- Bugfix: Add static output to Bokeh and Plotly to enable sending\n within email body\n\n\n\n",
"bugtrack_url": null,
"license": "",
"summary": "Data Visualization and Report Building",
"version": "1.2.13",
"project_urls": {
"Homepage": "https://github.com/man-group/pybloqs"
},
"split_keywords": [
"ahl",
"pdf",
"html",
"visualization",
"report"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f5c7c5db059cd4f23f54ab8389ac6c403501af4d8c2b46ec8d85f35789ff7125",
"md5": "803873be584aa8ed4243214710f0c91f",
"sha256": "7309da3c257c4b861a9c0bf616dbd7e4b94c6e7e193c3cd9c1f257e467c8543a"
},
"downloads": -1,
"filename": "pybloqs-1.2.13-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "803873be584aa8ed4243214710f0c91f",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 142719,
"upload_time": "2022-01-25T16:50:39",
"upload_time_iso_8601": "2022-01-25T16:50:39.461513Z",
"url": "https://files.pythonhosted.org/packages/f5/c7/c5db059cd4f23f54ab8389ac6c403501af4d8c2b46ec8d85f35789ff7125/pybloqs-1.2.13-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "59acb03b13a58c0b27c9ed4fd6b1341b1c8432a1d061b8e8302081c8f6d68b4d",
"md5": "625585d61cfe0d6400cbbef5e75499c9",
"sha256": "96cbf1d33ac55c2f375e0a021074276dcc56ed24616a045f9ff2613c1c4f717f"
},
"downloads": -1,
"filename": "pybloqs-1.2.13-py3.6.egg",
"has_sig": false,
"md5_digest": "625585d61cfe0d6400cbbef5e75499c9",
"packagetype": "bdist_egg",
"python_version": "1.2.13",
"requires_python": null,
"size": 132679,
"upload_time": "2022-01-25T16:50:41",
"upload_time_iso_8601": "2022-01-25T16:50:41.757816Z",
"url": "https://files.pythonhosted.org/packages/59/ac/b03b13a58c0b27c9ed4fd6b1341b1c8432a1d061b8e8302081c8f6d68b4d/pybloqs-1.2.13-py3.6.egg",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ca5f37544dcde44db8a2cd8b16a889c1a43e6da4057a5f1e0f58bef5f9329a6e",
"md5": "d12749b01c9194a4f034d0b0c165acb1",
"sha256": "df675c395eeb6648a6f24590d80bfa8206293a2b0e737a80830eea4f6672820b"
},
"downloads": -1,
"filename": "pybloqs-1.2.13.tar.gz",
"has_sig": false,
"md5_digest": "d12749b01c9194a4f034d0b0c165acb1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 138868,
"upload_time": "2022-01-25T16:50:43",
"upload_time_iso_8601": "2022-01-25T16:50:43.460910Z",
"url": "https://files.pythonhosted.org/packages/ca/5f/37544dcde44db8a2cd8b16a889c1a43e6da4057a5f1e0f58bef5f9329a6e/pybloqs-1.2.13.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-01-25 16:50:43",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "man-group",
"github_project": "pybloqs",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"circle": true,
"lcname": "pybloqs"
}