code: def _complete_pot_years(self, pot_dataset):
          
          # Create a list of 12 sets, one for each month. Each set represents the years for which the POT record includes
          # a particular month.
          month_counts = self._pot_month_counts(pot_dataset)
          # Number of complete years
          n = min([len(month) for month in month_counts])
          # Use the last available years only such that there are equal numbers of each month; i.e. part years are
          # excluded at the beginning of the record
          years_to_use = [sorted(month)[-n:] for month in month_counts]
          return (
              [record for record in pot_dataset.pot_records if record.date.year in years_to_use[record.date.month - 1]],
              n
          )
docs: Return a tuple of a list of :class:`PotRecord`s filtering out part-complete years; and the number of complete
          years.
  
          This method creates complete years by ensuring there is an equal number of each month in the entire record,
          taking into account data gaps. A month is considered to be covered by the record if there is at least a single
          day of the month in any continuous period. (There doesn't have to be a record!) "Leftover" months not needed are
          left at the beginning of the record, i.e. recent records are prioritised over older records.
  
          :param pot_dataset: POT dataset (records and meta data)
          :type pot_dataset: :class:`floodestimation.entities.PotDataset`
          :return: list of POT records
          :rtype: list of :class:`floodestimation.entities.PotRecord`