Merge branch 'master' of github.com:MongoEngine/mongoengine into remove_pymongo2_support_dead_code
This commit is contained in:
		| @@ -184,9 +184,6 @@ class DocumentMetaclass(type): | ||||
|                 if issubclass(new_class, EmbeddedDocument): | ||||
|                     raise InvalidDocumentError('CachedReferenceFields is not ' | ||||
|                                                'allowed in EmbeddedDocuments') | ||||
|                 if not f.document_type: | ||||
|                     raise InvalidDocumentError( | ||||
|                         'Document is not available to sync') | ||||
|  | ||||
|                 if f.auto_sync: | ||||
|                     f.start_listener() | ||||
|   | ||||
| @@ -31,7 +31,6 @@ def _import_class(cls_name): | ||||
|  | ||||
|     field_classes = _field_list_cache | ||||
|  | ||||
|     queryset_classes = ('OperationError',) | ||||
|     deref_classes = ('DeReference',) | ||||
|  | ||||
|     if cls_name == 'BaseDocument': | ||||
| @@ -43,14 +42,11 @@ def _import_class(cls_name): | ||||
|     elif cls_name in field_classes: | ||||
|         from mongoengine import fields as module | ||||
|         import_classes = field_classes | ||||
|     elif cls_name in queryset_classes: | ||||
|         from mongoengine import queryset as module | ||||
|         import_classes = queryset_classes | ||||
|     elif cls_name in deref_classes: | ||||
|         from mongoengine import dereference as module | ||||
|         import_classes = deref_classes | ||||
|     else: | ||||
|         raise ValueError('No import set for: ' % cls_name) | ||||
|         raise ValueError('No import set for: %s' % cls_name) | ||||
|  | ||||
|     for cls in import_classes: | ||||
|         _class_registry_cache[cls] = getattr(module, cls) | ||||
|   | ||||
| @@ -110,9 +110,6 @@ class ValidationError(AssertionError): | ||||
|  | ||||
|         def build_dict(source): | ||||
|             errors_dict = {} | ||||
|             if not source: | ||||
|                 return errors_dict | ||||
|  | ||||
|             if isinstance(source, dict): | ||||
|                 for field_name, error in iteritems(source): | ||||
|                     errors_dict[field_name] = build_dict(error) | ||||
|   | ||||
| @@ -152,12 +152,10 @@ class URLField(StringField): | ||||
|         scheme = value.split('://')[0].lower() | ||||
|         if scheme not in self.schemes: | ||||
|             self.error(u'Invalid scheme {} in URL: {}'.format(scheme, value)) | ||||
|             return | ||||
|  | ||||
|         # Then check full URL | ||||
|         if not self.url_regex.match(value): | ||||
|             self.error(u'Invalid URL: {}'.format(value)) | ||||
|             return | ||||
|  | ||||
|  | ||||
| class EmailField(StringField): | ||||
| @@ -259,10 +257,10 @@ class EmailField(StringField): | ||||
|             try: | ||||
|                 domain_part = domain_part.encode('idna').decode('ascii') | ||||
|             except UnicodeError: | ||||
|                 self.error(self.error_msg % value) | ||||
|                 self.error("%s %s" % (self.error_msg % value, "(domain failed IDN encoding)")) | ||||
|             else: | ||||
|                 if not self.validate_domain_part(domain_part): | ||||
|                     self.error(self.error_msg % value) | ||||
|                     self.error("%s %s" % (self.error_msg % value, "(domain validation failed)")) | ||||
|  | ||||
|  | ||||
| class IntField(BaseField): | ||||
|   | ||||
| @@ -6,6 +6,7 @@ from mongoengine.connection import get_connection | ||||
|  | ||||
| # Constant that can be used to compare the version retrieved with | ||||
| # get_mongodb_version() | ||||
| MONGODB_36 = (3, 6) | ||||
| MONGODB_34 = (3, 4) | ||||
| MONGODB_32 = (3, 2) | ||||
| MONGODB_3 = (3, 0) | ||||
|   | ||||
| @@ -194,7 +194,7 @@ class BaseQuerySet(object): | ||||
|                 only_fields=self.only_fields | ||||
|             ) | ||||
|  | ||||
|         raise AttributeError('Provide a slice or an integer index') | ||||
|         raise TypeError('Provide a slice or an integer index') | ||||
|  | ||||
|     def __iter__(self): | ||||
|         raise NotImplementedError | ||||
|   | ||||
| @@ -86,18 +86,10 @@ def query(_doc_cls=None, **kwargs): | ||||
|             singular_ops = [None, 'ne', 'gt', 'gte', 'lt', 'lte', 'not'] | ||||
|             singular_ops += STRING_OPERATORS | ||||
|             if op in singular_ops: | ||||
|                 if isinstance(field, six.string_types): | ||||
|                     if (op in STRING_OPERATORS and | ||||
|                             isinstance(value, six.string_types)): | ||||
|                         StringField = _import_class('StringField') | ||||
|                         value = StringField.prepare_query_value(op, value) | ||||
|                     else: | ||||
|                         value = field | ||||
|                 else: | ||||
|                     value = field.prepare_query_value(op, value) | ||||
|                 value = field.prepare_query_value(op, value) | ||||
|  | ||||
|                     if isinstance(field, CachedReferenceField) and value: | ||||
|                         value = value['_id'] | ||||
|                 if isinstance(field, CachedReferenceField) and value: | ||||
|                     value = value['_id'] | ||||
|  | ||||
|             elif op in ('in', 'nin', 'all', 'near') and not isinstance(value, dict): | ||||
|                 # Raise an error if the in/nin/all/near param is not iterable. | ||||
| @@ -277,7 +269,7 @@ def update(_doc_cls=None, **update): | ||||
|  | ||||
|             if op == 'pull': | ||||
|                 if field.required or value is not None: | ||||
|                     if match == 'in' and not isinstance(value, dict): | ||||
|                     if match in ('in', 'nin') and not isinstance(value, dict): | ||||
|                         value = _prepare_query_for_iterable(field, op, value) | ||||
|                     else: | ||||
|                         value = field.prepare_query_value(op, value) | ||||
| @@ -304,10 +296,6 @@ def update(_doc_cls=None, **update): | ||||
|  | ||||
|         key = '.'.join(parts) | ||||
|  | ||||
|         if not op: | ||||
|             raise InvalidQueryError('Updates must supply an operation ' | ||||
|                                     'eg: set__FIELD=value') | ||||
|  | ||||
|         if 'pull' in op and '.' in key: | ||||
|             # Dot operators don't work on pull operations | ||||
|             # unless they point to a list field | ||||
|   | ||||
		Reference in New Issue
	
	Block a user