Source code for pymchelper.writers.inspector

import logging

logger = logging.getLogger(__name__)


[docs]class Inspector: def __init__(self, filename, options): logger.debug("Initialising Inspector writer") self.options = options
[docs] def write(self, estimator): """Print all keys and values from estimator structure they include also a metadata read from binary output file """ for name, value in sorted(estimator.__dict__.items()): # skip non-metadata fields if name not in {'data', 'data_raw', 'error', 'error_raw', 'counter', 'pages'}: line = "{:24s}: '{:s}'".format(str(name), str(value)) print(line) # print some data-related statistics print(75 * "*") for page_no, page in enumerate(estimator.pages): print("Page {} / {}".format(page_no, len(estimator.pages))) for name, value in sorted(page.__dict__.items()): # skip non-metadata fields if name not in {'data', 'data_raw', 'error', 'error_raw'}: line = "\t{:24s}: '{:s}'".format(str(name), str(value)) print(line) print("Data min: {:g}, max: {:g}".format(page.data_raw.min(), page.data_raw.max())) print(75 * "-") if self.options.details: # print data scatter-plot if possible if estimator.dimension == 1 and len(self.pages) == 1: try: from hipsterplot import plot print(75 * "*") print("Data scatter plot") plot(estimator.data_raw) except ImportError: logger.warning("Detailed summary requires installation of hipsterplot package") # print data histogram if possible try: from bashplotlib.histogram import plot_hist print(75 * "*") print("Data histogram") plot_hist(estimator.data_raw, bincount=70, xlab=False, showSummary=True) except ImportError: logger.warning("Detailed summary requires installation of bashplotlib package") return 0