pybloqs


Namepybloqs JSON
Version 1.2.13 PyPI version JSON
download
home_pagehttps://github.com/man-group/pybloqs
SummaryData Visualization and Report Building
upload_time2022-01-25 16:50:43
maintainer
docs_urlNone
authorMan Alpha Technology
requires_python
license
keywords ahl pdf html visualization report
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            |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"
}
        
Elapsed time: 0.08496s