code: def first_of(self, unit, day_of_week=None):
          
          if unit not in ["month", "quarter", "year"]:
              raise ValueError('Invalid unit "{}" for first_of()'.format(unit))
  
          return getattr(self, "_first_of_{}".format(unit))(day_of_week)
docs: Returns an instance set to the first occurrence
          of a given day of the week in the current unit.
          If no day_of_week is provided, modify to the first day of the unit.
          Use the supplied consts to indicate the desired day_of_week, ex. DateTime.MONDAY.
  
          Supported units are month, quarter and year.
  
          :param unit: The unit to use
          :type unit: str
  
          :type day_of_week: int or None
  
          :rtype: DateTime