class TestDoc(Document): class __mongometa__: name = 'test_doc' session = self.MockSession version = Field(1) a = Field(int)
class TestDoc(Document): class __mongometa__: name = 'test_doc' session = self.MockSession a = Field(int) b = Field(S.Object(dict(a=int)))
class TestDoc(Document): class __mongometa__: name = 'test_doc' session = self.MockSession indexes = [('a', )] a = Field(S.Int, if_missing=None) b = Field(S.Object(dict(a=S.Int(if_missing=None))))
def field(self): if not self._compiled: raise AttributeError('field') if self.uselist: self.kwargs.setdefault('if_missing', []) return Field(self.name, [self.related._id.field.type], **self.kwargs) else: self.kwargs.setdefault('if_missing', None) return Field(self.name, self.related._id.field.type, **self.kwargs)
class Base(Document): class __mongometa__: name = 'test_doc' session = self.MockSession polymorphic_registry = {} polymorphic_on = 'type' polymorphic_identity = 'base' type = Field(str) a = Field(int)
class TestDoc(Document): class __mongometa__: name = 'test_doc' session = self.MockSession version_of = TestDoc def migrate(old_doc): return dict(old_doc, b=42, version=2) version = Field(2) a = Field(int) b = Field(int, required=True)
class Base(Document): class __mongometa__: name = 'test_doc' session = self.session polymorphic_registry = {} polymorphic_on = 'type' polymorphic_identity = 'base' def before_save(instance): tc.hooks_called['before_save'].append(instance) _id = Field(int) type = Field(str) a = Field(int)
class Derived(Base): class __mongometa__: name = 'test_doc' session = self.session polymorphic_identity = 'derived' b = Field(int)
class TestDoc(Document): class __mongometa__: name = 'test_doc' session = self.MockSession _a = Field('a', S.Int, if_missing=S.Missing) @property def a(self): native = getattr(self, '_a', None) if native < 10: return native return 10
def __init__(self, field_type, *args, **kwargs): ORMProperty.__init__(self) if isinstance(field_type, Field): self.field = field_type if args or kwargs: raise TypeError, 'Unexpected args: %r, %r' % (args, kwargs) else: self.field = Field(field_type, *args, **kwargs) if not isinstance(self.field.name, (basestring, type(None))): raise TypeError, 'Field name must be string or None, not %r' % ( self.field.name) self.name = self.field.name if self.name == '_id': self.__get__ = self._get_id
def filesystem(*args, **kwargs): fields, indexes, collection_name, bases, session = _process_collection_args( args, kwargs) field_index = dict((f.name, f) for f in fields) field_index.setdefault('filename', Field('filename', str, index=True)) field_index.setdefault('content_type', Field('contentType', str, index=True)) field_index.setdefault('_id', Field('_id', S.ObjectId())) field_index.setdefault('chunkSize', Field('chunkSize', int)) field_index.setdefault('length', Field('length', int)) field_index.setdefault('md5', Field('md5', str)) field_index.setdefault('uploadDate', Field('uploadDate', datetime)) dct = dict((k, _FieldDescriptor(f)) for k, f in field_index.items()) cls = type('Filesystem<%s>' % collection_name, bases, dct) fields = field_index.values() m = _FSClassManager(cls, collection_name, session, fields, indexes, **kwargs) cls.m = _ManagerDescriptor(m) return cls
class TestDoc(Document): class __mongometa__: indexes = ['abc'] _id = Field(S.Int) abc = Field(S.Int, if_missing=None)
def field(self): if not self._compiled: raise AttributeError, 'field' return Field(self.name, self.related._id.field.type, **self.kwargs)