def test_deep_inheritance(self):
class DeepPoly(self.klass):
d = db.IntegerProperty()
self.alias = adapter.DataStoreClassAlias(DeepPoly, None)
self.dp = DeepPoly()
self.dp.s = 'bar'
self.dp.d = 92
attrs = self.alias.getEncodableAttributes(self.dp)
self.assertEqual(attrs, {
'_key': None,
's': 'bar',
'd': 92
})
python类IntegerProperty()的实例源码
def get_IntegerField(kwargs):
"""
Returns an ``IntegerField``, applying the ``db.IntegerProperty`` range
limits.
"""
v = validators.NumberRange(min=-0x8000000000000000, max=0x7fffffffffffffff)
kwargs['validators'].append(v)
return f.IntegerField(**kwargs)
def convert_IntegerProperty(model, prop, kwargs):
"""Returns a form field for a ``db.IntegerProperty``."""
return get_IntegerField(kwargs)
def get_IntegerField(kwargs):
"""
Returns an ``IntegerField``, applying the ``db.IntegerProperty`` range
limits.
"""
v = validators.NumberRange(min=-0x8000000000000000, max=0x7fffffffffffffff)
kwargs['validators'].append(v)
return f.IntegerField(**kwargs)
def convert_IntegerProperty(model, prop, kwargs):
"""Returns a form field for a ``db.IntegerProperty``."""
return get_IntegerField(kwargs)
def _GetSchemaEntryForPropertyType(property_type):
"""Converts db.Model type to internal schema type."""
from google.appengine.ext import db
_MODEL_TYPE_TO_SCHEMA_ENTRY = {
db.StringProperty: (_schema_type.STRING, None),
db.IntegerProperty: (_schema_type.INT32, None),
db.BooleanProperty: (_schema_type.BOOLEAN, None),
db.FloatProperty: (_schema_type.DOUBLE, None),
db.TextProperty: (_schema_type.STRING, None)
}
return _MODEL_TYPE_TO_SCHEMA_ENTRY.get(property_type, (None, None))
def _GetModelTypeForListPropertyType(property_type):
"""Converts (supported) db.ListProperty type to db.Model type."""
from google.appengine.ext import db
_LISTPROPERTY_TYPE_TO_SCHEMA_ENTRY = {
basestring: db.StringProperty,
str: db.StringProperty,
unicode: db.StringProperty,
bool: db.BooleanProperty,
int: db.IntegerProperty,
float: db.FloatProperty,
db.Text: db.TextProperty,
}
return _LISTPROPERTY_TYPE_TO_SCHEMA_ENTRY.get(property_type, None)
def _GetModelTypeForEntityType(python_type):
"""Converts python built in type to db.Model type."""
from google.appengine.ext import db
_PYTHON_TYPE_TO_MODEL_TYPE = {
basestring: db.StringProperty,
str: db.StringProperty,
unicode: db.StringProperty,
int: db.IntegerProperty,
bool: db.BooleanProperty,
float: db.FloatProperty,
db.Text: db.TextProperty,
}
return _PYTHON_TYPE_TO_MODEL_TYPE.get(python_type, None)
def get_IntegerField(kwargs):
"""
Returns an ``IntegerField``, applying the ``db.IntegerProperty`` range
limits.
"""
v = validators.NumberRange(min=-0x8000000000000000, max=0x7fffffffffffffff)
kwargs['validators'].append(v)
return f.IntegerField(**kwargs)
def convert_IntegerProperty(model, prop, kwargs):
"""Returns a form field for a ``db.IntegerProperty``."""
return get_IntegerField(kwargs)
def _GetSchemaEntryForPropertyType(property_type):
"""Converts db.Model type to internal schema type."""
from google.appengine.ext import db
_MODEL_TYPE_TO_SCHEMA_ENTRY = {
db.StringProperty: (_schema_type.STRING, None),
db.IntegerProperty: (_schema_type.INT32, None),
db.BooleanProperty: (_schema_type.BOOLEAN, None),
db.FloatProperty: (_schema_type.DOUBLE, None),
db.TextProperty: (_schema_type.STRING, None)
}
return _MODEL_TYPE_TO_SCHEMA_ENTRY.get(property_type, (None, None))
def _GetModelTypeForListPropertyType(property_type):
"""Converts (supported) db.ListProperty type to db.Model type."""
from google.appengine.ext import db
_LISTPROPERTY_TYPE_TO_SCHEMA_ENTRY = {
basestring: db.StringProperty,
str: db.StringProperty,
unicode: db.StringProperty,
bool: db.BooleanProperty,
int: db.IntegerProperty,
float: db.FloatProperty,
db.Text: db.TextProperty,
}
return _LISTPROPERTY_TYPE_TO_SCHEMA_ENTRY.get(property_type, None)
def _GetModelTypeForEntityType(python_type):
"""Converts python built in type to db.Model type."""
from google.appengine.ext import db
_PYTHON_TYPE_TO_MODEL_TYPE = {
basestring: db.StringProperty,
str: db.StringProperty,
unicode: db.StringProperty,
int: db.IntegerProperty,
bool: db.BooleanProperty,
float: db.FloatProperty,
db.Text: db.TextProperty,
}
return _PYTHON_TYPE_TO_MODEL_TYPE.get(python_type, None)
def get_IntegerField(kwargs):
"""
Returns an ``IntegerField``, applying the ``db.IntegerProperty`` range
limits.
"""
v = validators.NumberRange(min=-0x8000000000000000, max=0x7fffffffffffffff)
kwargs['validators'].append(v)
return f.IntegerField(**kwargs)
def convert_IntegerProperty(model, prop, kwargs):
"""Returns a form field for a ``db.IntegerProperty``."""
return get_IntegerField(kwargs)
def __init__(self,db,uri,pool_size=0,folder=None,db_codec ='UTF-8',
credential_decoder=IDENTITY, driver_args={},
adapter_args={}, do_connect=True, after_connection=None):
self.types.update({
'boolean': gae.BooleanProperty,
'string': (lambda **kwargs: gae.StringProperty(multiline=True, **kwargs)),
'text': gae.TextProperty,
'json': gae.TextProperty,
'password': gae.StringProperty,
'blob': gae.BlobProperty,
'upload': gae.StringProperty,
'integer': gae.IntegerProperty,
'bigint': gae.IntegerProperty,
'float': gae.FloatProperty,
'double': gae.FloatProperty,
'decimal': GAEDecimalProperty,
'date': gae.DateProperty,
'time': gae.TimeProperty,
'datetime': gae.DateTimeProperty,
'id': None,
'reference': gae.IntegerProperty,
'list:string': (lambda **kwargs: gae.StringListProperty(default=None, **kwargs)),
'list:integer': (lambda **kwargs: gae.ListProperty(int,default=None, **kwargs)),
'list:reference': (lambda **kwargs: gae.ListProperty(int,default=None, **kwargs)),
})
self.db = db
self.uri = uri
self.dbengine = 'google:datastore'
self.folder = folder
db['_lastsql'] = ''
self.db_codec = 'UTF-8'
self._after_connection = after_connection
self.pool_size = 0
match = self.REGEX_NAMESPACE.match(uri)
if match:
namespace_manager.set_namespace(match.group('namespace'))
def get_IntegerField(kwargs):
"""
Returns an ``IntegerField``, applying the ``db.IntegerProperty`` range
limits.
"""
v = validators.NumberRange(min=-0x8000000000000000, max=0x7fffffffffffffff)
kwargs['validators'].append(v)
return f.IntegerField(**kwargs)
def convert_IntegerProperty(model, prop, kwargs):
"""Returns a form field for a ``db.IntegerProperty``."""
return get_IntegerField(kwargs)
def get_IntegerField(kwargs):
"""
Returns an ``IntegerField``, applying the ``db.IntegerProperty`` range
limits.
"""
v = validators.NumberRange(min=-0x8000000000000000, max=0x7fffffffffffffff)
kwargs['validators'].append(v)
return f.IntegerField(**kwargs)
def convert_IntegerProperty(model, prop, kwargs):
"""Returns a form field for a ``db.IntegerProperty``."""
return get_IntegerField(kwargs)
def get_IntegerField(kwargs):
"""
Returns an ``IntegerField``, applying the ``db.IntegerProperty`` range
limits.
"""
v = validators.NumberRange(min=-0x8000000000000000, max=0x7fffffffffffffff)
kwargs['validators'].append(v)
return f.IntegerField(**kwargs)
def convert_IntegerProperty(model, prop, kwargs):
"""Returns a form field for a ``db.IntegerProperty``."""
return get_IntegerField(kwargs)
def get_IntegerField(kwargs):
"""
Returns an ``IntegerField``, applying the ``db.IntegerProperty`` range
limits.
"""
v = validators.NumberRange(min=-0x8000000000000000, max=0x7fffffffffffffff)
kwargs['validators'].append(v)
return f.IntegerField(**kwargs)
def convert_IntegerProperty(model, prop, kwargs):
"""Returns a form field for a ``db.IntegerProperty``."""
return get_IntegerField(kwargs)
def get_IntegerField(kwargs):
"""
Returns an ``IntegerField``, applying the ``db.IntegerProperty`` range
limits.
"""
v = validators.NumberRange(min=-0x8000000000000000, max=0x7fffffffffffffff)
kwargs['validators'].append(v)
return f.IntegerField(**kwargs)
def convert_IntegerProperty(model, prop, kwargs):
"""Returns a form field for a ``db.IntegerProperty``."""
return get_IntegerField(kwargs)
def get_IntegerField(kwargs):
"""
Returns an ``IntegerField``, applying the ``db.IntegerProperty`` range
limits.
"""
v = validators.NumberRange(min=-0x8000000000000000, max=0x7fffffffffffffff)
kwargs['validators'].append(v)
return f.IntegerField(**kwargs)
def convert_IntegerProperty(model, prop, kwargs):
"""Returns a form field for a ``db.IntegerProperty``."""
return get_IntegerField(kwargs)
def get_IntegerField(kwargs):
"""
Returns an ``IntegerField``, applying the ``db.IntegerProperty`` range
limits.
"""
v = validators.NumberRange(min=-0x8000000000000000, max=0x7fffffffffffffff)
kwargs['validators'].append(v)
return f.IntegerField(**kwargs)
def convert_IntegerProperty(model, prop, kwargs):
"""Returns a form field for a ``db.IntegerProperty``."""
return get_IntegerField(kwargs)