code: def start_of(self, unit):
          
          if unit not in self._MODIFIERS_VALID_UNITS:
              raise ValueError('Invalid unit "{}" for start_of()'.format(unit))
  
          return getattr(self, "_start_of_{}".format(unit))()
docs: Returns a copy of the instance with the time reset
          with the following rules:
  
          * second: microsecond set to 0
          * minute: second and microsecond set to 0
          * hour: minute, second and microsecond set to 0
          * day: time to 00:00:00
          * week: date to first day of the week and time to 00:00:00
          * month: date to first day of the month and time to 00:00:00
          * year: date to first day of the year and time to 00:00:00
          * decade: date to first day of the decade and time to 00:00:00
          * century: date to first day of century and time to 00:00:00
  
          :param unit: The unit to reset to
          :type unit: str
  
          :rtype: DateTime