#!/usr/bin/env python
"""The report builders are classes that coordinate report productions"""

import warnings
import numpy as np

import scipy.spatial.distance as dist
import scipy.cluster.hierarchy as hier

import fseq


class ReportBuilderBase(object):
    """Base class for common report builder features.

    Most prominently, the distill-method needs to be implemented in
    subclasses to make much sence in most use cases.

    Parameters
    ----------

    outputRoot: str, optional
        Path to the directory where all reports should be put

        (Default: ``None``)

    outputNamePrefix: str, optional
        Partial name to be added to all reports done by the builder

        (Default: ``None``)

    *reports: objects, optional
        Any number of reports to be added from start

    Attributes
    ----------

    outputRoot
    outputNamePrefix
    DEFAULT_REPORTS
    """

    DEFAULT_REPORTS = tuple()

    def __init__(self, *reports, **kwargs):
        """
        Parameters
        ----------

        outputRoot: str, optional
            Path to the directory where all reports should be put