docs: def n_weekends(self) -> int:
          """
          Returns the number of weekends that this interval covers. Includes
          partial weekends.
          """
          startdate = self.start.date()
          enddate = self.end.date()
          ndays = (enddate - startdate).days + 1
          in_weekend = False
          n_weekends = 0
          for i in range(ndays):
              date = startdate + datetime.timedelta(days=i)
              if not in_weekend and is_weekend(date):
                  in_weekend = True
                  n_weekends += 1
              elif in_weekend and not is_weekend(date):
                  in_weekend = False
          return n_weekends