Skip to main content

A simple Google DataStore client

Project description

Simple DataStore Client

A simple Google DataStore client that exposes 3 functions on the DatastoreClient class.

class DatastoreClient:
    def __init__(self, namespace: str=None, **kwargs) -> None:
        self.client = Client(namespace=namespace, **kwargs)

    def set_key(
        self,
        entity_name: str,
        key_name: str,
        **properties: Any,
    ) -> None:
        ...

    def get_key(
        self,
        entity_name: str,
        key_name: str,
    ) -> Optional[Entity]:
        ...

    def query_entity(
        self,
        entity_name: str,
        *query_filters: Tuple[str, str, Any],
        projection: List[str]=None,
        limit: Optional[int]=None,
    ) -> Iterator:
        ...

Examples

Changing the namespace

You can set the namespace for the client by passing it in to the constructor

from datastore_client.client import DatastoreClient

client = DatastoreClient(namespace='namespace_A')

The following will change the namespace for all subsequent function calls.

from datastore_client.client import DatastoreClient

client = DatastoreClient()
client.client.namespace = 'specific_namespace'

set_key

from datastore_client.client import DatastoreClient

client = DatastoreClient()
client.set_key(
    entity_name=RECHARGE_NOTES_ENTITY, 
    key_name=note_key, 
    username=username, 
    reference=reference, 
    note=notes,
)

# This can also be used in batch mode
with client.batch_update():
    client.set_key(...)
    client.set_key(...)

# Both key updates will be done when the with block exits

get_key

from datastore_client.client import DatastoreClient

client = DatastoreClient()
client.get_key(LOGIN_ENTITY, username)

query_entity

from datastore_client.client import DatastoreClient

client = DatastoreClient()
product_list = list(client.query_entity(
    PRODUCT_ENTITY,
    ('network', '=', network_name),
    ('product_type', '=', product_code),
    ('bundle_size', '=', denomination),
    projection=['id'],
    limit=1,
))

print(product_list[0]['id'])

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

datastore_client-0.0.10.tar.gz (2.7 kB view hashes)

Uploaded Source

Built Distribution

datastore_client-0.0.10-py3-none-any.whl (4.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page