Skip to main content

GAEK: Google App Engine Kit

Build Status

A collection of useful tools for Python apps running on Google App Engine.

NDB JSON module

Usage:

from gaek import ndb_json

# Serialize NDB Model(s) to a JSON string.
json_str = ndb_json.dumps(models)

# Parse a JSON string into a Python dictionary.
ndb_json.loads(json_str)

When the encoder meets a property of the ndb.Key type, there are three encoding options available:

  • ndb_keys_as_entities - encode Key property as a Future whose eventual result is the entity for the key. (default)
  • ndb_keys_as_pairs - encode Key property as a tuple of (kind, id) pairs.
  • ndb_keys_as_urlsafe - encode Key property as a websafe-base64-encoded serialized version of the key.

Please refer to NDB Key Class documentation for details.

For example, for the following data models:

    class Master(ndb.Model):
      name = ndb.StringProperty()
    class Details(ndb.Model):
      master = ndb.KeyProperty()
      description = ndb.StringProperty()

and following records:

    master = Master(id=123456L, name='Europe')
    details = Details(
      master=ndb.Key(Master, 123456L), 
      description='List of European customers'
     )

The calls

    json_str = ndb_json.dumps(details)
    json_str = ndb_json.dumps(details, ndb_keys_as_entities=True)

will return

{"master": {"name": "Europe"}, "description": "List of European customers"}

The call

    json_str = ndb_json.dumps(details, ndb_keys_as_pairs=True)

will return

{"master": [["Master", 123456]], "description": "List of European customers"}

The call

    json_str = ndb_json.dumps(details, ndb_keys_as_urlsafe=True)

will return

{"master": "agFfcg4LEgZNYXN0ZXIYwMQHDA", "description": "List of European customers"}

Feature parity with the Python json module functions.

  • ndb_json.dumps
  • ndb_json.dump
  • ndb_json.loads

Environment module

  • environ.get_dot_target_name(version=None, module=None)

    Returns the current version/module in -dot- notation which is used by target: parameters.

  • environ.get_dot_target_name_safe(version=None, module=None)

    Same as environ.get_dot_target_name, but this function returns None if there is no version or module found.

  • environ.get_environ_dict()

    Return a dictionary of all environment keys/values.

  • environ.is_host_google()

    True if the app is being hosted from Google App Engine servers.

  • environ.is_development()

    True if the dev_appserver is running (localhost or local development server).

  • environ.is_staging(version=None)

    True if the app is hosted by Google (appspot.com) but the version is not the default.

  • environ.is_staging_safe(version=None)

    Same as environ.is_staging, but returns None if there is no version found.

  • environ.is_production(version=None)

    True if the app is being hosted by Google and the default version.

  • environ.is_production_safe(version=None)

    Same as environ.is_production, but returns None if there is no version found.

  • environ.is_default_version(version=None)

    True if the current or specified app version is the default.

  • environ.is_default_version_safe(version=None)

    Same as environ.is_default_version, but returns None if there is no version found.

  • environ.get_current_version_name_safe()

    Wrapper around google.appengine.api.modules.get_current_version_name. Returns None if there is any error raised, otherwise it returns the current version name.

  • environ.get_current_module_name_safe()

    Wrapper around google.appengine.api.modules.get_current_module_name. Returns None if there is any error raised, otherwise it returns the current version name.

Metadata

Release files for gaek 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gaek 0.4.1
File Size Uploaded
gaek-0.4.1.tar.gz 10.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gaek 0.4.1
File Interpreter ABI Platform
gaek-0.4.1-py2-none-any.whl Python 2 none any Details

Total release size: 18.7 kB

Release files / gaek-0.4.1.tar.gz

Download URL gaek-0.4.1.tar.gz
Size 10.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ccd4b1adfd4005220edc0931d9f42f5c18587aed262765faee54b98ba0f3e8b0
BLAKE2b-256 checksum
How to use checksums
2cc6e5e79a37abbd5521a53b6911fa2510e9da9740c2ffb9b80127e24fa0858c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/2.7.17

Release files / gaek-0.4.1-py2-none-any.whl

Download URL gaek-0.4.1-py2-none-any.whl
Size 8.0 kB
Tags Python 2
SHA-256 checksum
How to use checksums
53a9578c33ab9a0997bf1a36be43511d9caa40c3ca6a1e3d50129901b98a860a
BLAKE2b-256 checksum
How to use checksums
8e5cdfdb4b7ce7969e2ab0f8a127600b7be9a052c24e2ccd8ebed417d97365f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/2.7.17

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

2 release files

0.3.0

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.1.2

2 release files

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page