<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def start_task_type(self, task_type_str, total_task_count):
 """Call when about to start processing a new type of task, typically just before entering a loop that processes many task of the given type. Args: task_type_str (str):
 The name of the task, used as a dict key and printed in the progress updates. total_task_count (int):
 The total number of the new type of task that will be processed. This starts the timer that is used for providing an ETA for completing all tasks of the given type. The task type is included in progress updates until end_task_type() is called. """

        assert (
            task_type_str not in self._task_dict
        ), "Task type has already been started"
        self._task_dict[task_type_str] = {
            "start_time": time.time(),
            "total_task_count": total_task_count,
            "task_idx": 0,
        }