code: def create(self, path, metadata, filter_=filter_hidden, object_class=None):
          
          path = Path(path)
          if path.is_file():
              fnames = [path]
          elif path.is_dir():
              fnames = list(walk(path, mode='files'))
          else:
              raise ValueError('path must be a file or directory')  # pragma: no cover
          for fname in fnames:
              if not filter_ or filter_(fname):
                  created, obj = self._create(fname, metadata, object_class=object_class)
                  yield fname, created, obj
docs: Create objects in CDSTAR and register them in the catalog.
  
          Note that we guess the mimetype based on the filename extension, using
          `mimetypes.guess_type`. Thus, it is the caller's responsibility to add custom or
          otherwise uncommon types to the list of known types using `mimetypes.add_type`.
  
          :param path:
          :param metadata:
          :param filter_:
          :return: