def decode_list_property(obj, prop, value):
if value is None:
return []
# there is an issue with large ints and ListProperty(int) AMF leaves
# ints > amf3.MAX_29B_INT as floats db.ListProperty complains pretty
# hard in this case so we try to work around the issue.
if prop.item_type in (int, long):
for i, x in enumerate(value):
if isinstance(x, float):
y = int(x)
# only convert the type if there is no mantissa
# otherwise let the chips fall where they may
if x == y:
value[i] = y
return value
python类ListProperty()的实例源码
_google_appengine_ext_db.py 文件源码
项目:Tinychat-Bot--Discontinued
作者: Tinychat
项目源码
文件源码
阅读 21
收藏 0
点赞 0
评论 0
def convert_ListProperty(model, prop, kwargs):
"""Returns a form field for a ``db.ListProperty``."""
return None
def convert_ListProperty(model, prop, kwargs):
"""Returns a form field for a ``db.ListProperty``."""
return 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 _model_to_prospective_search_schema(model, add_entry):
"""Produce SchemaEntries from db.Model class."""
from google.appengine.ext import db
for name, model_property in model.properties().iteritems():
model_class = model_property.__class__
if issubclass(model_class, db.ListProperty):
model_class = _GetModelTypeForListPropertyType(model_property.item_type)
_add_schema_entry(model_class, name, add_entry)
def convert_ListProperty(model, prop, kwargs):
"""Returns a form field for a ``db.ListProperty``."""
return 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 _model_to_prospective_search_schema(model, add_entry):
"""Produce SchemaEntries from db.Model class."""
from google.appengine.ext import db
for name, model_property in model.properties().iteritems():
model_class = model_property.__class__
if issubclass(model_class, db.ListProperty):
model_class = _GetModelTypeForListPropertyType(model_property.item_type)
_add_schema_entry(model_class, name, add_entry)
def convert_ListProperty(model, prop, kwargs):
"""Returns a form field for a ``db.ListProperty``."""
return None
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 convert_ListProperty(model, prop, kwargs):
"""Returns a form field for a ``db.ListProperty``."""
return None
def convert_ListProperty(model, prop, kwargs):
"""Returns a form field for a ``db.ListProperty``."""
return None
def convert_ListProperty(model, prop, kwargs):
"""Returns a form field for a ``db.ListProperty``."""
return None
def convert_ListProperty(model, prop, kwargs):
"""Returns a form field for a ``db.ListProperty``."""
return None
def convert_ListProperty(model, prop, kwargs):
"""Returns a form field for a ``db.ListProperty``."""
return None
def convert_ListProperty(model, prop, kwargs):
"""Returns a form field for a ``db.ListProperty``."""
return None
def convert_ListProperty(model, prop, kwargs):
"""Returns a form field for a ``db.ListProperty``."""
return 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 _model_to_prospective_search_schema(model, add_entry):
"""Produce SchemaEntries from db.Model class."""
from google.appengine.ext import db
for name, model_property in model.properties().iteritems():
model_class = model_property.__class__
if issubclass(model_class, db.ListProperty):
model_class = _GetModelTypeForListPropertyType(model_property.item_type)
_add_schema_entry(model_class, name, add_entry)
def convert_ListProperty(model, prop, kwargs):
"""Returns a form field for a ``db.ListProperty``."""
return None
def convert_ListProperty(model, prop, kwargs):
"""Returns a form field for a ``db.ListProperty``."""
return None
def convert_ListProperty(model, prop, kwargs):
"""Returns a form field for a ``db.ListProperty``."""
return None
def convert_ListProperty(model, prop, kwargs):
"""Returns a form field for a ``db.ListProperty``."""
return 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 _model_to_prospective_search_schema(model, add_entry):
"""Produce SchemaEntries from db.Model class."""
from google.appengine.ext import db
for name, model_property in model.properties().iteritems():
model_class = model_property.__class__
if issubclass(model_class, db.ListProperty):
model_class = _GetModelTypeForListPropertyType(model_property.item_type)
_add_schema_entry(model_class, name, add_entry)
def convert_ListProperty(model, prop, kwargs):
"""Returns a form field for a ``db.ListProperty``."""
return 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 _model_to_prospective_search_schema(model, add_entry):
"""Produce SchemaEntries from db.Model class."""
from google.appengine.ext import db
for name, model_property in model.properties().iteritems():
model_class = model_property.__class__
if issubclass(model_class, db.ListProperty):
model_class = _GetModelTypeForListPropertyType(model_property.item_type)
_add_schema_entry(model_class, name, add_entry)
def convert_ListProperty(model, prop, kwargs):
"""Returns a form field for a ``db.ListProperty``."""
return None
def convert_ListProperty(model, prop, kwargs):
"""Returns a form field for a ``db.ListProperty``."""
return None