def get_bulk_state( self, store_name: str, keys: Sequence[str], parallelism: int = 1, states_metadata: Optional[Dict[str, str]] = dict(), metadata: Optional[MetadataTuple] = () ) -> BulkStatesResponse: """Gets values from a statestore with keys The example gets value from a statestore: from dapr import DaprClient with DaprClient() as d: resp = d.get_bulk_state( store_name='state_store', keys=['key_1', key_2], parallelism=2, states_metadata={"metakey": "metavalue"}, ) Args: store_name (str): the state store name to get from key (Sequence[str]): the keys to be retrieved parallelism (int): number of items to be retrieved in parallel states_metadata (Dict[str, str], optional): Dapr metadata for state request metadata (tuple, optional, DEPRECATED): gRPC custom metadata Returns: :class:`BulkStatesResponse` gRPC metadata returned from callee and value obtained from the state store """ if metadata is not None: warn( 'metadata argument is deprecated. Dapr already intercepts API token headers ' 'and this is not needed.', DeprecationWarning, stacklevel=2) if not store_name or len(store_name) == 0 or len( store_name.strip()) == 0: raise ValueError("State store name cannot be empty") req = api_v1.GetBulkStateRequest(store_name=store_name, keys=keys, parallelism=parallelism, metadata=states_metadata) response, call = self._stub.GetBulkState.with_call(req, metadata=metadata) items = [] for item in response.items: items.append( BulkStateItem(key=item.key, data=item.data, etag=item.etag, error=item.error)) return BulkStatesResponse(items=items, headers=call.initial_metadata())
def get_states( self, store_name: str, keys: Sequence[str], parallelism: int = 1, states_metadata: Optional[Dict[str, str]] = dict(), metadata: Optional[MetadataTuple] = ()) -> BulkStatesResponse: """Gets values from a statestore with keys The example gets value from a statestore: from dapr import DaprClient with DaprClient() as d: resp = d.get_states( store_name='state_store' keys=['key_1', key_2], parallelism=2, states_metadata={"metakey": "metavalue"}, metadata=( ('header1', 'value1') ), ) Args: store_name (str): the state store name to get from key (Sequence[str]): the keys to be retrieved parallelism (int): number of items to be retrieved in parallel states_metadata (Dict[str, str], optional): custom metadata for state request metadata (tuple, optional): custom metadata Returns: :class:`BulkStatesResponse` gRPC metadata returned from callee and value obtained from the state store """ if not store_name or len(store_name) == 0 or len(store_name.strip()) == 0: raise ValueError("State store name cannot be empty") req = api_v1.GetBulkStateRequest( store_name=store_name, keys=keys, parallelism=parallelism, metadata=states_metadata) response, call = self._stub.GetBulkState.with_call(req, metadata=metadata) items = [] for item in response.items: items.append( BulkStateItem( key=item.key, data=item.data, etag=item.etag, error=item.error)) return BulkStatesResponse( items=items, headers=call.initial_metadata())