code: def get_description(self, description_type=DescriptionTypeEnum.FULL):
          
          try:
              if self._parsed is False:
                  parser = ExpressionParser(self._expression, self._options)
                  self._expression_parts = parser.parse()
                  self._parsed = True
  
              choices = {
                  DescriptionTypeEnum.FULL: self.get_full_description,
                  DescriptionTypeEnum.TIMEOFDAY: self.get_time_of_day_description,
                  DescriptionTypeEnum.HOURS: self.get_hours_description,
                  DescriptionTypeEnum.MINUTES: self.get_minutes_description,
                  DescriptionTypeEnum.SECONDS: self.get_seconds_description,
                  DescriptionTypeEnum.DAYOFMONTH: self.get_day_of_month_description,
                  DescriptionTypeEnum.MONTH: self.get_month_description,
                  DescriptionTypeEnum.DAYOFWEEK: self.get_day_of_week_description,
                  DescriptionTypeEnum.YEAR: self.get_year_description,
              }
  
              description = choices.get(description_type, self.get_seconds_description)()
  
          except Exception as ex:
              if self._options.throw_exception_on_parse_error:
                  raise
              else:
                  description = str(ex)
          return description
docs: Generates a human readable string for the Cron Expression
  
          Args:
              description_type: Which part(s) of the expression to describe
          Returns:
              The cron expression description
          Raises:
              Exception: if throw_exception_on_parse_error is True