code: def parse(self):
          
          # Initialize all elements of parsed array to empty strings
          parsed = ['', '', '', '', '', '', '']
  
          if self._expression is None or len(self._expression) == 0:
              raise MissingFieldException("ExpressionDescriptor.expression")
          else:
              expression_parts_temp = self._expression.split()
              expression_parts_temp_length = len(expression_parts_temp)
              if expression_parts_temp_length < 5:
                  raise FormatException(
                      "Error: Expression only has {0} parts.  At least 5 part are required.".format(
                          expression_parts_temp_length))
              elif expression_parts_temp_length == 5:
                  # 5 part cron so shift array past seconds element
                  for i, expression_part_temp in enumerate(expression_parts_temp):
                      parsed[i + 1] = expression_part_temp
              elif expression_parts_temp_length == 6:
                  # If last element ends with 4 digits, a year element has been
                  # supplied and no seconds element
                  year_regex = re.compile(r"\d{4}$")
                  if year_regex.search(expression_parts_temp[5]) is not None:
                      for i, expression_part_temp in enumerate(expression_parts_temp):
                          parsed[i + 1] = expression_part_temp
                  else:
                      for i, expression_part_temp in enumerate(expression_parts_temp):
                          parsed[i] = expression_part_temp
              elif expression_parts_temp_length == 7:
                  parsed = expression_parts_temp
              else:
                  raise FormatException(
                      "Error: Expression has too many parts ({0}).  Expression must not have more than 7 parts.".format(
                          expression_parts_temp_length))
          self.normalize_expression(parsed)
  
          return parsed
docs: Parses the cron expression string
          Returns:
              A 7 part string array, one part for each component of the cron expression (seconds, minutes, etc.)
          Raises:
              MissingFieldException: if _expression is empty or None
              FormatException: if _expression has wrong format