Skip to main content

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

Project description

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.

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

gaek-0.4.1.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

gaek-0.4.1-py2-none-any.whl (8.0 kB view details)

Uploaded Python 2

File details

Details for the file gaek-0.4.1.tar.gz.

File metadata

  • Download URL: gaek-0.4.1.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for gaek-0.4.1.tar.gz
Algorithm Hash digest
SHA256 ccd4b1adfd4005220edc0931d9f42f5c18587aed262765faee54b98ba0f3e8b0
MD5 3fdd7a3763b5614b7231ee3146faa01b
BLAKE2b-256 2cc6e5e79a37abbd5521a53b6911fa2510e9da9740c2ffb9b80127e24fa0858c

See more details on using hashes here.

File details

Details for the file gaek-0.4.1-py2-none-any.whl.

File metadata

  • Download URL: gaek-0.4.1-py2-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 2
  • Uploaded using 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

File hashes

Hashes for gaek-0.4.1-py2-none-any.whl
Algorithm Hash digest
SHA256 53a9578c33ab9a0997bf1a36be43511d9caa40c3ca6a1e3d50129901b98a860a
MD5 cc159163dd357a8c743f93869021f9d3
BLAKE2b-256 8e5cdfdb4b7ce7969e2ab0f8a127600b7be9a052c24e2ccd8ebed417d97365f5

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