docs: def _setDatasets(self, metadata):
          """Extract dataset definitions from CSV metadata"""
          # Pull the lot into a list
          cols = list(self.getCSVReader(metadata))
  
          # sort the cols by view name and ordinal (they come sorted, but lets be sure)
          cols.sort(key=lambda x: [x['viewname'], int(x['ordinal'])])
  
          # Now group them by their viewname
          for key, grp in groupby(cols, key=lambda x: x["viewname"]):
              self.datasets[key] = list(grp)