Source code for sequana.utils.df2html

# -*- coding: utf-8 -*-
#
#  This file is part of Sequana software
#
#  Copyright (c) 2016-2021 - Sequana Development Team
#
#  File author(s):
#      Thomas Cokelaer <thomas.cokelaer@pasteur.fr>
#
#  Distributed under the terms of the 3-clause BSD license.
#  The full license is in the LICENSE file, distributed with this software.
#
#  website: https://github.com/sequana/sequana
#  documentation: http://sequana.readthedocs.io
#
##############################################################################
import uuid

from sequana.utils.datatables_js import DataTable


[docs] def df2html(df, name=None, dom="Brt", show_index=False, pageLength=15): """Simple wrapper to create HTML from dataframe If a columns ends in _links and a name_links exists, then the columns name will be shown with the clickable name_links. """ if name is None: name = uuid.uuid1().time_low # looks like datatable does not like ID made of numbers, even in string # so we convert to ABCDEFGH values name = "".join([chr(65 + int(x)) for x in str(name)]) datatable = DataTable(df, name, index=show_index) datatable.datatable.datatable_options = { "pageLength": pageLength, "scrollCollapse": "false", "dom": dom, "buttons": ["copy", "csv"], } # identify links (columns ending in _links) df.columns = [str(x) for x in df.columns] for column in df.columns: if column.endswith("_links"): prefix = column.replace("_links", "") if prefix in df.columns: datatable.datatable.set_links_to_column(column, prefix) js = datatable.create_javascript_function() html = datatable.create_datatable(float_format="%.6g") return js + html