Metadata Entities Python Reference

Note: Developers building new applications are strongly encouraged to use the NDB Client Library, which has several benefits compared to this client library, such as automatic entity caching via the Memcache API. If you are currently using the older DB Client Library, read the DB to NDB Migration Guide

The model classes EntityGroup, Namespace, Kind, and Property represent the results of getting or querying metadata kinds. These classes are all defined in the package google.appengine.ext.db.metadata. See the page Metadata for more information and examples of their use.

Helper Functions

The following helper functions are available for obtaining metadata information without issuing an explicit query or get:

get_entity_group_version(entity_or_key)

Returns the version of the entity group containing entity_or_key. This version is guaranteed to increase on every change to the entity group. The version may increase even in the absence of user-visible changes to the entity group. May return None if the entity group was never written to.

Warning: The behavior of entity group metadata is now different. The entity group version can increase independently of user updates. Previously, the entity group version increased only on user update. To maintain legacy behavior, use the entity group version workaround.

Arguments:

entity_or_key
a key or entity whose version you want.
get_namespaces(start=None, end=None)

Returns a list of namespace names.

Arguments

start

If not None, return only namespace names greater than or equal to the specified value.

end

If not None, return only namespace names less than the specified value.

get_kinds(start=None, end=None)

Returns a list of entity kind names.

Arguments

start

If not None, return only kind names greater than or equal to the specified value.

end

If not None, return only kind names less than the specified value.

get_properties_of_kind(kind, start=None, end=None)

Returns a list of indexed property names for a specified kind. Unindexed properties are not included.

Arguments

kind

The kind whose property names are requested.

start

If not None, return only property names greater than or equal to the specified value.

end

If not None, return only property names less than the specified value.

get_representations_of_kind(kind, start=None, end=None)

Returns a dictionary mapping each indexed property name for a specified kind to a list of its representations. Unindexed properties are not included.

Arguments

kind

The kind whose property representations are requested.

start

If not None, return only representations for properties whose names are greater than or equal to the specified value.

end

If not None, return only representations for properties whose names are less than the specified value.

The EntityGroup Class

Model for __entity_group__ metadata (available in HR datastore only).

This metadata contains a numeric __version__ property that is guaranteed to increase on every change to the entity group. The version may increase even in the absence of user-visible changes to the entity group. The __entity_group__ entity may not exist if the entity group was never written to.

Property

version
The version number

Class Method

key_for_entity(entity_or_key)
Return the metadata key for the entity group containing entity_or_key. Use this key as the argument to get() the __entity_group__ metadata entity for the entity group containing entity_or_key.

Arguments:

entity_or_key
a key or entity whose __entity_group__ key you want.

The Namespace Class

Class Namespace represents a metadata entity of the special kind __namespace__, returned as a result of a namespace query. The entity's key is the name of the namespace. (An exception is the default namespace designated by the empty string "": since this is not a valid key name, the default namespace is represented by a key with numeric ID 1 instead.)

Property

Instances of class Namespace have the following property:

namespace_name

Returns the name of the namespace specified by this entity's key.

Class Methods

Class Namespace has the following class methods:

key_for_namespace(namespace)

Returns the __namespace__ key for the specified namespace.

Argument

namespace

The namespace whose key is requested.

key_to_namespace(key)

Returns the namespace specified by a given __namespace__ key.

Argument

key

The key whose name is requested.

The Kind Class

Class Kind represents a metadata entity of the special kind __kind__, returned as a result of a kind query. The entity's key is the name of the entity kind.

Property

Instances of class Kind have the following property:

kind_name

Returns the kind name specified by this entity's key.

Class Methods

Class Kind has the following class methods:

key_for_kind(kind)

Returns the __kind__ key for the specified kind.

Argument

kind

The kind whose key is requested.

key_to_kind(key)

Returns the kind specified by a given __kind__ key.

Argument

key

The key whose kind is requested.

The Property Class

Class Property represents a metadata entity of the special kind __property__, returned as a result of a property query. The entity representing property P of kind K is built as follows:

  • The entity's key has kind __property__ and key name P.
  • The parent entity's key has kind __kind__ and key name K.

Properties

Instances of class Property have the following properties:

kind_name

Returns the kind name specified by this entity's key.

property_name

Returns the property name specified by this entity's key.

Class Methods

Class Property has the following class methods:

key_for_kind(kind)

Returns the parent key for __property__ keys of the specified kind.

Argument

kind

The kind whose parent key is requested.

key_for_property(kind, property)

Returns the __property__ key for the specified property and kind.

Arguments

kind

The kind whose key is requested.

property

The property whose key is requested.

key_to_kind(key)

Returns the kind specified by a given __property__ key.

Argument

key

The key whose kind name is requested.

key_to_property(key)

Returns the property specified by a given __property__ key, or None if the key specified only a kind.

Argument

key

The key whose property name is requested.