code: def timeAtThreshold(self,dateTime):
          '''
          A convenience method for checking when a time is on the start/end boundary
          for this rule.
          '''
  
          # Anything that's not at a day boundary is for sure not at a threshold.
          if not (
              dateTime.hour == self.dayStarts and dateTime.minute == 0 and
              dateTime.second == 0 and dateTime.microsecond == 0
          ):
              return False
  
          if self.applyRateRule == self.RateRuleChoices.daily:
              return True
          elif self.applyRateRule == self.RateRuleChoices.weekly:
              return (dateTime == self.weekStarts)
          elif self.applyRateRule == self.RateRuleChoices.monthly:
              return (dateTime.day == self.monthStarts)
  
          # Everything else is nonsensical, so False.
          return Falsf timeAtThreshold(self,dateTime):
          '''
          A convenience method for checking when a time is on the start/end boundary
          for this rule.
          '''
  
          # Anything that's not at a day boundary is for sure not at a threshold.
          if not (
              dateTime.hour == self.dayStarts and dateTime.minute == 0 and
              dateTime.second == 0 and dateTime.microsecond == 0
          ):
              return False
  
          if self.applyRateRule == self.RateRuleChoices.daily:
              return True
          elif self.applyRateRule == self.RateRuleChoices.weekly:
              return (dateTime == self.weekStarts)
          elif self.applyRateRule == self.RateRuleChoices.monthly:
              return (dateTime.day == self.monthStarts)
  
          # Everything else is nonsensical, so False.
          return False
docs: A convenience method for checking when a time is on the start/end boundary
          for this rule.