Skip to main content

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'])

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

If you're not sure about the file name format, learn more about wheel file names.

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

  • Download URL: datastore_client-0.0.10-py3-none-any.whl
  • Upload date:
  • Size: 4.0 kB
  • Tags: Python 3
  • 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-py3-none-any.whl
Algorithm Hash digest
SHA256 e7edfa701b8b465afcc1832c64adce979cc177c8f66897635975a64019571cc6
MD5 53464f23e275fb81545b0bc237a037e5
BLAKE2b-256 c7e6a86ae6ae50c5be1d9694525c3b9a54c9597f49db69e70a34447b2b5491b5

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.10 This release

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page