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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file datastore_client-0.0.10.tar.gz.

File metadata

  • Download URL: datastore_client-0.0.10.tar.gz
  • Upload date:
  • Size: 2.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.9.11 Darwin/21.4.0

File hashes

Hashes for datastore_client-0.0.10.tar.gz
Algorithm Hash digest
SHA256 e33ebb0fa8011869a60f35c8f8b6c3ae08a7922d0025ab97e81c37a0aeeba291
MD5 3f09de169e1cbf2149f460e9eb24c98d
BLAKE2b-256 02532e12df877fa317be42007812569a4cc2e960b8bc62f73778d5c82eee47a4

See more details on using hashes here.

File details

Details for the file datastore_client-0.0.10-py3-none-any.whl.

File metadata

File hashes

Hashes for datastore_client-0.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 e7edfa701b8b465afcc1832c64adce979cc177c8f66897635975a64019571cc6
MD5 53464f23e275fb81545b0bc237a037e5
BLAKE2b-256 c7e6a86ae6ae50c5be1d9694525c3b9a54c9597f49db69e70a34447b2b5491b5

See more details on using hashes here.

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