Merge branch 'master' of git://github.com/punteney/mongoengine

This commit is contained in:
Harry Marr 2010-01-09 22:31:28 +00:00
commit dc51362f0b
2 changed files with 20 additions and 0 deletions

View File

@ -270,6 +270,18 @@ class BaseDocument(object):
def __len__(self): def __len__(self):
return len(self._data) return len(self._data)
def __repr__(self):
try:
u = unicode(self)
except (UnicodeEncodeError, UnicodeDecodeError):
u = '[Bad Unicode data]'
return u'<%s: %s>' % (self.__class__.__name__, u)
def __str__(self):
if hasattr(self, '__unicode__'):
return unicode(self).encode('utf-8')
return '%s object' % self.__class__.__name__
def to_mongo(self): def to_mongo(self):
"""Return data dictionary ready for use with MongoDB. """Return data dictionary ready for use with MongoDB.
""" """

View File

@ -7,6 +7,9 @@ import copy
__all__ = ['queryset_manager', 'Q', 'InvalidQueryError', __all__ = ['queryset_manager', 'Q', 'InvalidQueryError',
'InvalidCollectionError'] 'InvalidCollectionError']
# The maximum number of items to display in a QuerySet.__repr__
REPR_OUTPUT_SIZE = 20
class InvalidQueryError(Exception): class InvalidQueryError(Exception):
pass pass
@ -514,6 +517,11 @@ class QuerySet(object):
""" """
return self.exec_js(freq_func, list_field, normalize=normalize) return self.exec_js(freq_func, list_field, normalize=normalize)
def __repr__(self):
data = list(self[:REPR_OUTPUT_SIZE + 1])
if len(data) > REPR_OUTPUT_SIZE:
data[-1] = "...(remaining elements truncated)..."
return repr(data)
class InvalidCollectionError(Exception): class InvalidCollectionError(Exception):
pass pass