aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/sdk/asnyc_methods/collections.py
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/sdk/asnyc_methods/collections.py
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are hereHEADmaster
Diffstat (limited to '.venv/lib/python3.12/site-packages/sdk/asnyc_methods/collections.py')
-rw-r--r--.venv/lib/python3.12/site-packages/sdk/asnyc_methods/collections.py343
1 files changed, 343 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/sdk/asnyc_methods/collections.py b/.venv/lib/python3.12/site-packages/sdk/asnyc_methods/collections.py
new file mode 100644
index 00000000..a768b72e
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/sdk/asnyc_methods/collections.py
@@ -0,0 +1,343 @@
+from typing import Any, Optional
+from uuid import UUID
+
+from shared.api.models import (
+ WrappedBooleanResponse,
+ WrappedCollectionResponse,
+ WrappedCollectionsResponse,
+ WrappedDocumentsResponse,
+ WrappedGenericMessageResponse,
+ WrappedUsersResponse,
+)
+
+
+class CollectionsSDK:
+ def __init__(self, client):
+ self.client = client
+
+ async def create(
+ self,
+ name: str,
+ description: Optional[str] = None,
+ ) -> WrappedCollectionResponse:
+ """Create a new collection.
+
+ Args:
+ name (str): Name of the collection
+ description (Optional[str]): Description of the collection
+
+ Returns:
+ WrappedCollectionResponse
+ """
+ data: dict[str, Any] = {"name": name, "description": description}
+ response_dict = await self.client._make_request(
+ "POST",
+ "collections",
+ json=data,
+ version="v3",
+ )
+
+ return WrappedCollectionResponse(**response_dict)
+
+ async def list(
+ self,
+ ids: Optional[list[str | UUID]] = None,
+ offset: Optional[int] = 0,
+ limit: Optional[int] = 100,
+ ) -> WrappedCollectionsResponse:
+ """List collections with pagination and filtering options.
+
+ Args:
+ ids (Optional[list[str | UUID]]): Filter collections by ids
+ offset (int, optional): Specifies the number of objects to skip. Defaults to 0.
+ limit (int, optional): Specifies a limit on the number of objects to return, ranging between 1 and 100. Defaults to 100.
+
+ Returns:
+ WrappedCollectionsResponse
+ """
+ params: dict = {
+ "offset": offset,
+ "limit": limit,
+ }
+ if ids:
+ params["ids"] = ids
+
+ response_dict = await self.client._make_request(
+ "GET", "collections", params=params, version="v3"
+ )
+
+ return WrappedCollectionsResponse(**response_dict)
+
+ async def retrieve(
+ self,
+ id: str | UUID,
+ ) -> WrappedCollectionResponse:
+ """Get detailed information about a specific collection.
+
+ Args:
+ id (str | UUID): Collection ID to retrieve
+
+ Returns:
+ WrappedCollectionResponse
+ """
+ response_dict = await self.client._make_request(
+ "GET", f"collections/{str(id)}", version="v3"
+ )
+
+ return WrappedCollectionResponse(**response_dict)
+
+ async def update(
+ self,
+ id: str | UUID,
+ name: Optional[str] = None,
+ description: Optional[str] = None,
+ generate_description: Optional[bool] = False,
+ ) -> WrappedCollectionResponse:
+ """Update collection information.
+
+ Args:
+ id (str | UUID): Collection ID to update
+ name (Optional[str]): Optional new name for the collection
+ description (Optional[str]): Optional new description for the collection
+ generate_description (Optional[bool]): Whether to generate a new synthetic description for the collection.
+
+ Returns:
+ WrappedCollectionResponse
+ """
+ data: dict[str, Any] = {}
+ if name is not None:
+ data["name"] = name
+ if description is not None:
+ data["description"] = description
+ if generate_description:
+ data["generate_description"] = str(generate_description)
+
+ response_dict = await self.client._make_request(
+ "POST",
+ f"collections/{str(id)}",
+ json=data,
+ version="v3",
+ )
+
+ return WrappedCollectionResponse(**response_dict)
+
+ async def delete(
+ self,
+ id: str | UUID,
+ ) -> WrappedBooleanResponse:
+ """Delete a collection.
+
+ Args:
+ id (str | UUID): Collection ID to delete
+
+ Returns:
+ WrappedBooleanResponse
+ """
+ response_dict = await self.client._make_request(
+ "DELETE", f"collections/{str(id)}", version="v3"
+ )
+
+ return WrappedBooleanResponse(**response_dict)
+
+ async def list_documents(
+ self,
+ id: str | UUID,
+ offset: Optional[int] = 0,
+ limit: Optional[int] = 100,
+ ) -> WrappedDocumentsResponse:
+ """List all documents in a collection.
+
+ Args:
+ id (str | UUID): Collection ID
+ offset (int, optional): Specifies the number of objects to skip. Defaults to 0.
+ limit (int, optional): Specifies a limit on the number of objects to return, ranging between 1 and 100. Defaults to 100.
+
+ Returns:
+ WrappedDocumentsResponse
+ """
+ params: dict = {
+ "offset": offset,
+ "limit": limit,
+ }
+
+ response_dict = await self.client._make_request(
+ "GET",
+ f"collections/{str(id)}/documents",
+ params=params,
+ version="v3",
+ )
+
+ return WrappedDocumentsResponse(**response_dict)
+
+ async def add_document(
+ self,
+ id: str | UUID,
+ document_id: str | UUID,
+ ) -> WrappedGenericMessageResponse:
+ """Add a document to a collection.
+
+ Args:
+ id (str | UUID): Collection ID
+ document_id (str | UUID): Document ID to add
+
+ Returns:
+ WrappedGenericMessageResponse
+ """
+ response_dict = await self.client._make_request(
+ "POST",
+ f"collections/{str(id)}/documents/{str(document_id)}",
+ version="v3",
+ )
+
+ return WrappedGenericMessageResponse(**response_dict)
+
+ async def remove_document(
+ self,
+ id: str | UUID,
+ document_id: str | UUID,
+ ) -> WrappedBooleanResponse:
+ """Remove a document from a collection.
+
+ Args:
+ id (str | UUID): Collection ID
+ document_id (str | UUID): Document ID to remove
+
+ Returns:
+ WrappedBooleanResponse
+ """
+ response_dict = await self.client._make_request(
+ "DELETE",
+ f"collections/{str(id)}/documents/{str(document_id)}",
+ version="v3",
+ )
+
+ return WrappedBooleanResponse(**response_dict)
+
+ async def list_users(
+ self,
+ id: str | UUID,
+ offset: Optional[int] = 0,
+ limit: Optional[int] = 100,
+ ) -> WrappedUsersResponse:
+ """List all users in a collection.
+
+ Args:
+ id (str, UUID): Collection ID
+ offset (int, optional): Specifies the number of objects to skip. Defaults to 0.
+ limit (int, optional): Specifies a limit on the number of objects to return, ranging between 1 and 100. Defaults to 100.
+
+ Returns:
+ WrappedUsersResponse
+ """
+ params: dict = {
+ "offset": offset,
+ "limit": limit,
+ }
+
+ response_dict = await self.client._make_request(
+ "GET", f"collections/{str(id)}/users", params=params, version="v3"
+ )
+
+ return WrappedUsersResponse(**response_dict)
+
+ async def add_user(
+ self,
+ id: str | UUID,
+ user_id: str | UUID,
+ ) -> WrappedBooleanResponse:
+ """Add a user to a collection.
+
+ Args:
+ id (str | UUID): Collection ID
+ user_id (str | UUID): User ID to add
+
+ Returns:
+ WrappedBooleanResponse
+ """
+ response_dict = await self.client._make_request(
+ "POST", f"collections/{str(id)}/users/{str(user_id)}", version="v3"
+ )
+
+ return WrappedBooleanResponse(**response_dict)
+
+ async def remove_user(
+ self,
+ id: str | UUID,
+ user_id: str | UUID,
+ ) -> WrappedBooleanResponse:
+ """Remove a user from a collection.
+
+ Args:
+ id (str | UUID): Collection ID
+ user_id (str | UUID): User ID to remove
+
+ Returns:
+ WrappedBooleanResponse
+ """
+ response_dict = await self.client._make_request(
+ "DELETE",
+ f"collections/{str(id)}/users/{str(user_id)}",
+ version="v3",
+ )
+
+ return WrappedBooleanResponse(**response_dict)
+
+ async def extract(
+ self,
+ id: str | UUID,
+ settings: Optional[dict] = None,
+ run_with_orchestration: Optional[bool] = True,
+ ) -> WrappedGenericMessageResponse:
+ """Extract entities and relationships from documents in a collection.
+
+ Args:
+ id (str | UUID): Collection ID to extract from
+ settings (Optional[dict]): Settings for the entities and relationships extraction process
+ run_with_orchestration (Optional[bool]): Whether to run the extraction process with orchestration.
+ Defaults to True
+
+ Returns:
+ WrappedGenericMessageResponse
+ """
+ params = {"run_with_orchestration": run_with_orchestration}
+
+ data: dict[str, Any] = {}
+ if settings is not None:
+ data["settings"] = settings
+
+ response_dict = await self.client._make_request(
+ "POST",
+ f"collections/{str(id)}/extract",
+ params=params,
+ json=data or None,
+ version="v3",
+ )
+
+ return WrappedGenericMessageResponse(**response_dict)
+
+ async def retrieve_by_name(
+ self, name: str, owner_id: Optional[str] = None
+ ) -> WrappedCollectionResponse:
+ """Retrieve a collection by its name.
+
+ For non-superusers, the backend will use the authenticated user's ID.
+ For superusers, the caller must supply an owner_id to restrict the search.
+
+ Args:
+ name (str): The name of the collection to retrieve.
+ owner_id (Optional[str]): The owner ID to restrict the search. Required for superusers.
+
+ Returns:
+ WrappedCollectionResponse
+ """
+ query_params: dict[str, Any] = {}
+ if owner_id is not None:
+ query_params["owner_id"] = owner_id
+
+ response_dict = await self.client._make_request(
+ "GET",
+ f"collections/name/{name}",
+ params=query_params,
+ version="v3",
+ )
+ return WrappedCollectionResponse(**response_dict)