code: def add(self, key, source):
          
          from intake.catalog.local import LocalCatalogEntry
          try:
              with self.fs.open(self.path, 'rb') as f:
                  data = yaml.safe_load(f)
          except IOError:
              data = {'sources': {}}
          ds = source._yaml()['sources'][source.name]
          data['sources'][key] = ds
          with self.fs.open(self.path, 'wb') as fo:
              fo.write(yaml.dump(data, default_flow_style=False).encode())
          self._entries[key] = LocalCatalogEntry(
              name=ds['metadata']['original_name'],
              direct_access=True,
              cache=[],
              parameters=[],
              catalog_dir=None,
              **data['sources'][key])
docs: Add the persisted source to the store under the given key
  
          key : str
              The unique token of the un-persisted, original source
          source : DataSource instance
              The thing to add to the persisted catalogue, referring to persisted
              data