Beispiel #1
0
    def show_html(self, filepath='SWEETVIZ_REPORT.html', open_browser=True, layout='widescreen', scale=None):
        scale = float(self.use_config_if_none(scale, "html_scale"))
        layout = self.use_config_if_none(layout, "html_layout")
        if layout not in ['widescreen', 'vertical']:
            raise ValueError(f"'layout' parameter must be either 'widescreen' or 'vertical'")
        sv_html.load_layout_globals_from_config()
        self.page_layout = layout
        self.scale = scale
        sv_html.set_summary_positions(self)
        sv_html.generate_html_detail(self)
        if self.associations_html_source:
            self.associations_html_source = sv_html.generate_html_associations(self, "source")
        if self.associations_html_compare:
            self.associations_html_compare = sv_html.generate_html_associations(self, "compare")
        self._page_html = sv_html.generate_html_dataframe_page(self)

        f = open(filepath, 'w', encoding="utf-8")
        f.write(self._page_html)
        f.close()
        if open_browser:
            print(f"Report {filepath} was generated! NOTEBOOK/COLAB USERS: the web browser MAY not pop up, regardless, the report IS saved in your notebook/colab files.")
            # Not sure how to work around this: not fatal but annoying...Notebook/colab
            # https://bugs.python.org/issue5993
            webbrowser.open('file://' + os.path.realpath(filepath))
        else:
            print(f"Report {filepath} was generated.")
Beispiel #2
0
    def show_html(self,
                  filepath='SWEETVIZ_REPORT.html',
                  layout='widescreen',
                  onWeb=True,
                  saveFile=False):
        sv_html.load_layout_globals_from_config()
        self.page_layout = layout
        sv_html.set_summary_positions(self)
        sv_html.generate_html_detail(self)
        self._page_html = sv_html.generate_html_dataframe_page(self)

        # self.temp_folder = config["Files"].get("temp_folder")
        # os.makedirs(os.path.normpath(self.temp_folder), exist_ok=True)

        if saveFile:
            f = open(filepath, 'w', encoding="utf-8")
            f.write(self._page_html)
            f.close()

        print(
            f"Report {filepath} was generated! NOTEBOOK/COLAB USERS: no browser will pop up, the report is saved in your notebook/colab files."
        )
        # Not sure how to work around this: not fatal but annoying...Notebook/colab
        # https://bugs.python.org/issue5993

        if onWeb:
            webbrowser.open('file://' + os.path.realpath(filepath))

        return self._page_html
Beispiel #3
0
    def show_notebook(self,
                      w=None,
                      h=None,
                      scale=None,
                      layout=None,
                      filepath=None):
        w = self.use_config_if_none(w, "notebook_width")
        h = self.use_config_if_none(h, "notebook_height")
        scale = float(self.use_config_if_none(scale, "notebook_scale"))
        layout = self.use_config_if_none(layout, "notebook_layout")
        if layout not in ['widescreen', 'vertical']:
            raise ValueError(
                f"'layout' parameter must be either 'widescreen' or 'vertical'"
            )

        sv_html.load_layout_globals_from_config()
        self.page_layout = layout
        self.scale = scale
        sv_html.set_summary_positions(self)
        sv_html.generate_html_detail(self)
        if self.associations_html_source:
            self.associations_html_source = sv_html.generate_html_associations(
                self, "source")
        if self.associations_html_compare:
            self.associations_html_compare = sv_html.generate_html_associations(
                self, "compare")
        self._page_html = sv_html.generate_html_dataframe_page(self)

        width = w
        height = h
        if str(height).lower() == "full":
            height = self.page_height

        # Output to iFrame
        import html
        self._page_html = html.escape(self._page_html)
        iframe = f' <iframe width="{width}" height="{height}" srcdoc="{self._page_html}" frameborder="0" allowfullscreen></iframe>'
        from IPython.core.display import display
        from IPython.core.display import HTML
        display(HTML(iframe))

        if filepath is not None:
            f = open(filepath, 'w', encoding="utf-8")
            f.write(self._page_html)
            f.close()
            print(f"Report '{filepath}' was saved to storage.")

        if len(self.corr_warning):
            print(
                "WARNING: one or more correlations had an edge-case/error and a 1.0 correlation was assigned\n"
                "(likely due to only a single row containing non-NaN values for both correlated features)\n"
                "Affected correlations:" + str(self.corr_warning))

        # Auto-log to comet_ml if desired & present
        self._comet_ml_logger = comet_ml_logger.CometLogger()
        if self._comet_ml_logger._logging:
            self.generate_comet_friendly_html()
            self._comet_ml_logger.log_html(self._page_html)
            self._comet_ml_logger.end()
Beispiel #4
0
 def generate_comet_friendly_html(self):
     # Enforce comet_ml-friendly layout and re-output report based on INI settings (comet_ml_Defaults)
     self.page_layout = config["comet_ml_defaults"]["html_layout"]
     self.scale = float(config["comet_ml_defaults"]["html_scale"])
     sv_html.set_summary_positions(self)
     sv_html.generate_html_detail(self)
     if self.associations_html_source:
         self.associations_html_source = sv_html.generate_html_associations(
             self, "source")
     if self.associations_html_compare:
         self.associations_html_compare = sv_html.generate_html_associations(
             self, "compare")
     self._page_html = sv_html.generate_html_dataframe_page(self)
