From b7323bedf420d4780146e9679d22d5cda1e2ea68 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Thu, 15 May 2025 10:04:38 +0300 Subject: [PATCH 1/2] feat(document): add parameter support to document retrieval - add `params` parameter to `Document.retrieve()` method - create new `RetrieveParameters` typed dictionary - support including/excluding fields when retrieving documents --- src/typesense/document.py | 4 +++- src/typesense/types/document.py | 13 +++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/typesense/document.py b/src/typesense/document.py index 644602b..907d1c7 100644 --- a/src/typesense/document.py +++ b/src/typesense/document.py @@ -26,6 +26,7 @@ DeleteSingleDocumentParameters, DirtyValuesParameters, DocumentSchema, + RetrieveParameters, ) if sys.version_info >= (3, 11): @@ -67,7 +68,7 @@ def __init__( self.collection_name = collection_name self.document_id = document_id - def retrieve(self) -> TDoc: + def retrieve(self, params: RetrieveParameters) -> TDoc: """ Retrieve this specific document. @@ -78,6 +79,7 @@ def retrieve(self) -> TDoc: endpoint=self._endpoint_path, entity_type=typing.Dict[str, str], as_json=True, + params=params, ) return response diff --git a/src/typesense/types/document.py b/src/typesense/types/document.py index b868d12..416ca7e 100644 --- a/src/typesense/types/document.py +++ b/src/typesense/types/document.py @@ -889,3 +889,16 @@ class DeleteResponse(typing.TypedDict): """ num_deleted: int + + +class RetrieveParameters(typing.TypedDict): + """ + Parameters for retrieving documents. + + Attributes: + include_fields (str): Fields to include in the retrieved documents. + exclude_fields (str): Fields to exclude from the retrieved documents. + """ + + include_fields: typing.NotRequired[typing.Union[str, typing.List[str]]] + exclude_fields: typing.NotRequired[typing.Union[str, typing.List[str]]] From 3ba2ef22ec30bf3c9c4c8887a7dd6f0e0079b031 Mon Sep 17 00:00:00 2001 From: Fanis Tharropoulos Date: Thu, 15 May 2025 10:10:40 +0300 Subject: [PATCH 2/2] chore: lint --- src/typesense/document.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/typesense/document.py b/src/typesense/document.py index 907d1c7..fd5de16 100644 --- a/src/typesense/document.py +++ b/src/typesense/document.py @@ -68,7 +68,10 @@ def __init__( self.collection_name = collection_name self.document_id = document_id - def retrieve(self, params: RetrieveParameters) -> TDoc: + def retrieve( + self, + retrieve_parameters: typing.Union[RetrieveParameters, None] = None, + ) -> TDoc: """ Retrieve this specific document. @@ -79,7 +82,7 @@ def retrieve(self, params: RetrieveParameters) -> TDoc: endpoint=self._endpoint_path, entity_type=typing.Dict[str, str], as_json=True, - params=params, + params=retrieve_parameters, ) return response