docs: def at(self, time_str):
          """
          Specify a particular time that the job should be run at.
  
          :param time_str: A string in one of the following formats: `HH:MM:SS`,
              `HH:MM`,`:MM`, `:SS`. The format must make sense given how often
              the job is repeating; for example, a job that repeats every minute
              should not be given a string in the form `HH:MM:SS`. The difference
              between `:MM` and `:SS` is inferred from the selected time-unit
              (e.g. `every().hour.at(':30')` vs. `every().minute.at(':30')`).
          :return: The invoked job instance
          """
          if (self.unit not in ('days', 'hours', 'minutes')
                  and not self.start_day):
              raise ScheduleValueError('Invalid unit')
          if not isinstance(time_str, str):
              raise TypeError('at() should be passed a string')
          if self.unit == 'days' or self.start_day:
              if not re.match(r'^([0-2]\d:)?[0-5]\d:[0-5]\d$', time_str):
                  raise ScheduleValueError('Invalid time format')
          if self.unit == 'hours':
              if not re.match(r'^([0-5]\d)?:[0-5]\d$', time_str):
                  raise ScheduleValueError(('Invalid time format for'
                                            ' an hourly job'))
          if self.unit == 'minutes':
              if not re.match(r'^:[0-5]\d$', time_str):
                  raise ScheduleValueError(('Invalid time format for'
                                            ' a minutely job'))
          time_values = time_str.split(':')
          if len(time_values) == 3:
              hour, minute, second = time_values
          elif len(time_values) == 2 and self.unit == 'minutes':
              hour = 0
              minute = 0
              _, second = time_values
          else:
              hour, minute = time_values
              second = 0
          if self.unit == 'days' or self.start_day:
              hour = int(hour)
              if not (0 <= hour <= 23):
                  raise ScheduleValueError('Invalid number of hours')
          elif self.unit == 'hours':
              hour = 0
          elif self.unit == 'minutes':
              hour = 0
              minute = 0
          minute = int(minute)
          second = int(second)
          self.at_time = datetime.time(hour, minute, second)
          return self