(self, name: str, value: Any)
| 1236 | raise AttributeError("GridIn object has no attribute '%s'" % name) |
| 1237 | |
| 1238 | def __setattr__(self, name: str, value: Any) -> None: |
| 1239 | # For properties of this instance like _buffer, or descriptors set on |
| 1240 | # the class like filename, use regular __setattr__ |
| 1241 | if name in self.__dict__ or name in self.__class__.__dict__: |
| 1242 | object.__setattr__(self, name, value) |
| 1243 | else: |
| 1244 | # All other attributes are part of the document in db.fs.files. |
| 1245 | # Store them to be sent to server on close() or if closed, send |
| 1246 | # them now. |
| 1247 | self._file[name] = value |
| 1248 | if self._closed: |
| 1249 | if _IS_SYNC: |
| 1250 | self._coll.files.update_one({"_id": self._file["_id"]}, {"$set": {name: value}}) |
| 1251 | else: |
| 1252 | raise AttributeError( |
| 1253 | "AsyncGridIn does not support __setattr__ after being closed(). Set the attribute before closing the file or use AsyncGridIn.set() instead" |
| 1254 | ) |
| 1255 | |
| 1256 | async def set(self, name: str, value: Any) -> None: |
| 1257 | self._file[name] = value |
no test coverage detected