Beispiel #5
0
    def show_html(self,
                  filepath='SWEETVIZ_REPORT.html',
                  open_browser=True,
                  layout='widescreen',
                  scale=None):
        scale = float(self.use_config_if_none(scale, "html_scale"))
        layout = self.use_config_if_none(layout, "html_layout")
        if layout not in ['widescreen', 'vertical']:
            raise ValueError(
                f"'layout' parameter must be either 'widescreen' or 'vertical'"
            )
        sv_html.load_layout_globals_from_config()
        self.page_layout = layout
        self.scale = scale
        sv_html.set_summary_positions(self)
        sv_html.generate_html_detail(self)
        if self.associations_html_source:
            self.associations_html_source = sv_html.generate_html_associations(
                self, "source")
        if self.associations_html_compare:
            self.associations_html_compare = sv_html.generate_html_associations(
                self, "compare")
        self._page_html = sv_html.generate_html_dataframe_page(self)

        f = open(filepath, 'w', encoding="utf-8")
        f.write(self._page_html)
        f.close()
        if open_browser:
            print(
                f"Report {filepath} was generated! NOTEBOOK/COLAB USERS: the web browser MAY not pop up, regardless, the report IS saved in your notebook/colab files."
            )
            # Not sure how to work around this: not fatal but annoying...Notebook/colab
            # https://bugs.python.org/issue5993
            webbrowser.open('file://' + os.path.realpath(filepath))
        else:
            print(f"Report {filepath} was generated.")
        if len(self.corr_warning):
            print(
                "---\nWARNING: one or more correlations had an edge-case/error and a 1.0 correlation was assigned\n"
                "(likely due to only a single row containing non-NaN values for both correlated features)\n"
                "Affected correlations:" + str(self.corr_warning))

        # Auto-log to comet_ml if desired & present
        self._comet_ml_logger = comet_ml_logger.CometLogger()
        if self._comet_ml_logger._logging:
            self.generate_comet_friendly_html()
            self._comet_ml_logger.log_html(self._page_html)
            self._comet_ml_logger.end()
Beispiel #6
0
    def show_html(self, filepath='SWEETVIZ_REPORT.html', layout='widescreen'):
        sv_html.load_layout_globals_from_config()
        self.page_layout = layout
        sv_html.set_summary_positions(self)
        sv_html.generate_html_detail(self)
        self._page_html = sv_html.generate_html_dataframe_page(self)

        # self.temp_folder = config["Files"].get("temp_folder")
        # os.makedirs(os.path.normpath(self.temp_folder), exist_ok=True)

        f = open(filepath, 'w', encoding="utf-8")
        f.write(self._page_html)
        f.close()

        # Not sure how to work around this: not fatal but annoying...
        # https://bugs.python.org/issue5993
        webbrowser.open('file://' + os.path.realpath(filepath))
Beispiel #7
0
    def show_notebook(self,
                      w=None,
                      h=None,
                      scale=None,
                      layout='widescreen',
                      filepath=None):
        w = self.use_config_if_none(w, "notebook_width")
        h = self.use_config_if_none(h, "notebook_height")
        scale = float(self.use_config_if_none(scale, "notebook_scale"))
        layout = self.use_config_if_none(layout, "notebook_layout")
        if layout not in ['widescreen', 'vertical']:
            raise ValueError(
                f"'layout' parameter must be either 'widescreen' or 'vertical'"
            )

        sv_html.load_layout_globals_from_config()
        self.page_layout = layout
        self.scale = scale
        sv_html.set_summary_positions(self)
        sv_html.generate_html_detail(self)
        if self.associations_html_source:
            self.associations_html_source = sv_html.generate_html_associations(
                self, "source")
        if self.associations_html_compare:
            self.associations_html_compare = sv_html.generate_html_associations(
                self, "compare")
        self._page_html = sv_html.generate_html_dataframe_page(self)

        width = w
        height = h
        if str(height).lower() == "full":
            height = self.page_height

        # Output to iFrame
        import html
        self._page_html = html.escape(self._page_html)
        iframe = f' <iframe width="{width}" height="{height}" srcdoc="{self._page_html}" frameborder="0" allowfullscreen></iframe>'
        from IPython.core.display import display
        from IPython.core.display import HTML
        display(HTML(iframe))

        if filepath is not None:
            f = open(filepath, 'w', encoding="utf-8")
            f.write(self._page_html)
            f.close()
            print(f"Report '{filepath}' was saved to storage.")
Beispiel #8
0
    def show_html(self,
                  filepath='SWEETVIZ_REPORT.html',
                  open_browser=True,
                  layout='widescreen'):
        sv_html.load_layout_globals_from_config()
        self.page_layout = layout
        sv_html.set_summary_positions(self)
        sv_html.generate_html_detail(self)
        self._page_html = sv_html.generate_html_dataframe_page(self)

        f = open(filepath, 'w', encoding="utf-8")
        f.write(self._page_html)
        f.close()

        if open_browser:
            print(
                f"Report {filepath} was generated! NOTEBOOK/COLAB USERS: the web browser MAY not pop up, regardless, the report IS saved in your notebook/colab files."
            )
            # Not sure how to work around this: not fatal but annoying...Notebook/colab
            # https://bugs.python.org/issue5993
            webbrowser.open('file://' + os.path.realpath(filepath))
        else:
            print(f"Report {filepath} was generated!")