def __init__(self, output, fmt=None, indicator_change_interval=100, indicator_values=None):
        self._output = output

        if fmt is None:
            fmt = self._determine_best_format()

        if indicator_values is None:
            indicator_values = ['-', '\\', '|', '/']

        if len(indicator_values) < 2:
            raise CleoException('Must have at least 2 indicator value characters.')

        self.format = self.formats[fmt]
        self.indicator_change_interval = indicator_change_interval
        self.indicator_values = indicator_values

        self._message = None
        self._indicator_update_time = None
        self._last_message_length = 0
        self._started = False
        self._indicator_current = 0

        self.start_time = time.time()
Constructor.
dataset/ETHPy150Open sdispater/cleo/cleo/helpers/progress_indicator.py/ProgressIndicator.__init__