def __init__(self, time_elements_tuple=None):
fraction_of_second = None<EOL>if time_elements_tuple:<EOL><INDENT>if len(time_elements_tuple) < <NUM_LIT:7>:<EOL><INDENT>raise ValueError((<EOL>'<STR_LIT>'<EOL>'<STR_LIT>').format(len(time_elements_tuple)))<EOL><DEDENT>microseconds = time_elements_tuple[<NUM_LIT:6>]<EOL>time_elements_tuple = time_elements_tuple[:<NUM_LIT:6>]<EOL>if (microseconds < <NUM_LIT:0> or<EOL>microseconds >= definitions.MICROSECONDS_PER_SECOND):<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>fraction_of_second = (<EOL>decimal.Decimal(microseconds) / definitions.MICROSECONDS_PER_SECOND)<EOL><DEDENT>super(TimeElementsInMicroseconds, self).__init__(<EOL>fraction_of_second=fraction_of_second,<EOL>time_elements_tuple=time_elements_tuple)<EOL>self._precision = definitions.PRECISION_1_MICROSECOND<EOL>
Initializes time elements.

        Args:
          time_elements_tuple (Optional[tuple[int, int, int, int, int, int, int]]):
              time elements, contains year, month, day of month, hours, minutes,
              seconds and microseconds.

        Raises:
          ValueError: if the time elements tuple is invalid.