code: def new(filename: str, *, file_attrs: Optional[Dict[str, str]] = None) -> LoomConnection:
  	
  	if filename.startswith("~/"):
  		filename = os.path.expanduser(filename)
  	if file_attrs is None:
  		file_attrs = {}
  
  	# Create the file (empty).
  	# Yes, this might cause an exception, which we prefer to send to the caller
  	f = h5py.File(name=filename, mode='w')
  	f.create_group('/layers')
  	f.create_group('/row_attrs')
  	f.create_group('/col_attrs')
  	f.create_group('/row_graphs')
  	f.create_group('/col_graphs')
  	f.flush()
  	f.close()
  
  	ds = connect(filename, validate=False)
  	for vals in file_attrs:
  		ds.attrs[vals] = file_attrs[vals]
  	# store creation date
  	currentTime = time.localtime(time.time())
  	ds.attrs['CreationDate'] = timestamp()
  	ds.attrs["LOOM_SPEC_VERSION"] = loompy.loom_spec_version
  	return ds
docs: Create an empty Loom file, and return it as a context manager.