diff --git a/langchain/document_loaders/googledrive.py b/langchain/document_loaders/googledrive.py index 176191f7..dc00eb4a 100644 --- a/langchain/document_loaders/googledrive.py +++ b/langchain/document_loaders/googledrive.py @@ -31,6 +31,7 @@ class GoogleDriveLoader(BaseLoader, BaseModel): file_ids: Optional[List[str]] = None recursive: bool = False file_types: Optional[Sequence[str]] = None + load_trashed_files: bool = False @root_validator def validate_inputs(cls, values: Dict[str, Any]) -> Dict[str, Any]: @@ -215,8 +216,10 @@ class GoogleDriveLoader(BaseLoader, BaseModel): _files = files returns = [] - for file in _files: - if file["mimeType"] == "application/vnd.google-apps.document": + for file in files: + if file["trashed"] and not self.load_trashed_files: + continue + elif file["mimeType"] == "application/vnd.google-apps.document": returns.append(self._load_document_from_id(file["id"])) # type: ignore elif file["mimeType"] == "application/vnd.google-apps.spreadsheet": returns.extend(self._load_sheet_from_id(file["id"])) # type: ignore @@ -224,7 +227,6 @@ class GoogleDriveLoader(BaseLoader, BaseModel): returns.extend(self._load_file_from_id(file["id"])) # type: ignore else: pass - return returns def _fetch_files_recursive( @@ -238,7 +240,7 @@ class GoogleDriveLoader(BaseLoader, BaseModel): pageSize=1000, includeItemsFromAllDrives=True, supportsAllDrives=True, - fields="nextPageToken, files(id, name, mimeType, parents)", + fields="nextPageToken, files(id, name, mimeType, parents, trashed)", ) .execute() )