From 9012455b6d073534d2e96c3811969acf1b31c648 Mon Sep 17 00:00:00 2001 From: Chris Meyers Date: Fri, 3 Apr 2015 08:29:47 -0400 Subject: [PATCH] added dependencies mongoengine and pymongo --- awx/lib/site-packages/mongoengine/__init__.py | 26 + .../mongoengine/base/__init__.py | 8 + .../site-packages/mongoengine/base/common.py | 26 + .../mongoengine/base/datastructures.py | 449 ++++ .../mongoengine/base/document.py | 999 ++++++++ .../site-packages/mongoengine/base/fields.py | 596 +++++ .../mongoengine/base/metaclasses.py | 431 ++++ awx/lib/site-packages/mongoengine/common.py | 55 + .../site-packages/mongoengine/connection.py | 169 ++ .../mongoengine/context_managers.py | 221 ++ .../site-packages/mongoengine/dereference.py | 237 ++ .../mongoengine/django/__init__.py | 0 .../site-packages/mongoengine/django/auth.py | 412 ++++ .../mongoengine/django/mongo_auth/__init__.py | 0 .../mongoengine/django/mongo_auth/models.py | 119 + .../mongoengine/django/sessions.py | 124 + .../mongoengine/django/shortcuts.py | 47 + .../mongoengine/django/storage.py | 112 + .../site-packages/mongoengine/django/tests.py | 31 + .../site-packages/mongoengine/django/utils.py | 6 + awx/lib/site-packages/mongoengine/document.py | 869 +++++++ awx/lib/site-packages/mongoengine/errors.py | 131 ++ awx/lib/site-packages/mongoengine/fields.py | 2006 +++++++++++++++++ .../mongoengine/python_support.py | 29 + .../mongoengine/queryset/__init__.py | 11 + .../mongoengine/queryset/base.py | 1750 ++++++++++++++ .../mongoengine/queryset/field_list.py | 86 + .../mongoengine/queryset/manager.py | 57 + .../mongoengine/queryset/queryset.py | 164 ++ .../mongoengine/queryset/transform.py | 372 +++ .../mongoengine/queryset/visitor.py | 162 ++ awx/lib/site-packages/mongoengine/signals.py | 47 + requirements/dev.txt | 4 +- requirements/dev_local.txt | 8 +- requirements/mongo-python-driver-2.8.tar.gz | Bin 0 -> 401164 bytes requirements/mongoengine-0.9.0.tar.gz | Bin 0 -> 466782 bytes requirements/prod.txt | 4 +- requirements/prod_local.txt | 4 +- 38 files changed, 9768 insertions(+), 4 deletions(-) create mode 100644 awx/lib/site-packages/mongoengine/__init__.py create mode 100644 awx/lib/site-packages/mongoengine/base/__init__.py create mode 100644 awx/lib/site-packages/mongoengine/base/common.py create mode 100644 awx/lib/site-packages/mongoengine/base/datastructures.py create mode 100644 awx/lib/site-packages/mongoengine/base/document.py create mode 100644 awx/lib/site-packages/mongoengine/base/fields.py create mode 100644 awx/lib/site-packages/mongoengine/base/metaclasses.py create mode 100644 awx/lib/site-packages/mongoengine/common.py create mode 100644 awx/lib/site-packages/mongoengine/connection.py create mode 100644 awx/lib/site-packages/mongoengine/context_managers.py create mode 100644 awx/lib/site-packages/mongoengine/dereference.py create mode 100644 awx/lib/site-packages/mongoengine/django/__init__.py create mode 100644 awx/lib/site-packages/mongoengine/django/auth.py create mode 100644 awx/lib/site-packages/mongoengine/django/mongo_auth/__init__.py create mode 100644 awx/lib/site-packages/mongoengine/django/mongo_auth/models.py create mode 100644 awx/lib/site-packages/mongoengine/django/sessions.py create mode 100644 awx/lib/site-packages/mongoengine/django/shortcuts.py create mode 100644 awx/lib/site-packages/mongoengine/django/storage.py create mode 100644 awx/lib/site-packages/mongoengine/django/tests.py create mode 100644 awx/lib/site-packages/mongoengine/django/utils.py create mode 100644 awx/lib/site-packages/mongoengine/document.py create mode 100644 awx/lib/site-packages/mongoengine/errors.py create mode 100644 awx/lib/site-packages/mongoengine/fields.py create mode 100644 awx/lib/site-packages/mongoengine/python_support.py create mode 100644 awx/lib/site-packages/mongoengine/queryset/__init__.py create mode 100644 awx/lib/site-packages/mongoengine/queryset/base.py create mode 100644 awx/lib/site-packages/mongoengine/queryset/field_list.py create mode 100644 awx/lib/site-packages/mongoengine/queryset/manager.py create mode 100644 awx/lib/site-packages/mongoengine/queryset/queryset.py create mode 100644 awx/lib/site-packages/mongoengine/queryset/transform.py create mode 100644 awx/lib/site-packages/mongoengine/queryset/visitor.py create mode 100644 awx/lib/site-packages/mongoengine/signals.py create mode 100644 requirements/mongo-python-driver-2.8.tar.gz create mode 100644 requirements/mongoengine-0.9.0.tar.gz diff --git a/awx/lib/site-packages/mongoengine/__init__.py b/awx/lib/site-packages/mongoengine/__init__.py new file mode 100644 index 0000000000..b215181adc --- /dev/null +++ b/awx/lib/site-packages/mongoengine/__init__.py @@ -0,0 +1,26 @@ +import document +from document import * +import fields +from fields import * +import connection +from connection import * +import queryset +from queryset import * +import signals +from signals import * +from errors import * +import errors +import django + +__all__ = (list(document.__all__) + fields.__all__ + connection.__all__ + + list(queryset.__all__) + signals.__all__ + list(errors.__all__)) + +VERSION = (0, 9, 0) + + +def get_version(): + if isinstance(VERSION[-1], basestring): + return '.'.join(map(str, VERSION[:-1])) + VERSION[-1] + return '.'.join(map(str, VERSION)) + +__version__ = get_version() diff --git a/awx/lib/site-packages/mongoengine/base/__init__.py b/awx/lib/site-packages/mongoengine/base/__init__.py new file mode 100644 index 0000000000..e8d4b6ad96 --- /dev/null +++ b/awx/lib/site-packages/mongoengine/base/__init__.py @@ -0,0 +1,8 @@ +from mongoengine.base.common import * +from mongoengine.base.datastructures import * +from mongoengine.base.document import * +from mongoengine.base.fields import * +from mongoengine.base.metaclasses import * + +# Help with backwards compatibility +from mongoengine.errors import * diff --git a/awx/lib/site-packages/mongoengine/base/common.py b/awx/lib/site-packages/mongoengine/base/common.py new file mode 100644 index 0000000000..3a966c792f --- /dev/null +++ b/awx/lib/site-packages/mongoengine/base/common.py @@ -0,0 +1,26 @@ +from mongoengine.errors import NotRegistered + +__all__ = ('ALLOW_INHERITANCE', 'get_document', '_document_registry') + +ALLOW_INHERITANCE = False + +_document_registry = {} + + +def get_document(name): + doc = _document_registry.get(name, None) + if not doc: + # Possible old style name + single_end = name.split('.')[-1] + compound_end = '.%s' % single_end + possible_match = [k for k in _document_registry.keys() + if k.endswith(compound_end) or k == single_end] + if len(possible_match) == 1: + doc = _document_registry.get(possible_match.pop(), None) + if not doc: + raise NotRegistered(""" + `%s` has not been registered in the document registry. + Importing the document class automatically registers it, has it + been imported? + """.strip() % name) + return doc diff --git a/awx/lib/site-packages/mongoengine/base/datastructures.py b/awx/lib/site-packages/mongoengine/base/datastructures.py new file mode 100644 index 0000000000..bac67ddca0 --- /dev/null +++ b/awx/lib/site-packages/mongoengine/base/datastructures.py @@ -0,0 +1,449 @@ +import weakref +import functools +import itertools +from mongoengine.common import _import_class +from mongoengine.errors import DoesNotExist, MultipleObjectsReturned + +__all__ = ("BaseDict", "BaseList", "EmbeddedDocumentList") + + +class BaseDict(dict): + """A special dict so we can watch any changes""" + + _dereferenced = False + _instance = None + _name = None + + def __init__(self, dict_items, instance, name): + Document = _import_class('Document') + EmbeddedDocument = _import_class('EmbeddedDocument') + + if isinstance(instance, (Document, EmbeddedDocument)): + self._instance = weakref.proxy(instance) + self._name = name + return super(BaseDict, self).__init__(dict_items) + + def __getitem__(self, key, *args, **kwargs): + value = super(BaseDict, self).__getitem__(key) + + EmbeddedDocument = _import_class('EmbeddedDocument') + if isinstance(value, EmbeddedDocument) and value._instance is None: + value._instance = self._instance + elif not isinstance(value, BaseDict) and isinstance(value, dict): + value = BaseDict(value, None, '%s.%s' % (self._name, key)) + super(BaseDict, self).__setitem__(key, value) + value._instance = self._instance + elif not isinstance(value, BaseList) and isinstance(value, list): + value = BaseList(value, None, '%s.%s' % (self._name, key)) + super(BaseDict, self).__setitem__(key, value) + value._instance = self._instance + return value + + def __setitem__(self, key, value, *args, **kwargs): + self._mark_as_changed(key) + return super(BaseDict, self).__setitem__(key, value) + + def __delete__(self, *args, **kwargs): + self._mark_as_changed() + return super(BaseDict, self).__delete__(*args, **kwargs) + + def __delitem__(self, key, *args, **kwargs): + self._mark_as_changed(key) + return super(BaseDict, self).__delitem__(key) + + def __delattr__(self, key, *args, **kwargs): + self._mark_as_changed(key) + return super(BaseDict, self).__delattr__(key) + + def __getstate__(self): + self.instance = None + self._dereferenced = False + return self + + def __setstate__(self, state): + self = state + return self + + def clear(self, *args, **kwargs): + self._mark_as_changed() + return super(BaseDict, self).clear(*args, **kwargs) + + def pop(self, *args, **kwargs): + self._mark_as_changed() + return super(BaseDict, self).pop(*args, **kwargs) + + def popitem(self, *args, **kwargs): + self._mark_as_changed() + return super(BaseDict, self).popitem(*args, **kwargs) + + def setdefault(self, *args, **kwargs): + self._mark_as_changed() + return super(BaseDict, self).setdefault(*args, **kwargs) + + def update(self, *args, **kwargs): + self._mark_as_changed() + return super(BaseDict, self).update(*args, **kwargs) + + def _mark_as_changed(self, key=None): + if hasattr(self._instance, '_mark_as_changed'): + if key: + self._instance._mark_as_changed('%s.%s' % (self._name, key)) + else: + self._instance._mark_as_changed(self._name) + + +class BaseList(list): + """A special list so we can watch any changes + """ + + _dereferenced = False + _instance = None + _name = None + + def __init__(self, list_items, instance, name): + Document = _import_class('Document') + EmbeddedDocument = _import_class('EmbeddedDocument') + + if isinstance(instance, (Document, EmbeddedDocument)): + self._instance = weakref.proxy(instance) + self._name = name + super(BaseList, self).__init__(list_items) + + def __getitem__(self, key, *args, **kwargs): + value = super(BaseList, self).__getitem__(key) + + EmbeddedDocument = _import_class('EmbeddedDocument') + if isinstance(value, EmbeddedDocument) and value._instance is None: + value._instance = self._instance + elif not isinstance(value, BaseDict) and isinstance(value, dict): + value = BaseDict(value, None, '%s.%s' % (self._name, key)) + super(BaseList, self).__setitem__(key, value) + value._instance = self._instance + elif not isinstance(value, BaseList) and isinstance(value, list): + value = BaseList(value, None, '%s.%s' % (self._name, key)) + super(BaseList, self).__setitem__(key, value) + value._instance = self._instance + return value + + def __setitem__(self, key, value, *args, **kwargs): + if isinstance(key, slice): + self._mark_as_changed() + else: + self._mark_as_changed(key) + return super(BaseList, self).__setitem__(key, value) + + def __delitem__(self, key, *args, **kwargs): + if isinstance(key, slice): + self._mark_as_changed() + else: + self._mark_as_changed(key) + return super(BaseList, self).__delitem__(key) + + def __setslice__(self, *args, **kwargs): + self._mark_as_changed() + return super(BaseList, self).__setslice__(*args, **kwargs) + + def __delslice__(self, *args, **kwargs): + self._mark_as_changed() + return super(BaseList, self).__delslice__(*args, **kwargs) + + def __getstate__(self): + self.instance = None + self._dereferenced = False + return self + + def __setstate__(self, state): + self = state + return self + + def append(self, *args, **kwargs): + self._mark_as_changed() + return super(BaseList, self).append(*args, **kwargs) + + def extend(self, *args, **kwargs): + self._mark_as_changed() + return super(BaseList, self).extend(*args, **kwargs) + + def insert(self, *args, **kwargs): + self._mark_as_changed() + return super(BaseList, self).insert(*args, **kwargs) + + def pop(self, *args, **kwargs): + self._mark_as_changed() + return super(BaseList, self).pop(*args, **kwargs) + + def remove(self, *args, **kwargs): + self._mark_as_changed() + return super(BaseList, self).remove(*args, **kwargs) + + def reverse(self, *args, **kwargs): + self._mark_as_changed() + return super(BaseList, self).reverse(*args, **kwargs) + + def sort(self, *args, **kwargs): + self._mark_as_changed() + return super(BaseList, self).sort(*args, **kwargs) + + def _mark_as_changed(self, key=None): + if hasattr(self._instance, '_mark_as_changed'): + if key: + self._instance._mark_as_changed('%s.%s' % (self._name, key)) + else: + self._instance._mark_as_changed(self._name) + + +class EmbeddedDocumentList(BaseList): + + @classmethod + def __match_all(cls, i, kwargs): + items = kwargs.items() + return all([ + getattr(i, k) == v or str(getattr(i, k)) == v for k, v in items + ]) + + @classmethod + def __only_matches(cls, obj, kwargs): + if not kwargs: + return obj + return filter(lambda i: cls.__match_all(i, kwargs), obj) + + def __init__(self, list_items, instance, name): + super(EmbeddedDocumentList, self).__init__(list_items, instance, name) + self._instance = instance + + def filter(self, **kwargs): + """ + Filters the list by only including embedded documents with the + given keyword arguments. + + :param kwargs: The keyword arguments corresponding to the fields to + filter on. *Multiple arguments are treated as if they are ANDed + together.* + :return: A new ``EmbeddedDocumentList`` containing the matching + embedded documents. + + Raises ``AttributeError`` if a given keyword is not a valid field for + the embedded document class. + """ + values = self.__only_matches(self, kwargs) + return EmbeddedDocumentList(values, self._instance, self._name) + + def exclude(self, **kwargs): + """ + Filters the list by excluding embedded documents with the given + keyword arguments. + + :param kwargs: The keyword arguments corresponding to the fields to + exclude on. *Multiple arguments are treated as if they are ANDed + together.* + :return: A new ``EmbeddedDocumentList`` containing the non-matching + embedded documents. + + Raises ``AttributeError`` if a given keyword is not a valid field for + the embedded document class. + """ + exclude = self.__only_matches(self, kwargs) + values = [item for item in self if item not in exclude] + return EmbeddedDocumentList(values, self._instance, self._name) + + def count(self): + """ + The number of embedded documents in the list. + + :return: The length of the list, equivalent to the result of ``len()``. + """ + return len(self) + + def get(self, **kwargs): + """ + Retrieves an embedded document determined by the given keyword + arguments. + + :param kwargs: The keyword arguments corresponding to the fields to + search on. *Multiple arguments are treated as if they are ANDed + together.* + :return: The embedded document matched by the given keyword arguments. + + Raises ``DoesNotExist`` if the arguments used to query an embedded + document returns no results. ``MultipleObjectsReturned`` if more + than one result is returned. + """ + values = self.__only_matches(self, kwargs) + if len(values) == 0: + raise DoesNotExist( + "%s matching query does not exist." % self._name + ) + elif len(values) > 1: + raise MultipleObjectsReturned( + "%d items returned, instead of 1" % len(values) + ) + + return values[0] + + def first(self): + """ + Returns the first embedded document in the list, or ``None`` if empty. + """ + if len(self) > 0: + return self[0] + + def create(self, **values): + """ + Creates a new embedded document and saves it to the database. + + .. note:: + The embedded document changes are not automatically saved + to the database after calling this method. + + :param values: A dictionary of values for the embedded document. + :return: The new embedded document instance. + """ + name = self._name + EmbeddedClass = self._instance._fields[name].field.document_type_obj + self._instance[self._name].append(EmbeddedClass(**values)) + + return self._instance[self._name][-1] + + def save(self, *args, **kwargs): + """ + Saves the ancestor document. + + :param args: Arguments passed up to the ancestor Document's save + method. + :param kwargs: Keyword arguments passed up to the ancestor Document's + save method. + """ + self._instance.save(*args, **kwargs) + + def delete(self): + """ + Deletes the embedded documents from the database. + + .. note:: + The embedded document changes are not automatically saved + to the database after calling this method. + + :return: The number of entries deleted. + """ + values = list(self) + for item in values: + self._instance[self._name].remove(item) + + return len(values) + + def update(self, **update): + """ + Updates the embedded documents with the given update values. + + .. note:: + The embedded document changes are not automatically saved + to the database after calling this method. + + :param update: A dictionary of update values to apply to each + embedded document. + :return: The number of entries updated. + """ + if len(update) == 0: + return 0 + values = list(self) + for item in values: + for k, v in update.items(): + setattr(item, k, v) + + return len(values) + + +class StrictDict(object): + __slots__ = () + _special_fields = set(['get', 'pop', 'iteritems', 'items', 'keys', 'create']) + _classes = {} + def __init__(self, **kwargs): + for k,v in kwargs.iteritems(): + setattr(self, k, v) + def __getitem__(self, key): + key = '_reserved_' + key if key in self._special_fields else key + try: + return getattr(self, key) + except AttributeError: + raise KeyError(key) + def __setitem__(self, key, value): + key = '_reserved_' + key if key in self._special_fields else key + return setattr(self, key, value) + def __contains__(self, key): + return hasattr(self, key) + def get(self, key, default=None): + try: + return self[key] + except KeyError: + return default + def pop(self, key, default=None): + v = self.get(key, default) + try: + delattr(self, key) + except AttributeError: + pass + return v + def iteritems(self): + for key in self: + yield key, self[key] + def items(self): + return [(k, self[k]) for k in iter(self)] + def keys(self): + return list(iter(self)) + def __iter__(self): + return (key for key in self.__slots__ if hasattr(self, key)) + def __len__(self): + return len(list(self.iteritems())) + def __eq__(self, other): + return self.items() == other.items() + def __neq__(self, other): + return self.items() != other.items() + + @classmethod + def create(cls, allowed_keys): + allowed_keys_tuple = tuple(('_reserved_' + k if k in cls._special_fields else k) for k in allowed_keys) + allowed_keys = frozenset(allowed_keys_tuple) + if allowed_keys not in cls._classes: + class SpecificStrictDict(cls): + __slots__ = allowed_keys_tuple + def __repr__(self): + return "{%s}" % ', '.join('"{0!s}": {0!r}'.format(k,v) for (k,v) in self.iteritems()) + cls._classes[allowed_keys] = SpecificStrictDict + return cls._classes[allowed_keys] + + +class SemiStrictDict(StrictDict): + __slots__ = ('_extras') + _classes = {} + def __getattr__(self, attr): + try: + super(SemiStrictDict, self).__getattr__(attr) + except AttributeError: + try: + return self.__getattribute__('_extras')[attr] + except KeyError as e: + raise AttributeError(e) + def __setattr__(self, attr, value): + try: + super(SemiStrictDict, self).__setattr__(attr, value) + except AttributeError: + try: + self._extras[attr] = value + except AttributeError: + self._extras = {attr: value} + + def __delattr__(self, attr): + try: + super(SemiStrictDict, self).__delattr__(attr) + except AttributeError: + try: + del self._extras[attr] + except KeyError as e: + raise AttributeError(e) + + def __iter__(self): + try: + extras_iter = iter(self.__getattribute__('_extras')) + except AttributeError: + extras_iter = () + return itertools.chain(super(SemiStrictDict, self).__iter__(), extras_iter) diff --git a/awx/lib/site-packages/mongoengine/base/document.py b/awx/lib/site-packages/mongoengine/base/document.py new file mode 100644 index 0000000000..bcd7617200 --- /dev/null +++ b/awx/lib/site-packages/mongoengine/base/document.py @@ -0,0 +1,999 @@ +import copy +import operator +import numbers +from collections import Hashable +from functools import partial + +import pymongo +from bson import json_util, ObjectId +from bson.dbref import DBRef +from bson.son import SON + +from mongoengine import signals +from mongoengine.common import _import_class +from mongoengine.errors import (ValidationError, InvalidDocumentError, + LookUpError, FieldDoesNotExist) +from mongoengine.python_support import PY3, txt_type + +from mongoengine.base.common import get_document, ALLOW_INHERITANCE +from mongoengine.base.datastructures import ( + BaseDict, + BaseList, + EmbeddedDocumentList, + StrictDict, + SemiStrictDict +) +from mongoengine.base.fields import ComplexBaseField + +__all__ = ('BaseDocument', 'NON_FIELD_ERRORS') + +NON_FIELD_ERRORS = '__all__' + + +class BaseDocument(object): + __slots__ = ('_changed_fields', '_initialised', '_created', '_data', + '_dynamic_fields', '_auto_id_field', '_db_field_map', '__weakref__') + + _dynamic = False + _dynamic_lock = True + STRICT = False + + def __init__(self, *args, **values): + """ + Initialise a document or embedded document + + :param __auto_convert: Try and will cast python objects to Object types + :param values: A dictionary of values for the document + """ + self._initialised = False + self._created = True + if args: + # Combine positional arguments with named arguments. + # We only want named arguments. + field = iter(self._fields_ordered) + # If its an automatic id field then skip to the first defined field + if self._auto_id_field: + next(field) + for value in args: + name = next(field) + if name in values: + raise TypeError( + "Multiple values for keyword argument '" + name + "'") + values[name] = value + + __auto_convert = values.pop("__auto_convert", True) + + # 399: set default values only to fields loaded from DB + __only_fields = set(values.pop("__only_fields", values)) + + _created = values.pop("_created", True) + + signals.pre_init.send(self.__class__, document=self, values=values) + + # Check if there are undefined fields supplied, if so raise an + # Exception. + if not self._dynamic: + for var in values.keys(): + if var not in self._fields.keys() + ['id', 'pk', '_cls', '_text_score']: + msg = ( + "The field '{0}' does not exist on the document '{1}'" + ).format(var, self._class_name) + raise FieldDoesNotExist(msg) + + if self.STRICT and not self._dynamic: + self._data = StrictDict.create(allowed_keys=self._fields_ordered)() + else: + self._data = SemiStrictDict.create( + allowed_keys=self._fields_ordered)() + + self._data = {} + self._dynamic_fields = SON() + + # Assign default values to instance + for key, field in self._fields.iteritems(): + if self._db_field_map.get(key, key) in __only_fields: + continue + value = getattr(self, key, None) + setattr(self, key, value) + + if "_cls" not in values: + self._cls = self._class_name + + # Set passed values after initialisation + if self._dynamic: + dynamic_data = {} + for key, value in values.iteritems(): + if key in self._fields or key == '_id': + setattr(self, key, value) + elif self._dynamic: + dynamic_data[key] = value + else: + FileField = _import_class('FileField') + for key, value in values.iteritems(): + if key == '__auto_convert': + continue + key = self._reverse_db_field_map.get(key, key) + if key in self._fields or key in ('id', 'pk', '_cls'): + if __auto_convert and value is not None: + field = self._fields.get(key) + if field and not isinstance(field, FileField): + value = field.to_python(value) + setattr(self, key, value) + else: + self._data[key] = value + + # Set any get_fieldname_display methods + self.__set_field_display() + + if self._dynamic: + self._dynamic_lock = False + for key, value in dynamic_data.iteritems(): + setattr(self, key, value) + + # Flag initialised + self._initialised = True + self._created = _created + signals.post_init.send(self.__class__, document=self) + + def __delattr__(self, *args, **kwargs): + """Handle deletions of fields""" + field_name = args[0] + if field_name in self._fields: + default = self._fields[field_name].default + if callable(default): + default = default() + setattr(self, field_name, default) + else: + super(BaseDocument, self).__delattr__(*args, **kwargs) + + def __setattr__(self, name, value): + # Handle dynamic data only if an initialised dynamic document + if self._dynamic and not self._dynamic_lock: + + field = None + if not hasattr(self, name) and not name.startswith('_'): + DynamicField = _import_class("DynamicField") + field = DynamicField(db_field=name) + field.name = name + self._dynamic_fields[name] = field + self._fields_ordered += (name,) + + if not name.startswith('_'): + value = self.__expand_dynamic_values(name, value) + + # Handle marking data as changed + if name in self._dynamic_fields: + self._data[name] = value + if hasattr(self, '_changed_fields'): + self._mark_as_changed(name) + try: + self__created = self._created + except AttributeError: + self__created = True + + if (self._is_document and not self__created and + name in self._meta.get('shard_key', tuple()) and + self._data.get(name) != value): + OperationError = _import_class('OperationError') + msg = "Shard Keys are immutable. Tried to update %s" % name + raise OperationError(msg) + + try: + self__initialised = self._initialised + except AttributeError: + self__initialised = False + # Check if the user has created a new instance of a class + if (self._is_document and self__initialised + and self__created and name == self._meta['id_field']): + super(BaseDocument, self).__setattr__('_created', False) + + super(BaseDocument, self).__setattr__(name, value) + + def __getstate__(self): + data = {} + for k in ('_changed_fields', '_initialised', '_created', + '_dynamic_fields', '_fields_ordered'): + if hasattr(self, k): + data[k] = getattr(self, k) + data['_data'] = self.to_mongo() + return data + + def __setstate__(self, data): + if isinstance(data["_data"], SON): + data["_data"] = self.__class__._from_son(data["_data"])._data + for k in ('_changed_fields', '_initialised', '_created', '_data', + '_dynamic_fields'): + if k in data: + setattr(self, k, data[k]) + if '_fields_ordered' in data: + setattr(type(self), '_fields_ordered', data['_fields_ordered']) + dynamic_fields = data.get('_dynamic_fields') or SON() + for k in dynamic_fields.keys(): + setattr(self, k, data["_data"].get(k)) + + def __iter__(self): + return iter(self._fields_ordered) + + def __getitem__(self, name): + """Dictionary-style field access, return a field's value if present. + """ + try: + if name in self._fields_ordered: + return getattr(self, name) + except AttributeError: + pass + raise KeyError(name) + + def __setitem__(self, name, value): + """Dictionary-style field access, set a field's value. + """ + # Ensure that the field exists before settings its value + if not self._dynamic and name not in self._fields: + raise KeyError(name) + return setattr(self, name, value) + + def __contains__(self, name): + try: + val = getattr(self, name) + return val is not None + except AttributeError: + return False + + def __len__(self): + return len(self._data) + + def __repr__(self): + try: + u = self.__str__() + except (UnicodeEncodeError, UnicodeDecodeError): + u = '[Bad Unicode data]' + repr_type = str if u is None else type(u) + return repr_type('<%s: %s>' % (self.__class__.__name__, u)) + + def __str__(self): + if hasattr(self, '__unicode__'): + if PY3: + return self.__unicode__() + else: + return unicode(self).encode('utf-8') + return txt_type('%s object' % self.__class__.__name__) + + def __eq__(self, other): + if isinstance(other, self.__class__) and hasattr(other, 'id') and other.id is not None: + return self.id == other.id + if isinstance(other, DBRef): + return self._get_collection_name() == other.collection and self.id == other.id + if self.id is None: + return self is other + return False + + def __ne__(self, other): + return not self.__eq__(other) + + def __hash__(self): + if getattr(self, 'pk', None) is None: + # For new object + return super(BaseDocument, self).__hash__() + else: + return hash(self.pk) + + def clean(self): + """ + Hook for doing document level data cleaning before validation is run. + + Any ValidationError raised by this method will not be associated with + a particular field; it will have a special-case association with the + field defined by NON_FIELD_ERRORS. + """ + pass + + def get_text_score(self): + """ + Get text score from text query + """ + + if '_text_score' not in self._data: + raise InvalidDocumentError('This document is not originally built from a text query') + + return self._data['_text_score'] + + def to_mongo(self, use_db_field=True, fields=None): + """ + Return as SON data ready for use with MongoDB. + """ + if not fields: + fields = [] + + data = SON() + data["_id"] = None + data['_cls'] = self._class_name + EmbeddedDocumentField = _import_class("EmbeddedDocumentField") + # only root fields ['test1.a', 'test2'] => ['test1', 'test2'] + root_fields = set([f.split('.')[0] for f in fields]) + + for field_name in self: + if root_fields and field_name not in root_fields: + continue + + value = self._data.get(field_name, None) + field = self._fields.get(field_name) + + if field is None and self._dynamic: + field = self._dynamic_fields.get(field_name) + + if value is not None: + + if isinstance(field, (EmbeddedDocumentField)): + if fields: + key = '%s.' % field_name + embedded_fields = [ + i.replace(key, '') for i in fields + if i.startswith(key)] + + else: + embedded_fields = [] + + value = field.to_mongo(value, use_db_field=use_db_field, + fields=embedded_fields) + else: + value = field.to_mongo(value) + + # Handle self generating fields + if value is None and field._auto_gen: + value = field.generate() + self._data[field_name] = value + + if value is not None: + if use_db_field: + data[field.db_field] = value + else: + data[field.name] = value + + # If "_id" has not been set, then try and set it + Document = _import_class("Document") + if isinstance(self, Document): + if data["_id"] is None: + data["_id"] = self._data.get("id", None) + + if data['_id'] is None: + data.pop('_id') + + # Only add _cls if allow_inheritance is True + if (not hasattr(self, '_meta') or + not self._meta.get('allow_inheritance', ALLOW_INHERITANCE)): + data.pop('_cls') + + return data + + def validate(self, clean=True): + """Ensure that all fields' values are valid and that required fields + are present. + """ + # Ensure that each field is matched to a valid value + errors = {} + if clean: + try: + self.clean() + except ValidationError, error: + errors[NON_FIELD_ERRORS] = error + + # Get a list of tuples of field names and their current values + fields = [(self._fields.get(name, self._dynamic_fields.get(name)), + self._data.get(name)) for name in self._fields_ordered] + + EmbeddedDocumentField = _import_class("EmbeddedDocumentField") + GenericEmbeddedDocumentField = _import_class( + "GenericEmbeddedDocumentField") + + for field, value in fields: + if value is not None: + try: + if isinstance(field, (EmbeddedDocumentField, + GenericEmbeddedDocumentField)): + field._validate(value, clean=clean) + else: + field._validate(value) + except ValidationError, error: + errors[field.name] = error.errors or error + except (ValueError, AttributeError, AssertionError), error: + errors[field.name] = error + elif field.required and not getattr(field, '_auto_gen', False): + errors[field.name] = ValidationError('Field is required', + field_name=field.name) + + if errors: + pk = "None" + if hasattr(self, 'pk'): + pk = self.pk + elif self._instance and hasattr(self._instance, 'pk'): + pk = self._instance.pk + message = "ValidationError (%s:%s) " % (self._class_name, pk) + raise ValidationError(message, errors=errors) + + def to_json(self, *args, **kwargs): + """Converts a document to JSON. + :param use_db_field: Set to True by default but enables the output of the json structure with the field names and not the mongodb store db_names in case of set to False + """ + use_db_field = kwargs.pop('use_db_field', True) + return json_util.dumps(self.to_mongo(use_db_field), *args, **kwargs) + + @classmethod + def from_json(cls, json_data, created=False): + """Converts json data to an unsaved document instance""" + return cls._from_son(json_util.loads(json_data), created=created) + + def __expand_dynamic_values(self, name, value): + """expand any dynamic values to their correct types / values""" + if not isinstance(value, (dict, list, tuple)): + return value + + EmbeddedDocumentListField = _import_class('EmbeddedDocumentListField') + + is_list = False + if not hasattr(value, 'items'): + is_list = True + value = dict([(k, v) for k, v in enumerate(value)]) + + if not is_list and '_cls' in value: + cls = get_document(value['_cls']) + return cls(**value) + + data = {} + for k, v in value.items(): + key = name if is_list else k + data[k] = self.__expand_dynamic_values(key, v) + + if is_list: # Convert back to a list + data_items = sorted(data.items(), key=operator.itemgetter(0)) + value = [v for k, v in data_items] + else: + value = data + + # Convert lists / values so we can watch for any changes on them + if (isinstance(value, (list, tuple)) and + not isinstance(value, BaseList)): + if issubclass(type(self), EmbeddedDocumentListField): + value = EmbeddedDocumentList(value, self, name) + else: + value = BaseList(value, self, name) + elif isinstance(value, dict) and not isinstance(value, BaseDict): + value = BaseDict(value, self, name) + + return value + + def _mark_as_changed(self, key): + """Marks a key as explicitly changed by the user + """ + if not key: + return + + if not hasattr(self, '_changed_fields'): + return + + if '.' in key: + key, rest = key.split('.', 1) + key = self._db_field_map.get(key, key) + key = '%s.%s' % (key, rest) + else: + key = self._db_field_map.get(key, key) + + if key not in self._changed_fields: + self._changed_fields.append(key) + + def _clear_changed_fields(self): + """Using get_changed_fields iterate and remove any fields that are + marked as changed""" + for changed in self._get_changed_fields(): + parts = changed.split(".") + data = self + for part in parts: + if isinstance(data, list): + try: + data = data[int(part)] + except IndexError: + data = None + elif isinstance(data, dict): + data = data.get(part, None) + else: + data = getattr(data, part, None) + if hasattr(data, "_changed_fields"): + if hasattr(data, "_is_document") and data._is_document: + continue + data._changed_fields = [] + self._changed_fields = [] + + def _nestable_types_changed_fields(self, changed_fields, key, data, inspected): + # Loop list / dict fields as they contain documents + # Determine the iterator to use + if not hasattr(data, 'items'): + iterator = enumerate(data) + else: + iterator = data.iteritems() + + for index, value in iterator: + list_key = "%s%s." % (key, index) + # don't check anything lower if this key is already marked + # as changed. + if list_key[:-1] in changed_fields: + continue + if hasattr(value, '_get_changed_fields'): + changed = value._get_changed_fields(inspected) + changed_fields += ["%s%s" % (list_key, k) + for k in changed if k] + elif isinstance(value, (list, tuple, dict)): + self._nestable_types_changed_fields( + changed_fields, list_key, value, inspected) + + def _get_changed_fields(self, inspected=None): + """Returns a list of all fields that have explicitly been changed. + """ + EmbeddedDocument = _import_class("EmbeddedDocument") + DynamicEmbeddedDocument = _import_class("DynamicEmbeddedDocument") + ReferenceField = _import_class("ReferenceField") + changed_fields = [] + changed_fields += getattr(self, '_changed_fields', []) + + inspected = inspected or set() + if hasattr(self, 'id') and isinstance(self.id, Hashable): + if self.id in inspected: + return changed_fields + inspected.add(self.id) + + for field_name in self._fields_ordered: + db_field_name = self._db_field_map.get(field_name, field_name) + key = '%s.' % db_field_name + data = self._data.get(field_name, None) + field = self._fields.get(field_name) + + if hasattr(data, 'id'): + if data.id in inspected: + continue + inspected.add(data.id) + if isinstance(field, ReferenceField): + continue + elif (isinstance(data, (EmbeddedDocument, DynamicEmbeddedDocument)) + and db_field_name not in changed_fields): + # Find all embedded fields that have been changed + changed = data._get_changed_fields(inspected) + changed_fields += ["%s%s" % (key, k) for k in changed if k] + elif (isinstance(data, (list, tuple, dict)) and + db_field_name not in changed_fields): + if (hasattr(field, 'field') and + isinstance(field.field, ReferenceField)): + continue + self._nestable_types_changed_fields( + changed_fields, key, data, inspected) + return changed_fields + + def _delta(self): + """Returns the delta (set, unset) of the changes for a document. + Gets any values that have been explicitly changed. + """ + # Handles cases where not loaded from_son but has _id + doc = self.to_mongo() + + set_fields = self._get_changed_fields() + unset_data = {} + parts = [] + if hasattr(self, '_changed_fields'): + set_data = {} + # Fetch each set item from its path + for path in set_fields: + parts = path.split('.') + d = doc + new_path = [] + for p in parts: + if isinstance(d, (ObjectId, DBRef)): + break + elif isinstance(d, list) and p.isdigit(): + try: + d = d[int(p)] + except IndexError: + d = None + elif hasattr(d, 'get'): + d = d.get(p) + new_path.append(p) + path = '.'.join(new_path) + set_data[path] = d + else: + set_data = doc + if '_id' in set_data: + del(set_data['_id']) + + # Determine if any changed items were actually unset. + for path, value in set_data.items(): + if value or isinstance(value, (numbers.Number, bool)): + continue + + # If we've set a value that ain't the default value dont unset it. + default = None + if (self._dynamic and len(parts) and parts[0] in + self._dynamic_fields): + del(set_data[path]) + unset_data[path] = 1 + continue + elif path in self._fields: + default = self._fields[path].default + else: # Perform a full lookup for lists / embedded lookups + d = self + parts = path.split('.') + db_field_name = parts.pop() + for p in parts: + if isinstance(d, list) and p.isdigit(): + d = d[int(p)] + elif (hasattr(d, '__getattribute__') and + not isinstance(d, dict)): + real_path = d._reverse_db_field_map.get(p, p) + d = getattr(d, real_path) + else: + d = d.get(p) + + if hasattr(d, '_fields'): + field_name = d._reverse_db_field_map.get(db_field_name, + db_field_name) + if field_name in d._fields: + default = d._fields.get(field_name).default + else: + default = None + + if default is not None: + if callable(default): + default = default() + + if default != value: + continue + + del(set_data[path]) + unset_data[path] = 1 + return set_data, unset_data + + @classmethod + def _get_collection_name(cls): + """Returns the collection name for this class. + """ + return cls._meta.get('collection', None) + + @classmethod + def _from_son(cls, son, _auto_dereference=True, only_fields=None, created=False): + """Create an instance of a Document (subclass) from a PyMongo SON. + """ + if not only_fields: + only_fields = [] + + # get the class name from the document, falling back to the given + # class if unavailable + class_name = son.get('_cls', cls._class_name) + data = dict(("%s" % key, value) for key, value in son.iteritems()) + + # Return correct subclass for document type + if class_name != cls._class_name: + cls = get_document(class_name) + + changed_fields = [] + errors_dict = {} + + fields = cls._fields + if not _auto_dereference: + fields = copy.copy(fields) + + for field_name, field in fields.iteritems(): + field._auto_dereference = _auto_dereference + if field.db_field in data: + value = data[field.db_field] + try: + data[field_name] = (value if value is None + else field.to_python(value)) + if field_name != field.db_field: + del data[field.db_field] + except (AttributeError, ValueError), e: + errors_dict[field_name] = e + elif field.default: + default = field.default + if callable(default): + default = default() + if isinstance(default, BaseDocument): + changed_fields.append(field_name) + elif not only_fields or field_name in only_fields: + changed_fields.append(field_name) + + if errors_dict: + errors = "\n".join(["%s - %s" % (k, v) + for k, v in errors_dict.items()]) + msg = ("Invalid data to create a `%s` instance.\n%s" + % (cls._class_name, errors)) + raise InvalidDocumentError(msg) + + if cls.STRICT: + data = dict((k, v) + for k, v in data.iteritems() if k in cls._fields) + obj = cls(__auto_convert=False, _created=created, __only_fields=only_fields, **data) + obj._changed_fields = changed_fields + if not _auto_dereference: + obj._fields = fields + + return obj + + @classmethod + def _build_index_specs(cls, meta_indexes): + """Generate and merge the full index specs + """ + + geo_indices = cls._geo_indices() + unique_indices = cls._unique_with_indexes() + index_specs = [cls._build_index_spec(spec) + for spec in meta_indexes] + + def merge_index_specs(index_specs, indices): + if not indices: + return index_specs + + spec_fields = [v['fields'] + for k, v in enumerate(index_specs)] + # Merge unique_indexes with existing specs + for k, v in enumerate(indices): + if v['fields'] in spec_fields: + index_specs[spec_fields.index(v['fields'])].update(v) + else: + index_specs.append(v) + return index_specs + + index_specs = merge_index_specs(index_specs, geo_indices) + index_specs = merge_index_specs(index_specs, unique_indices) + return index_specs + + @classmethod + def _build_index_spec(cls, spec): + """Build a PyMongo index spec from a MongoEngine index spec. + """ + if isinstance(spec, basestring): + spec = {'fields': [spec]} + elif isinstance(spec, (list, tuple)): + spec = {'fields': list(spec)} + elif isinstance(spec, dict): + spec = dict(spec) + + index_list = [] + direction = None + + # Check to see if we need to include _cls + allow_inheritance = cls._meta.get('allow_inheritance', + ALLOW_INHERITANCE) + include_cls = (allow_inheritance and not spec.get('sparse', False) and + spec.get('cls', True)) + + # 733: don't include cls if index_cls is False unless there is an explicit cls with the index + include_cls = include_cls and (spec.get('cls', False) or cls._meta.get('index_cls', True)) + if "cls" in spec: + spec.pop('cls') + for key in spec['fields']: + # If inherited spec continue + if isinstance(key, (list, tuple)): + continue + + # ASCENDING from + + # DESCENDING from - + # GEO2D from * + # TEXT from $ + direction = pymongo.ASCENDING + if key.startswith("-"): + direction = pymongo.DESCENDING + elif key.startswith("*"): + direction = pymongo.GEO2D + elif key.startswith("$"): + direction = pymongo.TEXT + if key.startswith(("+", "-", "*", "$")): + key = key[1:] + + # Use real field name, do it manually because we need field + # objects for the next part (list field checking) + parts = key.split('.') + if parts in (['pk'], ['id'], ['_id']): + key = '_id' + fields = [] + else: + fields = cls._lookup_field(parts) + parts = [] + for field in fields: + try: + if field != "_id": + field = field.db_field + except AttributeError: + pass + parts.append(field) + key = '.'.join(parts) + index_list.append((key, direction)) + + # Don't add cls to a geo index + if include_cls and direction is not pymongo.GEO2D: + index_list.insert(0, ('_cls', 1)) + + if index_list: + spec['fields'] = index_list + if spec.get('sparse', False) and len(spec['fields']) > 1: + raise ValueError( + 'Sparse indexes can only have one field in them. ' + 'See https://jira.mongodb.org/browse/SERVER-2193') + + return spec + + @classmethod + def _unique_with_indexes(cls, namespace=""): + """ + Find and set unique indexes + """ + unique_indexes = [] + for field_name, field in cls._fields.items(): + sparse = field.sparse + # Generate a list of indexes needed by uniqueness constraints + if field.unique: + unique_fields = [field.db_field] + + # Add any unique_with fields to the back of the index spec + if field.unique_with: + if isinstance(field.unique_with, basestring): + field.unique_with = [field.unique_with] + + # Convert unique_with field names to real field names + unique_with = [] + for other_name in field.unique_with: + parts = other_name.split('.') + # Lookup real name + parts = cls._lookup_field(parts) + name_parts = [part.db_field for part in parts] + unique_with.append('.'.join(name_parts)) + # Unique field should be required + parts[-1].required = True + sparse = (not sparse and + parts[-1].name not in cls.__dict__) + unique_fields += unique_with + + # Add the new index to the list + fields = [("%s%s" % (namespace, f), pymongo.ASCENDING) + for f in unique_fields] + index = {'fields': fields, 'unique': True, 'sparse': sparse} + unique_indexes.append(index) + + if field.__class__.__name__ == "ListField": + field = field.field + + # Grab any embedded document field unique indexes + if (field.__class__.__name__ == "EmbeddedDocumentField" and + field.document_type != cls): + field_namespace = "%s." % field_name + doc_cls = field.document_type + unique_indexes += doc_cls._unique_with_indexes(field_namespace) + + return unique_indexes + + @classmethod + def _geo_indices(cls, inspected=None, parent_field=None): + inspected = inspected or [] + geo_indices = [] + inspected.append(cls) + + geo_field_type_names = ["EmbeddedDocumentField", "GeoPointField", + "PointField", "LineStringField", "PolygonField"] + + geo_field_types = tuple([_import_class(field) + for field in geo_field_type_names]) + + for field in cls._fields.values(): + if not isinstance(field, geo_field_types): + continue + if hasattr(field, 'document_type'): + field_cls = field.document_type + if field_cls in inspected: + continue + if hasattr(field_cls, '_geo_indices'): + geo_indices += field_cls._geo_indices( + inspected, parent_field=field.db_field) + elif field._geo_index: + field_name = field.db_field + if parent_field: + field_name = "%s.%s" % (parent_field, field_name) + geo_indices.append({'fields': + [(field_name, field._geo_index)]}) + return geo_indices + + @classmethod + def _lookup_field(cls, parts): + """Lookup a field based on its attribute and return a list containing + the field's parents and the field. + """ + + ListField = _import_class("ListField") + + if not isinstance(parts, (list, tuple)): + parts = [parts] + fields = [] + field = None + + for field_name in parts: + # Handle ListField indexing: + if field_name.isdigit() and isinstance(field, ListField): + new_field = field.field + fields.append(field_name) + continue + + if field is None: + # Look up first field from the document + if field_name == 'pk': + # Deal with "primary key" alias + field_name = cls._meta['id_field'] + if field_name in cls._fields: + field = cls._fields[field_name] + elif cls._dynamic: + DynamicField = _import_class('DynamicField') + field = DynamicField(db_field=field_name) + elif cls._meta.get("allow_inheritance", False) or cls._meta.get("abstract", False): + # 744: in case the field is defined in a subclass + field = None + for subcls in cls.__subclasses__(): + try: + field = subcls._lookup_field([field_name])[0] + except LookUpError: + continue + + if field is not None: + break + else: + raise LookUpError('Cannot resolve field "%s"' % field_name) + else: + raise LookUpError('Cannot resolve field "%s"' + % field_name) + else: + ReferenceField = _import_class('ReferenceField') + GenericReferenceField = _import_class('GenericReferenceField') + if isinstance(field, (ReferenceField, GenericReferenceField)): + raise LookUpError('Cannot perform join in mongoDB: %s' % + '__'.join(parts)) + if hasattr(getattr(field, 'field', None), 'lookup_member'): + new_field = field.field.lookup_member(field_name) + else: + # Look up subfield on the previous field + new_field = field.lookup_member(field_name) + if not new_field and isinstance(field, ComplexBaseField): + if hasattr(field.field, 'document_type') and cls._dynamic \ + and field.field.document_type._dynamic: + DynamicField = _import_class('DynamicField') + new_field = DynamicField(db_field=field_name) + else: + fields.append(field_name) + continue + elif not new_field and hasattr(field, 'document_type') and cls._dynamic \ + and field.document_type._dynamic: + DynamicField = _import_class('DynamicField') + new_field = DynamicField(db_field=field_name) + elif not new_field: + raise LookUpError('Cannot resolve field "%s"' + % field_name) + field = new_field # update field to the new field type + fields.append(field) + return fields + + @classmethod + def _translate_field_name(cls, field, sep='.'): + """Translate a field attribute name to a database field name. + """ + parts = field.split(sep) + parts = [f.db_field for f in cls._lookup_field(parts)] + return '.'.join(parts) + + def __set_field_display(self): + """Dynamically set the display value for a field with choices""" + for attr_name, field in self._fields.items(): + if field.choices: + if self._dynamic: + obj = self + else: + obj = type(self) + setattr(obj, + 'get_%s_display' % attr_name, + partial(self.__get_field_display, field=field)) + + def __get_field_display(self, field): + """Returns the display value for a choice field""" + value = getattr(self, field.name) + if field.choices and isinstance(field.choices[0], (list, tuple)): + return dict(field.choices).get(value, value) + return value diff --git a/awx/lib/site-packages/mongoengine/base/fields.py b/awx/lib/site-packages/mongoengine/base/fields.py new file mode 100644 index 0000000000..aa16804e61 --- /dev/null +++ b/awx/lib/site-packages/mongoengine/base/fields.py @@ -0,0 +1,596 @@ +import operator +import warnings +import weakref + +from bson import DBRef, ObjectId, SON +import pymongo + +from mongoengine.common import _import_class +from mongoengine.errors import ValidationError + +from mongoengine.base.common import ALLOW_INHERITANCE +from mongoengine.base.datastructures import ( + BaseDict, BaseList, EmbeddedDocumentList +) + +__all__ = ("BaseField", "ComplexBaseField", + "ObjectIdField", "GeoJsonBaseField") + + +class BaseField(object): + + """A base class for fields in a MongoDB document. Instances of this class + may be added to subclasses of `Document` to define a document's schema. + + .. versionchanged:: 0.5 - added verbose and help text + """ + + name = None + _geo_index = False + _auto_gen = False # Call `generate` to generate a value + _auto_dereference = True + + # These track each time a Field instance is created. Used to retain order. + # The auto_creation_counter is used for fields that MongoEngine implicitly + # creates, creation_counter is used for all user-specified fields. + creation_counter = 0 + auto_creation_counter = -1 + + def __init__(self, db_field=None, name=None, required=False, default=None, + unique=False, unique_with=None, primary_key=False, + validation=None, choices=None, verbose_name=None, + help_text=None, null=False, sparse=False): + """ + :param db_field: The database field to store this field in + (defaults to the name of the field) + :param name: Depreciated - use db_field + :param required: If the field is required. Whether it has to have a + value or not. Defaults to False. + :param default: (optional) The default value for this field if no value + has been set (or if the value has been unset). It can be a + callable. + :param unique: Is the field value unique or not. Defaults to False. + :param unique_with: (optional) The other field this field should be + unique with. + :param primary_key: Mark this field as the primary key. Defaults to False. + :param validation: (optional) A callable to validate the value of the + field. Generally this is deprecated in favour of the + `FIELD.validate` method + :param choices: (optional) The valid choices + :param verbose_name: (optional) The verbose name for the field. + Designed to be human readable and is often used when generating + model forms from the document model. + :param help_text: (optional) The help text for this field and is often + used when generating model forms from the document model. + :param null: (optional) Is the field value can be null. If no and there is a default value + then the default value is set + :param sparse: (optional) `sparse=True` combined with `unique=True` and `required=False` + means that uniqueness won't be enforced for `None` values + """ + self.db_field = (db_field or name) if not primary_key else '_id' + + if name: + msg = "Fields' 'name' attribute deprecated in favour of 'db_field'" + warnings.warn(msg, DeprecationWarning) + self.required = required or primary_key + self.default = default + self.unique = bool(unique or unique_with) + self.unique_with = unique_with + self.primary_key = primary_key + self.validation = validation + self.choices = choices + self.verbose_name = verbose_name + self.help_text = help_text + self.null = null + self.sparse = sparse + + # Adjust the appropriate creation counter, and save our local copy. + if self.db_field == '_id': + self.creation_counter = BaseField.auto_creation_counter + BaseField.auto_creation_counter -= 1 + else: + self.creation_counter = BaseField.creation_counter + BaseField.creation_counter += 1 + + def __get__(self, instance, owner): + """Descriptor for retrieving a value from a field in a document. + """ + if instance is None: + # Document class being used rather than a document object + return self + + # Get value from document instance if available + return instance._data.get(self.name) + + def __set__(self, instance, value): + """Descriptor for assigning a value to a field in a document. + """ + + # If setting to None and theres a default + # Then set the value to the default value + if value is None: + if self.null: + value = None + elif self.default is not None: + value = self.default + if callable(value): + value = value() + + if instance._initialised: + try: + if (self.name not in instance._data or + instance._data[self.name] != value): + instance._mark_as_changed(self.name) + except: + # Values cant be compared eg: naive and tz datetimes + # So mark it as changed + instance._mark_as_changed(self.name) + + EmbeddedDocument = _import_class('EmbeddedDocument') + if isinstance(value, EmbeddedDocument): + value._instance = weakref.proxy(instance) + instance._data[self.name] = value + + def error(self, message="", errors=None, field_name=None): + """Raises a ValidationError. + """ + field_name = field_name if field_name else self.name + raise ValidationError(message, errors=errors, field_name=field_name) + + def to_python(self, value): + """Convert a MongoDB-compatible type to a Python type. + """ + return value + + def to_mongo(self, value): + """Convert a Python type to a MongoDB-compatible type. + """ + return self.to_python(value) + + def prepare_query_value(self, op, value): + """Prepare a value that is being used in a query for PyMongo. + """ + return value + + def validate(self, value, clean=True): + """Perform validation on a value. + """ + pass + + def _validate(self, value, **kwargs): + Document = _import_class('Document') + EmbeddedDocument = _import_class('EmbeddedDocument') + + # Check the Choices Constraint + if self.choices: + + choice_list = self.choices + if isinstance(self.choices[0], (list, tuple)): + choice_list = [k for k, v in self.choices] + + # Choices which are other types of Documents + if isinstance(value, (Document, EmbeddedDocument)): + if not any(isinstance(value, c) for c in choice_list): + self.error( + 'Value must be instance of %s' % unicode(choice_list) + ) + # Choices which are types other than Documents + elif value not in choice_list: + self.error('Value must be one of %s' % unicode(choice_list)) + + # check validation argument + if self.validation is not None: + if callable(self.validation): + if not self.validation(value): + self.error('Value does not match custom validation method') + else: + raise ValueError('validation argument for "%s" must be a ' + 'callable.' % self.name) + + self.validate(value, **kwargs) + + +class ComplexBaseField(BaseField): + + """Handles complex fields, such as lists / dictionaries. + + Allows for nesting of embedded documents inside complex types. + Handles the lazy dereferencing of a queryset by lazily dereferencing all + items in a list / dict rather than one at a time. + + .. versionadded:: 0.5 + """ + + field = None + + def __get__(self, instance, owner): + """Descriptor to automatically dereference references. + """ + if instance is None: + # Document class being used rather than a document object + return self + + ReferenceField = _import_class('ReferenceField') + GenericReferenceField = _import_class('GenericReferenceField') + EmbeddedDocumentListField = _import_class('EmbeddedDocumentListField') + dereference = (self._auto_dereference and + (self.field is None or isinstance(self.field, + (GenericReferenceField, ReferenceField)))) + + _dereference = _import_class("DeReference")() + + self._auto_dereference = instance._fields[self.name]._auto_dereference + if instance._initialised and dereference and instance._data.get(self.name): + instance._data[self.name] = _dereference( + instance._data.get(self.name), max_depth=1, instance=instance, + name=self.name + ) + + value = super(ComplexBaseField, self).__get__(instance, owner) + + # Convert lists / values so we can watch for any changes on them + if isinstance(value, (list, tuple)): + if (issubclass(type(self), EmbeddedDocumentListField) and + not isinstance(value, EmbeddedDocumentList)): + value = EmbeddedDocumentList(value, instance, self.name) + elif not isinstance(value, BaseList): + value = BaseList(value, instance, self.name) + instance._data[self.name] = value + elif isinstance(value, dict) and not isinstance(value, BaseDict): + value = BaseDict(value, instance, self.name) + instance._data[self.name] = value + + if (self._auto_dereference and instance._initialised and + isinstance(value, (BaseList, BaseDict)) + and not value._dereferenced): + value = _dereference( + value, max_depth=1, instance=instance, name=self.name + ) + value._dereferenced = True + instance._data[self.name] = value + + return value + + def to_python(self, value): + """Convert a MongoDB-compatible type to a Python type. + """ + Document = _import_class('Document') + + if isinstance(value, basestring): + return value + + if hasattr(value, 'to_python'): + return value.to_python() + + is_list = False + if not hasattr(value, 'items'): + try: + is_list = True + value = dict([(k, v) for k, v in enumerate(value)]) + except TypeError: # Not iterable return the value + return value + + if self.field: + value_dict = dict([(key, self.field.to_python(item)) + for key, item in value.items()]) + else: + value_dict = {} + for k, v in value.items(): + if isinstance(v, Document): + # We need the id from the saved object to create the DBRef + if v.pk is None: + self.error('You can only reference documents once they' + ' have been saved to the database') + collection = v._get_collection_name() + value_dict[k] = DBRef(collection, v.pk) + elif hasattr(v, 'to_python'): + value_dict[k] = v.to_python() + else: + value_dict[k] = self.to_python(v) + + if is_list: # Convert back to a list + return [v for k, v in sorted(value_dict.items(), + key=operator.itemgetter(0))] + return value_dict + + def to_mongo(self, value): + """Convert a Python type to a MongoDB-compatible type. + """ + Document = _import_class("Document") + EmbeddedDocument = _import_class("EmbeddedDocument") + GenericReferenceField = _import_class("GenericReferenceField") + + if isinstance(value, basestring): + return value + + if hasattr(value, 'to_mongo'): + if isinstance(value, Document): + return GenericReferenceField().to_mongo(value) + cls = value.__class__ + val = value.to_mongo() + # If we its a document thats not inherited add _cls + if (isinstance(value, EmbeddedDocument)): + val['_cls'] = cls.__name__ + return val + + is_list = False + if not hasattr(value, 'items'): + try: + is_list = True + value = dict([(k, v) for k, v in enumerate(value)]) + except TypeError: # Not iterable return the value + return value + + if self.field: + value_dict = dict([(key, self.field.to_mongo(item)) + for key, item in value.iteritems()]) + else: + value_dict = {} + for k, v in value.iteritems(): + if isinstance(v, Document): + # We need the id from the saved object to create the DBRef + if v.pk is None: + self.error('You can only reference documents once they' + ' have been saved to the database') + + # If its a document that is not inheritable it won't have + # any _cls data so make it a generic reference allows + # us to dereference + meta = getattr(v, '_meta', {}) + allow_inheritance = ( + meta.get('allow_inheritance', ALLOW_INHERITANCE) + is True) + if not allow_inheritance and not self.field: + value_dict[k] = GenericReferenceField().to_mongo(v) + else: + collection = v._get_collection_name() + value_dict[k] = DBRef(collection, v.pk) + elif hasattr(v, 'to_mongo'): + cls = v.__class__ + val = v.to_mongo() + # If we its a document thats not inherited add _cls + if (isinstance(v, (Document, EmbeddedDocument))): + val['_cls'] = cls.__name__ + value_dict[k] = val + else: + value_dict[k] = self.to_mongo(v) + + if is_list: # Convert back to a list + return [v for k, v in sorted(value_dict.items(), + key=operator.itemgetter(0))] + return value_dict + + def validate(self, value): + """If field is provided ensure the value is valid. + """ + errors = {} + if self.field: + if hasattr(value, 'iteritems') or hasattr(value, 'items'): + sequence = value.iteritems() + else: + sequence = enumerate(value) + for k, v in sequence: + try: + self.field._validate(v) + except ValidationError, error: + errors[k] = error.errors or error + except (ValueError, AssertionError), error: + errors[k] = error + + if errors: + field_class = self.field.__class__.__name__ + self.error('Invalid %s item (%s)' % (field_class, value), + errors=errors) + # Don't allow empty values if required + if self.required and not value: + self.error('Field is required and cannot be empty') + + def prepare_query_value(self, op, value): + return self.to_mongo(value) + + def lookup_member(self, member_name): + if self.field: + return self.field.lookup_member(member_name) + return None + + def _set_owner_document(self, owner_document): + if self.field: + self.field.owner_document = owner_document + self._owner_document = owner_document + + def _get_owner_document(self, owner_document): + self._owner_document = owner_document + + owner_document = property(_get_owner_document, _set_owner_document) + + +class ObjectIdField(BaseField): + + """A field wrapper around MongoDB's ObjectIds. + """ + + def to_python(self, value): + if not isinstance(value, ObjectId): + value = ObjectId(value) + return value + + def to_mongo(self, value): + if not isinstance(value, ObjectId): + try: + return ObjectId(unicode(value)) + except Exception, e: + # e.message attribute has been deprecated since Python 2.6 + self.error(unicode(e)) + return value + + def prepare_query_value(self, op, value): + return self.to_mongo(value) + + def validate(self, value): + try: + ObjectId(unicode(value)) + except: + self.error('Invalid Object ID') + + +class GeoJsonBaseField(BaseField): + + """A geo json field storing a geojson style object. + + .. versionadded:: 0.8 + """ + + _geo_index = pymongo.GEOSPHERE + _type = "GeoBase" + + def __init__(self, auto_index=True, *args, **kwargs): + """ + :param bool auto_index: Automatically create a "2dsphere" index.\ + Defaults to `True`. + """ + self._name = "%sField" % self._type + if not auto_index: + self._geo_index = False + super(GeoJsonBaseField, self).__init__(*args, **kwargs) + + def validate(self, value): + """Validate the GeoJson object based on its type + """ + if isinstance(value, dict): + if set(value.keys()) == set(['type', 'coordinates']): + if value['type'] != self._type: + self.error('%s type must be "%s"' % + (self._name, self._type)) + return self.validate(value['coordinates']) + else: + self.error('%s can only accept a valid GeoJson dictionary' + ' or lists of (x, y)' % self._name) + return + elif not isinstance(value, (list, tuple)): + self.error('%s can only accept lists of [x, y]' % self._name) + return + + validate = getattr(self, "_validate_%s" % self._type.lower()) + error = validate(value) + if error: + self.error(error) + + def _validate_polygon(self, value, top_level=True): + if not isinstance(value, (list, tuple)): + return 'Polygons must contain list of linestrings' + + # Quick and dirty validator + try: + value[0][0][0] + except: + return "Invalid Polygon must contain at least one valid linestring" + + errors = [] + for val in value: + error = self._validate_linestring(val, False) + if not error and val[0] != val[-1]: + error = 'LineStrings must start and end at the same point' + if error and error not in errors: + errors.append(error) + if errors: + if top_level: + return "Invalid Polygon:\n%s" % ", ".join(errors) + else: + return "%s" % ", ".join(errors) + + def _validate_linestring(self, value, top_level=True): + """Validates a linestring""" + if not isinstance(value, (list, tuple)): + return 'LineStrings must contain list of coordinate pairs' + + # Quick and dirty validator + try: + value[0][0] + except: + return "Invalid LineString must contain at least one valid point" + + errors = [] + for val in value: + error = self._validate_point(val) + if error and error not in errors: + errors.append(error) + if errors: + if top_level: + return "Invalid LineString:\n%s" % ", ".join(errors) + else: + return "%s" % ", ".join(errors) + + def _validate_point(self, value): + """Validate each set of coords""" + if not isinstance(value, (list, tuple)): + return 'Points must be a list of coordinate pairs' + elif not len(value) == 2: + return "Value (%s) must be a two-dimensional point" % repr(value) + elif (not isinstance(value[0], (float, int)) or + not isinstance(value[1], (float, int))): + return "Both values (%s) in point must be float or int" % repr(value) + + def _validate_multipoint(self, value): + if not isinstance(value, (list, tuple)): + return 'MultiPoint must be a list of Point' + + # Quick and dirty validator + try: + value[0][0] + except: + return "Invalid MultiPoint must contain at least one valid point" + + errors = [] + for point in value: + error = self._validate_point(point) + if error and error not in errors: + errors.append(error) + + if errors: + return "%s" % ", ".join(errors) + + def _validate_multilinestring(self, value, top_level=True): + if not isinstance(value, (list, tuple)): + return 'MultiLineString must be a list of LineString' + + # Quick and dirty validator + try: + value[0][0][0] + except: + return "Invalid MultiLineString must contain at least one valid linestring" + + errors = [] + for linestring in value: + error = self._validate_linestring(linestring, False) + if error and error not in errors: + errors.append(error) + + if errors: + if top_level: + return "Invalid MultiLineString:\n%s" % ", ".join(errors) + else: + return "%s" % ", ".join(errors) + + def _validate_multipolygon(self, value): + if not isinstance(value, (list, tuple)): + return 'MultiPolygon must be a list of Polygon' + + # Quick and dirty validator + try: + value[0][0][0][0] + except: + return "Invalid MultiPolygon must contain at least one valid Polygon" + + errors = [] + for polygon in value: + error = self._validate_polygon(polygon, False) + if error and error not in errors: + errors.append(error) + + if errors: + return "Invalid MultiPolygon:\n%s" % ", ".join(errors) + + def to_mongo(self, value): + if isinstance(value, dict): + return value + return SON([("type", self._type), ("coordinates", value)]) diff --git a/awx/lib/site-packages/mongoengine/base/metaclasses.py b/awx/lib/site-packages/mongoengine/base/metaclasses.py new file mode 100644 index 0000000000..48da84f42c --- /dev/null +++ b/awx/lib/site-packages/mongoengine/base/metaclasses.py @@ -0,0 +1,431 @@ +import warnings + +import pymongo + +from mongoengine.common import _import_class +from mongoengine.errors import InvalidDocumentError +from mongoengine.python_support import PY3 +from mongoengine.queryset import (DO_NOTHING, DoesNotExist, + MultipleObjectsReturned, + QuerySet, QuerySetManager) + +from mongoengine.base.common import _document_registry, ALLOW_INHERITANCE +from mongoengine.base.fields import BaseField, ComplexBaseField, ObjectIdField + +__all__ = ('DocumentMetaclass', 'TopLevelDocumentMetaclass') + + +class DocumentMetaclass(type): + + """Metaclass for all documents. + """ + + def __new__(cls, name, bases, attrs): + flattened_bases = cls._get_bases(bases) + super_new = super(DocumentMetaclass, cls).__new__ + + # If a base class just call super + metaclass = attrs.get('my_metaclass') + if metaclass and issubclass(metaclass, DocumentMetaclass): + return super_new(cls, name, bases, attrs) + + attrs['_is_document'] = attrs.get('_is_document', False) + attrs['_cached_reference_fields'] = [] + + # EmbeddedDocuments could have meta data for inheritance + if 'meta' in attrs: + attrs['_meta'] = attrs.pop('meta') + + # EmbeddedDocuments should inherit meta data + if '_meta' not in attrs: + meta = MetaDict() + for base in flattened_bases[::-1]: + # Add any mixin metadata from plain objects + if hasattr(base, 'meta'): + meta.merge(base.meta) + elif hasattr(base, '_meta'): + meta.merge(base._meta) + attrs['_meta'] = meta + attrs['_meta']['abstract'] = False # 789: EmbeddedDocument shouldn't inherit abstract + + if attrs['_meta'].get('allow_inheritance', ALLOW_INHERITANCE): + StringField = _import_class('StringField') + attrs['_cls'] = StringField() + + # Handle document Fields + + # Merge all fields from subclasses + doc_fields = {} + for base in flattened_bases[::-1]: + if hasattr(base, '_fields'): + doc_fields.update(base._fields) + + # Standard object mixin - merge in any Fields + if not hasattr(base, '_meta'): + base_fields = {} + for attr_name, attr_value in base.__dict__.iteritems(): + if not isinstance(attr_value, BaseField): + continue + attr_value.name = attr_name + if not attr_value.db_field: + attr_value.db_field = attr_name + base_fields[attr_name] = attr_value + + doc_fields.update(base_fields) + + # Discover any document fields + field_names = {} + for attr_name, attr_value in attrs.iteritems(): + if not isinstance(attr_value, BaseField): + continue + attr_value.name = attr_name + if not attr_value.db_field: + attr_value.db_field = attr_name + doc_fields[attr_name] = attr_value + + # Count names to ensure no db_field redefinitions + field_names[attr_value.db_field] = field_names.get( + attr_value.db_field, 0) + 1 + + # Ensure no duplicate db_fields + duplicate_db_fields = [k for k, v in field_names.items() if v > 1] + if duplicate_db_fields: + msg = ("Multiple db_fields defined for: %s " % + ", ".join(duplicate_db_fields)) + raise InvalidDocumentError(msg) + + # Set _fields and db_field maps + attrs['_fields'] = doc_fields + attrs['_db_field_map'] = dict([(k, getattr(v, 'db_field', k)) + for k, v in doc_fields.iteritems()]) + attrs['_reverse_db_field_map'] = dict( + (v, k) for k, v in attrs['_db_field_map'].iteritems()) + + attrs['_fields_ordered'] = tuple(i[1] for i in sorted( + (v.creation_counter, v.name) + for v in doc_fields.itervalues())) + + # + # Set document hierarchy + # + superclasses = () + class_name = [name] + for base in flattened_bases: + if (not getattr(base, '_is_base_cls', True) and + not getattr(base, '_meta', {}).get('abstract', True)): + # Collate heirarchy for _cls and _subclasses + class_name.append(base.__name__) + + if hasattr(base, '_meta'): + # Warn if allow_inheritance isn't set and prevent + # inheritance of classes where inheritance is set to False + allow_inheritance = base._meta.get('allow_inheritance', + ALLOW_INHERITANCE) + if (allow_inheritance is not True and + not base._meta.get('abstract')): + raise ValueError('Document %s may not be subclassed' % + base.__name__) + + # Get superclasses from last base superclass + document_bases = [b for b in flattened_bases + if hasattr(b, '_class_name')] + if document_bases: + superclasses = document_bases[0]._superclasses + superclasses += (document_bases[0]._class_name, ) + + _cls = '.'.join(reversed(class_name)) + attrs['_class_name'] = _cls + attrs['_superclasses'] = superclasses + attrs['_subclasses'] = (_cls, ) + attrs['_types'] = attrs['_subclasses'] # TODO depreciate _types + + # Create the new_class + new_class = super_new(cls, name, bases, attrs) + + # Set _subclasses + for base in document_bases: + if _cls not in base._subclasses: + base._subclasses += (_cls,) + base._types = base._subclasses # TODO depreciate _types + + (Document, EmbeddedDocument, DictField, + CachedReferenceField) = cls._import_classes() + + if issubclass(new_class, Document): + new_class._collection = None + + # Add class to the _document_registry + _document_registry[new_class._class_name] = new_class + + # In Python 2, User-defined methods objects have special read-only + # attributes 'im_func' and 'im_self' which contain the function obj + # and class instance object respectively. With Python 3 these special + # attributes have been replaced by __func__ and __self__. The Blinker + # module continues to use im_func and im_self, so the code below + # copies __func__ into im_func and __self__ into im_self for + # classmethod objects in Document derived classes. + if PY3: + for key, val in new_class.__dict__.items(): + if isinstance(val, classmethod): + f = val.__get__(new_class) + if hasattr(f, '__func__') and not hasattr(f, 'im_func'): + f.__dict__.update({'im_func': getattr(f, '__func__')}) + if hasattr(f, '__self__') and not hasattr(f, 'im_self'): + f.__dict__.update({'im_self': getattr(f, '__self__')}) + + # Handle delete rules + for field in new_class._fields.itervalues(): + f = field + f.owner_document = new_class + delete_rule = getattr(f, 'reverse_delete_rule', DO_NOTHING) + if isinstance(f, CachedReferenceField): + + if issubclass(new_class, EmbeddedDocument): + raise InvalidDocumentError( + "CachedReferenceFields is not allowed in EmbeddedDocuments") + if not f.document_type: + raise InvalidDocumentError( + "Document is not avaiable to sync") + + if f.auto_sync: + f.start_listener() + + f.document_type._cached_reference_fields.append(f) + + if isinstance(f, ComplexBaseField) and hasattr(f, 'field'): + delete_rule = getattr(f.field, + 'reverse_delete_rule', + DO_NOTHING) + if isinstance(f, DictField) and delete_rule != DO_NOTHING: + msg = ("Reverse delete rules are not supported " + "for %s (field: %s)" % + (field.__class__.__name__, field.name)) + raise InvalidDocumentError(msg) + + f = field.field + + if delete_rule != DO_NOTHING: + if issubclass(new_class, EmbeddedDocument): + msg = ("Reverse delete rules are not supported for " + "EmbeddedDocuments (field: %s)" % field.name) + raise InvalidDocumentError(msg) + f.document_type.register_delete_rule(new_class, + field.name, delete_rule) + + if (field.name and hasattr(Document, field.name) and + EmbeddedDocument not in new_class.mro()): + msg = ("%s is a document method and not a valid " + "field name" % field.name) + raise InvalidDocumentError(msg) + + return new_class + + def add_to_class(self, name, value): + setattr(self, name, value) + + @classmethod + def _get_bases(cls, bases): + if isinstance(bases, BasesTuple): + return bases + seen = [] + bases = cls.__get_bases(bases) + unique_bases = (b for b in bases if not (b in seen or seen.append(b))) + return BasesTuple(unique_bases) + + @classmethod + def __get_bases(cls, bases): + for base in bases: + if base is object: + continue + yield base + for child_base in cls.__get_bases(base.__bases__): + yield child_base + + @classmethod + def _import_classes(cls): + Document = _import_class('Document') + EmbeddedDocument = _import_class('EmbeddedDocument') + DictField = _import_class('DictField') + CachedReferenceField = _import_class('CachedReferenceField') + return (Document, EmbeddedDocument, DictField, CachedReferenceField) + + +class TopLevelDocumentMetaclass(DocumentMetaclass): + + """Metaclass for top-level documents (i.e. documents that have their own + collection in the database. + """ + + def __new__(cls, name, bases, attrs): + flattened_bases = cls._get_bases(bases) + super_new = super(TopLevelDocumentMetaclass, cls).__new__ + + # Set default _meta data if base class, otherwise get user defined meta + if (attrs.get('my_metaclass') == TopLevelDocumentMetaclass): + # defaults + attrs['_meta'] = { + 'abstract': True, + 'max_documents': None, + 'max_size': None, + 'ordering': [], # default ordering applied at runtime + 'indexes': [], # indexes to be ensured at runtime + 'id_field': None, + 'index_background': False, + 'index_drop_dups': False, + 'index_opts': None, + 'delete_rules': None, + 'allow_inheritance': None, + } + attrs['_is_base_cls'] = True + attrs['_meta'].update(attrs.get('meta', {})) + else: + attrs['_meta'] = attrs.get('meta', {}) + # Explictly set abstract to false unless set + attrs['_meta']['abstract'] = attrs['_meta'].get('abstract', False) + attrs['_is_base_cls'] = False + + # Set flag marking as document class - as opposed to an object mixin + attrs['_is_document'] = True + + # Ensure queryset_class is inherited + if 'objects' in attrs: + manager = attrs['objects'] + if hasattr(manager, 'queryset_class'): + attrs['_meta']['queryset_class'] = manager.queryset_class + + # Clean up top level meta + if 'meta' in attrs: + del(attrs['meta']) + + # Find the parent document class + parent_doc_cls = [b for b in flattened_bases + if b.__class__ == TopLevelDocumentMetaclass] + parent_doc_cls = None if not parent_doc_cls else parent_doc_cls[0] + + # Prevent classes setting collection different to their parents + # If parent wasn't an abstract class + if (parent_doc_cls and 'collection' in attrs.get('_meta', {}) + and not parent_doc_cls._meta.get('abstract', True)): + msg = "Trying to set a collection on a subclass (%s)" % name + warnings.warn(msg, SyntaxWarning) + del(attrs['_meta']['collection']) + + # Ensure abstract documents have abstract bases + if attrs.get('_is_base_cls') or attrs['_meta'].get('abstract'): + if (parent_doc_cls and + not parent_doc_cls._meta.get('abstract', False)): + msg = "Abstract document cannot have non-abstract base" + raise ValueError(msg) + return super_new(cls, name, bases, attrs) + + # Merge base class metas. + # Uses a special MetaDict that handles various merging rules + meta = MetaDict() + for base in flattened_bases[::-1]: + # Add any mixin metadata from plain objects + if hasattr(base, 'meta'): + meta.merge(base.meta) + elif hasattr(base, '_meta'): + meta.merge(base._meta) + + # Set collection in the meta if its callable + if (getattr(base, '_is_document', False) and + not base._meta.get('abstract')): + collection = meta.get('collection', None) + if callable(collection): + meta['collection'] = collection(base) + + meta.merge(attrs.get('_meta', {})) # Top level meta + + # Only simple classes (direct subclasses of Document) + # may set allow_inheritance to False + simple_class = all([b._meta.get('abstract') + for b in flattened_bases if hasattr(b, '_meta')]) + if (not simple_class and meta['allow_inheritance'] is False and + not meta['abstract']): + raise ValueError('Only direct subclasses of Document may set ' + '"allow_inheritance" to False') + + # Set default collection name + if 'collection' not in meta: + meta['collection'] = ''.join('_%s' % c if c.isupper() else c + for c in name).strip('_').lower() + attrs['_meta'] = meta + + # Call super and get the new class + new_class = super_new(cls, name, bases, attrs) + + meta = new_class._meta + + # Set index specifications + meta['index_specs'] = new_class._build_index_specs(meta['indexes']) + + # If collection is a callable - call it and set the value + collection = meta.get('collection') + if callable(collection): + new_class._meta['collection'] = collection(new_class) + + # Provide a default queryset unless exists or one has been set + if 'objects' not in dir(new_class): + new_class.objects = QuerySetManager() + + # Validate the fields and set primary key if needed + for field_name, field in new_class._fields.iteritems(): + if field.primary_key: + # Ensure only one primary key is set + current_pk = new_class._meta.get('id_field') + if current_pk and current_pk != field_name: + raise ValueError('Cannot override primary key field') + + # Set primary key + if not current_pk: + new_class._meta['id_field'] = field_name + new_class.id = field + + # Set primary key if not defined by the document + new_class._auto_id_field = getattr(parent_doc_cls, + '_auto_id_field', False) + if not new_class._meta.get('id_field'): + new_class._auto_id_field = True + new_class._meta['id_field'] = 'id' + new_class._fields['id'] = ObjectIdField(db_field='_id') + new_class._fields['id'].name = 'id' + new_class.id = new_class._fields['id'] + + # Prepend id field to _fields_ordered + if 'id' in new_class._fields and 'id' not in new_class._fields_ordered: + new_class._fields_ordered = ('id', ) + new_class._fields_ordered + + # Merge in exceptions with parent hierarchy + exceptions_to_merge = (DoesNotExist, MultipleObjectsReturned) + module = attrs.get('__module__') + for exc in exceptions_to_merge: + name = exc.__name__ + parents = tuple(getattr(base, name) for base in flattened_bases + if hasattr(base, name)) or (exc,) + # Create new exception and set to new_class + exception = type(name, parents, {'__module__': module}) + setattr(new_class, name, exception) + + return new_class + + +class MetaDict(dict): + + """Custom dictionary for meta classes. + Handles the merging of set indexes + """ + _merge_options = ('indexes',) + + def merge(self, new_options): + for k, v in new_options.iteritems(): + if k in self._merge_options: + self[k] = self.get(k, []) + v + else: + self[k] = v + + +class BasesTuple(tuple): + + """Special class to handle introspection of bases tuple in __new__""" + pass diff --git a/awx/lib/site-packages/mongoengine/common.py b/awx/lib/site-packages/mongoengine/common.py new file mode 100644 index 0000000000..3e63e98ee8 --- /dev/null +++ b/awx/lib/site-packages/mongoengine/common.py @@ -0,0 +1,55 @@ +_class_registry_cache = {} +_field_list_cache = [] + + +def _import_class(cls_name): + """Cache mechanism for imports. + + Due to complications of circular imports mongoengine needs to do lots of + inline imports in functions. This is inefficient as classes are + imported repeated throughout the mongoengine code. This is + compounded by some recursive functions requiring inline imports. + + :mod:`mongoengine.common` provides a single point to import all these + classes. Circular imports aren't an issue as it dynamically imports the + class when first needed. Subsequent calls to the + :func:`~mongoengine.common._import_class` can then directly retrieve the + class from the :data:`mongoengine.common._class_registry_cache`. + """ + if cls_name in _class_registry_cache: + return _class_registry_cache.get(cls_name) + + doc_classes = ('Document', 'DynamicEmbeddedDocument', 'EmbeddedDocument', + 'MapReduceDocument') + + # Field Classes + if not _field_list_cache: + from mongoengine.fields import __all__ as fields + _field_list_cache.extend(fields) + from mongoengine.base.fields import __all__ as fields + _field_list_cache.extend(fields) + + field_classes = _field_list_cache + + queryset_classes = ('OperationError',) + deref_classes = ('DeReference',) + + if cls_name in doc_classes: + from mongoengine import document as module + import_classes = doc_classes + 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) + + for cls in import_classes: + _class_registry_cache[cls] = getattr(module, cls) + + return _class_registry_cache.get(cls_name) diff --git a/awx/lib/site-packages/mongoengine/connection.py b/awx/lib/site-packages/mongoengine/connection.py new file mode 100644 index 0000000000..dcecdd9ad2 --- /dev/null +++ b/awx/lib/site-packages/mongoengine/connection.py @@ -0,0 +1,169 @@ +import pymongo +from pymongo import MongoClient, MongoReplicaSetClient, uri_parser + + +__all__ = ['ConnectionError', 'connect', 'register_connection', + 'DEFAULT_CONNECTION_NAME'] + + +DEFAULT_CONNECTION_NAME = 'default' + + +class ConnectionError(Exception): + pass + + +_connection_settings = {} +_connections = {} +_dbs = {} + + +def register_connection(alias, name=None, host=None, port=None, + read_preference=False, + username=None, password=None, authentication_source=None, + **kwargs): + """Add a connection. + + :param alias: the name that will be used to refer to this connection + throughout MongoEngine + :param name: the name of the specific database to use + :param host: the host name of the :program:`mongod` instance to connect to + :param port: the port that the :program:`mongod` instance is running on + :param read_preference: The read preference for the collection + ** Added pymongo 2.1 + :param username: username to authenticate with + :param password: password to authenticate with + :param authentication_source: database to authenticate against + :param kwargs: allow ad-hoc parameters to be passed into the pymongo driver + + """ + global _connection_settings + + conn_settings = { + 'name': name or 'test', + 'host': host or 'localhost', + 'port': port or 27017, + 'read_preference': read_preference, + 'username': username, + 'password': password, + 'authentication_source': authentication_source + } + + # Handle uri style connections + if "://" in conn_settings['host']: + uri_dict = uri_parser.parse_uri(conn_settings['host']) + conn_settings.update({ + 'name': uri_dict.get('database') or name, + 'username': uri_dict.get('username'), + 'password': uri_dict.get('password'), + 'read_preference': read_preference, + }) + if "replicaSet" in conn_settings['host']: + conn_settings['replicaSet'] = True + + # Deprecated parameters that should not be passed on + kwargs.pop('slaves', None) + kwargs.pop('is_slave', None) + + conn_settings.update(kwargs) + _connection_settings[alias] = conn_settings + + +def disconnect(alias=DEFAULT_CONNECTION_NAME): + global _connections + global _dbs + + if alias in _connections: + get_connection(alias=alias).disconnect() + del _connections[alias] + if alias in _dbs: + del _dbs[alias] + + +def get_connection(alias=DEFAULT_CONNECTION_NAME, reconnect=False): + global _connections + # Connect to the database if not already connected + if reconnect: + disconnect(alias) + + if alias not in _connections: + if alias not in _connection_settings: + msg = 'Connection with alias "%s" has not been defined' % alias + if alias == DEFAULT_CONNECTION_NAME: + msg = 'You have not defined a default connection' + raise ConnectionError(msg) + conn_settings = _connection_settings[alias].copy() + + conn_settings.pop('name', None) + conn_settings.pop('username', None) + conn_settings.pop('password', None) + conn_settings.pop('authentication_source', None) + + connection_class = MongoClient + if 'replicaSet' in conn_settings: + conn_settings['hosts_or_uri'] = conn_settings.pop('host', None) + # Discard port since it can't be used on MongoReplicaSetClient + conn_settings.pop('port', None) + # Discard replicaSet if not base string + if not isinstance(conn_settings['replicaSet'], basestring): + conn_settings.pop('replicaSet', None) + connection_class = MongoReplicaSetClient + + try: + connection = None + # check for shared connections + connection_settings_iterator = ((db_alias, settings.copy()) for db_alias, settings in _connection_settings.iteritems()) + for db_alias, connection_settings in connection_settings_iterator: + connection_settings.pop('name', None) + connection_settings.pop('username', None) + connection_settings.pop('password', None) + if conn_settings == connection_settings and _connections.get(db_alias, None): + connection = _connections[db_alias] + break + + _connections[alias] = connection if connection else connection_class(**conn_settings) + except Exception, e: + raise ConnectionError("Cannot connect to database %s :\n%s" % (alias, e)) + return _connections[alias] + + +def get_db(alias=DEFAULT_CONNECTION_NAME, reconnect=False): + global _dbs + if reconnect: + disconnect(alias) + + if alias not in _dbs: + conn = get_connection(alias) + conn_settings = _connection_settings[alias] + db = conn[conn_settings['name']] + # Authenticate if necessary + if conn_settings['username'] and conn_settings['password']: + db.authenticate(conn_settings['username'], + conn_settings['password'], + source=conn_settings['authentication_source']) + _dbs[alias] = db + return _dbs[alias] + + +def connect(db=None, alias=DEFAULT_CONNECTION_NAME, **kwargs): + """Connect to the database specified by the 'db' argument. + + Connection settings may be provided here as well if the database is not + running on the default port on localhost. If authentication is needed, + provide username and password arguments as well. + + Multiple databases are supported by using aliases. Provide a separate + `alias` to connect to a different instance of :program:`mongod`. + + .. versionchanged:: 0.6 - added multiple database support. + """ + global _connections + if alias not in _connections: + register_connection(alias, db, **kwargs) + + return get_connection(alias) + + +# Support old naming convention +_get_connection = get_connection +_get_db = get_db diff --git a/awx/lib/site-packages/mongoengine/context_managers.py b/awx/lib/site-packages/mongoengine/context_managers.py new file mode 100644 index 0000000000..cc86006600 --- /dev/null +++ b/awx/lib/site-packages/mongoengine/context_managers.py @@ -0,0 +1,221 @@ +from mongoengine.common import _import_class +from mongoengine.connection import DEFAULT_CONNECTION_NAME, get_db + + +__all__ = ("switch_db", "switch_collection", "no_dereference", + "no_sub_classes", "query_counter") + + +class switch_db(object): + """ switch_db alias context manager. + + Example :: + + # Register connections + register_connection('default', 'mongoenginetest') + register_connection('testdb-1', 'mongoenginetest2') + + class Group(Document): + name = StringField() + + Group(name="test").save() # Saves in the default db + + with switch_db(Group, 'testdb-1') as Group: + Group(name="hello testdb!").save() # Saves in testdb-1 + + """ + + def __init__(self, cls, db_alias): + """ Construct the switch_db context manager + + :param cls: the class to change the registered db + :param db_alias: the name of the specific database to use + """ + self.cls = cls + self.collection = cls._get_collection() + self.db_alias = db_alias + self.ori_db_alias = cls._meta.get("db_alias", DEFAULT_CONNECTION_NAME) + + def __enter__(self): + """ change the db_alias and clear the cached collection """ + self.cls._meta["db_alias"] = self.db_alias + self.cls._collection = None + return self.cls + + def __exit__(self, t, value, traceback): + """ Reset the db_alias and collection """ + self.cls._meta["db_alias"] = self.ori_db_alias + self.cls._collection = self.collection + + +class switch_collection(object): + """ switch_collection alias context manager. + + Example :: + + class Group(Document): + name = StringField() + + Group(name="test").save() # Saves in the default db + + with switch_collection(Group, 'group1') as Group: + Group(name="hello testdb!").save() # Saves in group1 collection + + """ + + def __init__(self, cls, collection_name): + """ Construct the switch_collection context manager + + :param cls: the class to change the registered db + :param collection_name: the name of the collection to use + """ + self.cls = cls + self.ori_collection = cls._get_collection() + self.ori_get_collection_name = cls._get_collection_name + self.collection_name = collection_name + + def __enter__(self): + """ change the _get_collection_name and clear the cached collection """ + + @classmethod + def _get_collection_name(cls): + return self.collection_name + + self.cls._get_collection_name = _get_collection_name + self.cls._collection = None + return self.cls + + def __exit__(self, t, value, traceback): + """ Reset the collection """ + self.cls._collection = self.ori_collection + self.cls._get_collection_name = self.ori_get_collection_name + + +class no_dereference(object): + """ no_dereference context manager. + + Turns off all dereferencing in Documents for the duration of the context + manager:: + + with no_dereference(Group) as Group: + Group.objects.find() + + """ + + def __init__(self, cls): + """ Construct the no_dereference context manager. + + :param cls: the class to turn dereferencing off on + """ + self.cls = cls + + ReferenceField = _import_class('ReferenceField') + GenericReferenceField = _import_class('GenericReferenceField') + ComplexBaseField = _import_class('ComplexBaseField') + + self.deref_fields = [k for k, v in self.cls._fields.iteritems() + if isinstance(v, (ReferenceField, + GenericReferenceField, + ComplexBaseField))] + + def __enter__(self): + """ change the objects default and _auto_dereference values""" + for field in self.deref_fields: + self.cls._fields[field]._auto_dereference = False + return self.cls + + def __exit__(self, t, value, traceback): + """ Reset the default and _auto_dereference values""" + for field in self.deref_fields: + self.cls._fields[field]._auto_dereference = True + return self.cls + + +class no_sub_classes(object): + """ no_sub_classes context manager. + + Only returns instances of this class and no sub (inherited) classes:: + + with no_sub_classes(Group) as Group: + Group.objects.find() + + """ + + def __init__(self, cls): + """ Construct the no_sub_classes context manager. + + :param cls: the class to turn querying sub classes on + """ + self.cls = cls + + def __enter__(self): + """ change the objects default and _auto_dereference values""" + self.cls._all_subclasses = self.cls._subclasses + self.cls._subclasses = (self.cls,) + return self.cls + + def __exit__(self, t, value, traceback): + """ Reset the default and _auto_dereference values""" + self.cls._subclasses = self.cls._all_subclasses + delattr(self.cls, '_all_subclasses') + return self.cls + + +class query_counter(object): + """ Query_counter context manager to get the number of queries. """ + + def __init__(self): + """ Construct the query_counter. """ + self.counter = 0 + self.db = get_db() + + def __enter__(self): + """ On every with block we need to drop the profile collection. """ + self.db.set_profiling_level(0) + self.db.system.profile.drop() + self.db.set_profiling_level(2) + return self + + def __exit__(self, t, value, traceback): + """ Reset the profiling level. """ + self.db.set_profiling_level(0) + + def __eq__(self, value): + """ == Compare querycounter. """ + counter = self._get_count() + return value == counter + + def __ne__(self, value): + """ != Compare querycounter. """ + return not self.__eq__(value) + + def __lt__(self, value): + """ < Compare querycounter. """ + return self._get_count() < value + + def __le__(self, value): + """ <= Compare querycounter. """ + return self._get_count() <= value + + def __gt__(self, value): + """ > Compare querycounter. """ + return self._get_count() > value + + def __ge__(self, value): + """ >= Compare querycounter. """ + return self._get_count() >= value + + def __int__(self): + """ int representation. """ + return self._get_count() + + def __repr__(self): + """ repr query_counter as the number of queries. """ + return u"%s" % self._get_count() + + def _get_count(self): + """ Get the number of queries. """ + ignore_query = {"ns": {"$ne": "%s.system.indexes" % self.db.name}} + count = self.db.system.profile.find(ignore_query).count() - self.counter + self.counter += 1 + return count diff --git a/awx/lib/site-packages/mongoengine/dereference.py b/awx/lib/site-packages/mongoengine/dereference.py new file mode 100644 index 0000000000..415d56782f --- /dev/null +++ b/awx/lib/site-packages/mongoengine/dereference.py @@ -0,0 +1,237 @@ +from bson import DBRef, SON + +from base import ( + BaseDict, BaseList, EmbeddedDocumentList, + TopLevelDocumentMetaclass, get_document +) +from fields import (ReferenceField, ListField, DictField, MapField) +from connection import get_db +from queryset import QuerySet +from document import Document, EmbeddedDocument + + +class DeReference(object): + + def __call__(self, items, max_depth=1, instance=None, name=None): + """ + Cheaply dereferences the items to a set depth. + Also handles the conversion of complex data types. + + :param items: The iterable (dict, list, queryset) to be dereferenced. + :param max_depth: The maximum depth to recurse to + :param instance: The owning instance used for tracking changes by + :class:`~mongoengine.base.ComplexBaseField` + :param name: The name of the field, used for tracking changes by + :class:`~mongoengine.base.ComplexBaseField` + :param get: A boolean determining if being called by __get__ + """ + if items is None or isinstance(items, basestring): + return items + + # cheapest way to convert a queryset to a list + # list(queryset) uses a count() query to determine length + if isinstance(items, QuerySet): + items = [i for i in items] + + self.max_depth = max_depth + doc_type = None + + if instance and isinstance(instance, (Document, EmbeddedDocument, + TopLevelDocumentMetaclass)): + doc_type = instance._fields.get(name) + while hasattr(doc_type, 'field'): + doc_type = doc_type.field + + if isinstance(doc_type, ReferenceField): + field = doc_type + doc_type = doc_type.document_type + is_list = not hasattr(items, 'items') + + if is_list and all([i.__class__ == doc_type for i in items]): + return items + elif not is_list and all([i.__class__ == doc_type + for i in items.values()]): + return items + elif not field.dbref: + if not hasattr(items, 'items'): + + def _get_items(items): + new_items = [] + for v in items: + if isinstance(v, list): + new_items.append(_get_items(v)) + elif not isinstance(v, (DBRef, Document)): + new_items.append(field.to_python(v)) + else: + new_items.append(v) + return new_items + + items = _get_items(items) + else: + items = dict([ + (k, field.to_python(v)) + if not isinstance(v, (DBRef, Document)) else (k, v) + for k, v in items.iteritems()] + ) + + self.reference_map = self._find_references(items) + self.object_map = self._fetch_objects(doc_type=doc_type) + return self._attach_objects(items, 0, instance, name) + + def _find_references(self, items, depth=0): + """ + Recursively finds all db references to be dereferenced + + :param items: The iterable (dict, list, queryset) + :param depth: The current depth of recursion + """ + reference_map = {} + if not items or depth >= self.max_depth: + return reference_map + + # Determine the iterator to use + if not hasattr(items, 'items'): + iterator = enumerate(items) + else: + iterator = items.iteritems() + + # Recursively find dbreferences + depth += 1 + for k, item in iterator: + if isinstance(item, (Document, EmbeddedDocument)): + for field_name, field in item._fields.iteritems(): + v = item._data.get(field_name, None) + if isinstance(v, (DBRef)): + reference_map.setdefault(field.document_type, []).append(v.id) + elif isinstance(v, (dict, SON)) and '_ref' in v: + reference_map.setdefault(get_document(v['_cls']), []).append(v['_ref'].id) + elif isinstance(v, (dict, list, tuple)) and depth <= self.max_depth: + field_cls = getattr(getattr(field, 'field', None), 'document_type', None) + references = self._find_references(v, depth) + for key, refs in references.iteritems(): + if isinstance(field_cls, (Document, TopLevelDocumentMetaclass)): + key = field_cls + reference_map.setdefault(key, []).extend(refs) + elif isinstance(item, (DBRef)): + reference_map.setdefault(item.collection, []).append(item.id) + elif isinstance(item, (dict, SON)) and '_ref' in item: + reference_map.setdefault(get_document(item['_cls']), []).append(item['_ref'].id) + elif isinstance(item, (dict, list, tuple)) and depth - 1 <= self.max_depth: + references = self._find_references(item, depth - 1) + for key, refs in references.iteritems(): + reference_map.setdefault(key, []).extend(refs) + + return reference_map + + def _fetch_objects(self, doc_type=None): + """Fetch all references and convert to their document objects + """ + object_map = {} + for collection, dbrefs in self.reference_map.iteritems(): + keys = object_map.keys() + refs = list(set([dbref for dbref in dbrefs if unicode(dbref).encode('utf-8') not in keys])) + if hasattr(collection, 'objects'): # We have a document class for the refs + references = collection.objects.in_bulk(refs) + for key, doc in references.iteritems(): + object_map[key] = doc + else: # Generic reference: use the refs data to convert to document + if isinstance(doc_type, (ListField, DictField, MapField,)): + continue + + if doc_type: + references = doc_type._get_db()[collection].find({'_id': {'$in': refs}}) + for ref in references: + doc = doc_type._from_son(ref) + object_map[doc.id] = doc + else: + references = get_db()[collection].find({'_id': {'$in': refs}}) + for ref in references: + if '_cls' in ref: + doc = get_document(ref["_cls"])._from_son(ref) + elif doc_type is None: + doc = get_document( + ''.join(x.capitalize() + for x in collection.split('_')))._from_son(ref) + else: + doc = doc_type._from_son(ref) + object_map[doc.id] = doc + return object_map + + def _attach_objects(self, items, depth=0, instance=None, name=None): + """ + Recursively finds all db references to be dereferenced + + :param items: The iterable (dict, list, queryset) + :param depth: The current depth of recursion + :param instance: The owning instance used for tracking changes by + :class:`~mongoengine.base.ComplexBaseField` + :param name: The name of the field, used for tracking changes by + :class:`~mongoengine.base.ComplexBaseField` + """ + if not items: + if isinstance(items, (BaseDict, BaseList)): + return items + + if instance: + if isinstance(items, dict): + return BaseDict(items, instance, name) + else: + return BaseList(items, instance, name) + + if isinstance(items, (dict, SON)): + if '_ref' in items: + return self.object_map.get(items['_ref'].id, items) + elif '_cls' in items: + doc = get_document(items['_cls'])._from_son(items) + _cls = doc._data.pop('_cls', None) + del items['_cls'] + doc._data = self._attach_objects(doc._data, depth, doc, None) + if _cls is not None: + doc._data['_cls'] = _cls + return doc + + if not hasattr(items, 'items'): + is_list = True + list_type = BaseList + if isinstance(items, EmbeddedDocumentList): + list_type = EmbeddedDocumentList + as_tuple = isinstance(items, tuple) + iterator = enumerate(items) + data = [] + else: + is_list = False + iterator = items.iteritems() + data = {} + + depth += 1 + for k, v in iterator: + if is_list: + data.append(v) + else: + data[k] = v + + if k in self.object_map and not is_list: + data[k] = self.object_map[k] + elif isinstance(v, (Document, EmbeddedDocument)): + for field_name, field in v._fields.iteritems(): + v = data[k]._data.get(field_name, None) + if isinstance(v, (DBRef)): + data[k]._data[field_name] = self.object_map.get(v.id, v) + elif isinstance(v, (dict, SON)) and '_ref' in v: + data[k]._data[field_name] = self.object_map.get(v['_ref'].id, v) + elif isinstance(v, dict) and depth <= self.max_depth: + data[k]._data[field_name] = self._attach_objects(v, depth, instance=instance, name=name) + elif isinstance(v, (list, tuple)) and depth <= self.max_depth: + data[k]._data[field_name] = self._attach_objects(v, depth, instance=instance, name=name) + elif isinstance(v, (dict, list, tuple)) and depth <= self.max_depth: + item_name = '%s.%s' % (name, k) if name else name + data[k] = self._attach_objects(v, depth - 1, instance=instance, name=item_name) + elif hasattr(v, 'id'): + data[k] = self.object_map.get(v.id, v) + + if instance and name: + if is_list: + return tuple(data) if as_tuple else list_type(data, instance, name) + return BaseDict(data, instance, name) + depth += 1 + return data diff --git a/awx/lib/site-packages/mongoengine/django/__init__.py b/awx/lib/site-packages/mongoengine/django/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/awx/lib/site-packages/mongoengine/django/auth.py b/awx/lib/site-packages/mongoengine/django/auth.py new file mode 100644 index 0000000000..0a309c4cd8 --- /dev/null +++ b/awx/lib/site-packages/mongoengine/django/auth.py @@ -0,0 +1,412 @@ +from mongoengine import * + +from django.utils.encoding import smart_str +from django.contrib.auth.models import _user_has_perm, _user_get_all_permissions, _user_has_module_perms +from django.db import models +from django.contrib.contenttypes.models import ContentTypeManager +from django.contrib import auth +from django.contrib.auth.models import AnonymousUser +from django.utils.translation import ugettext_lazy as _ + +from .utils import datetime_now + +REDIRECT_FIELD_NAME = 'next' + +try: + from django.contrib.auth.hashers import check_password, make_password +except ImportError: + """Handle older versions of Django""" + from django.utils.hashcompat import md5_constructor, sha_constructor + + def get_hexdigest(algorithm, salt, raw_password): + raw_password, salt = smart_str(raw_password), smart_str(salt) + if algorithm == 'md5': + return md5_constructor(salt + raw_password).hexdigest() + elif algorithm == 'sha1': + return sha_constructor(salt + raw_password).hexdigest() + raise ValueError('Got unknown password algorithm type in password') + + def check_password(raw_password, password): + algo, salt, hash = password.split('$') + return hash == get_hexdigest(algo, salt, raw_password) + + def make_password(raw_password): + from random import random + algo = 'sha1' + salt = get_hexdigest(algo, str(random()), str(random()))[:5] + hash = get_hexdigest(algo, salt, raw_password) + return '%s$%s$%s' % (algo, salt, hash) + + +class ContentType(Document): + name = StringField(max_length=100) + app_label = StringField(max_length=100) + model = StringField(max_length=100, verbose_name=_('python model class name'), + unique_with='app_label') + objects = ContentTypeManager() + + class Meta: + verbose_name = _('content type') + verbose_name_plural = _('content types') + # db_table = 'django_content_type' + # ordering = ('name',) + # unique_together = (('app_label', 'model'),) + + def __unicode__(self): + return self.name + + def model_class(self): + "Returns the Python model class for this type of content." + from django.db import models + return models.get_model(self.app_label, self.model) + + def get_object_for_this_type(self, **kwargs): + """ + Returns an object of this type for the keyword arguments given. + Basically, this is a proxy around this object_type's get_object() model + method. The ObjectNotExist exception, if thrown, will not be caught, + so code that calls this method should catch it. + """ + return self.model_class()._default_manager.using(self._state.db).get(**kwargs) + + def natural_key(self): + return (self.app_label, self.model) + + +class SiteProfileNotAvailable(Exception): + pass + + +class PermissionManager(models.Manager): + def get_by_natural_key(self, codename, app_label, model): + return self.get( + codename=codename, + content_type=ContentType.objects.get_by_natural_key(app_label, model) + ) + + +class Permission(Document): + """The permissions system provides a way to assign permissions to specific + users and groups of users. + + The permission system is used by the Django admin site, but may also be + useful in your own code. The Django admin site uses permissions as follows: + + - The "add" permission limits the user's ability to view the "add" + form and add an object. + - The "change" permission limits a user's ability to view the change + list, view the "change" form and change an object. + - The "delete" permission limits the ability to delete an object. + + Permissions are set globally per type of object, not per specific object + instance. It is possible to say "Mary may change news stories," but it's + not currently possible to say "Mary may change news stories, but only the + ones she created herself" or "Mary may only change news stories that have + a certain status or publication date." + + Three basic permissions -- add, change and delete -- are automatically + created for each Django model. + """ + name = StringField(max_length=50, verbose_name=_('username')) + content_type = ReferenceField(ContentType) + codename = StringField(max_length=100, verbose_name=_('codename')) + # FIXME: don't access field of the other class + # unique_with=['content_type__app_label', 'content_type__model']) + + objects = PermissionManager() + + class Meta: + verbose_name = _('permission') + verbose_name_plural = _('permissions') + # unique_together = (('content_type', 'codename'),) + # ordering = ('content_type__app_label', 'content_type__model', 'codename') + + def __unicode__(self): + return u"%s | %s | %s" % ( + unicode(self.content_type.app_label), + unicode(self.content_type), + unicode(self.name)) + + def natural_key(self): + return (self.codename,) + self.content_type.natural_key() + natural_key.dependencies = ['contenttypes.contenttype'] + + +class Group(Document): + """Groups are a generic way of categorizing users to apply permissions, + or some other label, to those users. A user can belong to any number of + groups. + + A user in a group automatically has all the permissions granted to that + group. For example, if the group Site editors has the permission + can_edit_home_page, any user in that group will have that permission. + + Beyond permissions, groups are a convenient way to categorize users to + apply some label, or extended functionality, to them. For example, you + could create a group 'Special users', and you could write code that would + do special things to those users -- such as giving them access to a + members-only portion of your site, or sending them members-only + e-mail messages. + """ + name = StringField(max_length=80, unique=True, verbose_name=_('name')) + permissions = ListField(ReferenceField(Permission, verbose_name=_('permissions'), required=False)) + + class Meta: + verbose_name = _('group') + verbose_name_plural = _('groups') + + def __unicode__(self): + return self.name + + +class UserManager(models.Manager): + def create_user(self, username, email, password=None): + """ + Creates and saves a User with the given username, e-mail and password. + """ + now = datetime_now() + + # Normalize the address by lowercasing the domain part of the email + # address. + try: + email_name, domain_part = email.strip().split('@', 1) + except ValueError: + pass + else: + email = '@'.join([email_name, domain_part.lower()]) + + user = self.model(username=username, email=email, is_staff=False, + is_active=True, is_superuser=False, last_login=now, + date_joined=now) + + user.set_password(password) + user.save(using=self._db) + return user + + def create_superuser(self, username, email, password): + u = self.create_user(username, email, password) + u.is_staff = True + u.is_active = True + u.is_superuser = True + u.save(using=self._db) + return u + + def make_random_password(self, length=10, allowed_chars='abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789'): + "Generates a random password with the given length and given allowed_chars" + # Note that default value of allowed_chars does not have "I" or letters + # that look like it -- just to avoid confusion. + from random import choice + return ''.join([choice(allowed_chars) for i in range(length)]) + + +class User(Document): + """A User document that aims to mirror most of the API specified by Django + at http://docs.djangoproject.com/en/dev/topics/auth/#users + """ + username = StringField(max_length=30, required=True, + verbose_name=_('username'), + help_text=_("Required. 30 characters or fewer. Letters, numbers and @/./+/-/_ characters")) + + first_name = StringField(max_length=30, + verbose_name=_('first name')) + + last_name = StringField(max_length=30, + verbose_name=_('last name')) + email = EmailField(verbose_name=_('e-mail address')) + password = StringField(max_length=128, + verbose_name=_('password'), + help_text=_("Use '[algo]$[iterations]$[salt]$[hexdigest]' or use the change password form.")) + is_staff = BooleanField(default=False, + verbose_name=_('staff status'), + help_text=_("Designates whether the user can log into this admin site.")) + is_active = BooleanField(default=True, + verbose_name=_('active'), + help_text=_("Designates whether this user should be treated as active. Unselect this instead of deleting accounts.")) + is_superuser = BooleanField(default=False, + verbose_name=_('superuser status'), + help_text=_("Designates that this user has all permissions without explicitly assigning them.")) + last_login = DateTimeField(default=datetime_now, + verbose_name=_('last login')) + date_joined = DateTimeField(default=datetime_now, + verbose_name=_('date joined')) + + user_permissions = ListField(ReferenceField(Permission), verbose_name=_('user permissions'), + help_text=_('Permissions for the user.')) + + USERNAME_FIELD = 'username' + REQUIRED_FIELDS = ['email'] + + meta = { + 'allow_inheritance': True, + 'indexes': [ + {'fields': ['username'], 'unique': True, 'sparse': True} + ] + } + + def __unicode__(self): + return self.username + + def get_full_name(self): + """Returns the users first and last names, separated by a space. + """ + full_name = u'%s %s' % (self.first_name or '', self.last_name or '') + return full_name.strip() + + def is_anonymous(self): + return False + + def is_authenticated(self): + return True + + def set_password(self, raw_password): + """Sets the user's password - always use this rather than directly + assigning to :attr:`~mongoengine.django.auth.User.password` as the + password is hashed before storage. + """ + self.password = make_password(raw_password) + self.save() + return self + + def check_password(self, raw_password): + """Checks the user's password against a provided password - always use + this rather than directly comparing to + :attr:`~mongoengine.django.auth.User.password` as the password is + hashed before storage. + """ + return check_password(raw_password, self.password) + + @classmethod + def create_user(cls, username, password, email=None): + """Create (and save) a new user with the given username, password and + email address. + """ + now = datetime_now() + + # Normalize the address by lowercasing the domain part of the email + # address. + if email is not None: + try: + email_name, domain_part = email.strip().split('@', 1) + except ValueError: + pass + else: + email = '@'.join([email_name, domain_part.lower()]) + + user = cls(username=username, email=email, date_joined=now) + user.set_password(password) + user.save() + return user + + def get_group_permissions(self, obj=None): + """ + Returns a list of permission strings that this user has through his/her + groups. This method queries all available auth backends. If an object + is passed in, only permissions matching this object are returned. + """ + permissions = set() + for backend in auth.get_backends(): + if hasattr(backend, "get_group_permissions"): + permissions.update(backend.get_group_permissions(self, obj)) + return permissions + + def get_all_permissions(self, obj=None): + return _user_get_all_permissions(self, obj) + + def has_perm(self, perm, obj=None): + """ + Returns True if the user has the specified permission. This method + queries all available auth backends, but returns immediately if any + backend returns True. Thus, a user who has permission from a single + auth backend is assumed to have permission in general. If an object is + provided, permissions for this specific object are checked. + """ + + # Active superusers have all permissions. + if self.is_active and self.is_superuser: + return True + + # Otherwise we need to check the backends. + return _user_has_perm(self, perm, obj) + + def has_module_perms(self, app_label): + """ + Returns True if the user has any permissions in the given app label. + Uses pretty much the same logic as has_perm, above. + """ + # Active superusers have all permissions. + if self.is_active and self.is_superuser: + return True + + return _user_has_module_perms(self, app_label) + + def email_user(self, subject, message, from_email=None): + "Sends an e-mail to this User." + from django.core.mail import send_mail + send_mail(subject, message, from_email, [self.email]) + + def get_profile(self): + """ + Returns site-specific profile for this user. Raises + SiteProfileNotAvailable if this site does not allow profiles. + """ + if not hasattr(self, '_profile_cache'): + from django.conf import settings + if not getattr(settings, 'AUTH_PROFILE_MODULE', False): + raise SiteProfileNotAvailable('You need to set AUTH_PROFILE_MO' + 'DULE in your project settings') + try: + app_label, model_name = settings.AUTH_PROFILE_MODULE.split('.') + except ValueError: + raise SiteProfileNotAvailable('app_label and model_name should' + ' be separated by a dot in the AUTH_PROFILE_MODULE set' + 'ting') + + try: + model = models.get_model(app_label, model_name) + if model is None: + raise SiteProfileNotAvailable('Unable to load the profile ' + 'model, check AUTH_PROFILE_MODULE in your project sett' + 'ings') + self._profile_cache = model._default_manager.using(self._state.db).get(user__id__exact=self.id) + self._profile_cache.user = self + except (ImportError, ImproperlyConfigured): + raise SiteProfileNotAvailable + return self._profile_cache + + +class MongoEngineBackend(object): + """Authenticate using MongoEngine and mongoengine.django.auth.User. + """ + + supports_object_permissions = False + supports_anonymous_user = False + supports_inactive_user = False + _user_doc = False + + def authenticate(self, username=None, password=None): + user = self.user_document.objects(username=username).first() + if user: + if password and user.check_password(password): + backend = auth.get_backends()[0] + user.backend = "%s.%s" % (backend.__module__, backend.__class__.__name__) + return user + return None + + def get_user(self, user_id): + return self.user_document.objects.with_id(user_id) + + @property + def user_document(self): + if self._user_doc is False: + from .mongo_auth.models import get_user_document + self._user_doc = get_user_document() + return self._user_doc + +def get_user(userid): + """Returns a User object from an id (User.id). Django's equivalent takes + request, but taking an id instead leaves it up to the developer to store + the id in any way they want (session, signed cookie, etc.) + """ + if not userid: + return AnonymousUser() + return MongoEngineBackend().get_user(userid) or AnonymousUser() diff --git a/awx/lib/site-packages/mongoengine/django/mongo_auth/__init__.py b/awx/lib/site-packages/mongoengine/django/mongo_auth/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/awx/lib/site-packages/mongoengine/django/mongo_auth/models.py b/awx/lib/site-packages/mongoengine/django/mongo_auth/models.py new file mode 100644 index 0000000000..ad4ceff8df --- /dev/null +++ b/awx/lib/site-packages/mongoengine/django/mongo_auth/models.py @@ -0,0 +1,119 @@ +from django.conf import settings +from django.contrib.auth.hashers import make_password +from django.contrib.auth.models import UserManager +from django.core.exceptions import ImproperlyConfigured +from django.db import models +try: + from django.utils.module_loading import import_module +except ImportError: + """Handle older versions of Django""" + from django.utils.importlib import import_module +from django.utils.translation import ugettext_lazy as _ + + +__all__ = ( + 'get_user_document', +) + + +MONGOENGINE_USER_DOCUMENT = getattr( + settings, 'MONGOENGINE_USER_DOCUMENT', 'mongoengine.django.auth.User') + + +def get_user_document(): + """Get the user document class used for authentication. + + This is the class defined in settings.MONGOENGINE_USER_DOCUMENT, which + defaults to `mongoengine.django.auth.User`. + + """ + + name = MONGOENGINE_USER_DOCUMENT + dot = name.rindex('.') + module = import_module(name[:dot]) + return getattr(module, name[dot + 1:]) + + +class MongoUserManager(UserManager): + """A User manager wich allows the use of MongoEngine documents in Django. + + To use the manager, you must tell django.contrib.auth to use MongoUser as + the user model. In you settings.py, you need: + + INSTALLED_APPS = ( + ... + 'django.contrib.auth', + 'mongoengine.django.mongo_auth', + ... + ) + AUTH_USER_MODEL = 'mongo_auth.MongoUser' + + Django will use the model object to access the custom Manager, which will + replace the original queryset with MongoEngine querysets. + + By default, mongoengine.django.auth.User will be used to store users. You + can specify another document class in MONGOENGINE_USER_DOCUMENT in your + settings.py. + + The User Document class has the same requirements as a standard custom user + model: https://docs.djangoproject.com/en/dev/topics/auth/customizing/ + + In particular, the User Document class must define USERNAME_FIELD and + REQUIRED_FIELDS. + + `AUTH_USER_MODEL` has been added in Django 1.5. + + """ + + def contribute_to_class(self, model, name): + super(MongoUserManager, self).contribute_to_class(model, name) + self.dj_model = self.model + self.model = get_user_document() + + self.dj_model.USERNAME_FIELD = self.model.USERNAME_FIELD + username = models.CharField(_('username'), max_length=30, unique=True) + username.contribute_to_class(self.dj_model, self.dj_model.USERNAME_FIELD) + + self.dj_model.REQUIRED_FIELDS = self.model.REQUIRED_FIELDS + for name in self.dj_model.REQUIRED_FIELDS: + field = models.CharField(_(name), max_length=30) + field.contribute_to_class(self.dj_model, name) + + + def get(self, *args, **kwargs): + try: + return self.get_query_set().get(*args, **kwargs) + except self.model.DoesNotExist: + # ModelBackend expects this exception + raise self.dj_model.DoesNotExist + + @property + def db(self): + raise NotImplementedError + + def get_empty_query_set(self): + return self.model.objects.none() + + def get_query_set(self): + return self.model.objects + + +class MongoUser(models.Model): + """"Dummy user model for Django. + + MongoUser is used to replace Django's UserManager with MongoUserManager. + The actual user document class is mongoengine.django.auth.User or any + other document class specified in MONGOENGINE_USER_DOCUMENT. + + To get the user document class, use `get_user_document()`. + + """ + + objects = MongoUserManager() + + class Meta: + app_label = 'mongo_auth' + + def set_password(self, password): + """Doesn't do anything, but works around the issue with Django 1.6.""" + make_password(password) diff --git a/awx/lib/site-packages/mongoengine/django/sessions.py b/awx/lib/site-packages/mongoengine/django/sessions.py new file mode 100644 index 0000000000..f260951beb --- /dev/null +++ b/awx/lib/site-packages/mongoengine/django/sessions.py @@ -0,0 +1,124 @@ +from bson import json_util +from django.conf import settings +from django.contrib.sessions.backends.base import SessionBase, CreateError +from django.core.exceptions import SuspiciousOperation +try: + from django.utils.encoding import force_unicode +except ImportError: + from django.utils.encoding import force_text as force_unicode + +from mongoengine.document import Document +from mongoengine import fields +from mongoengine.queryset import OperationError +from mongoengine.connection import DEFAULT_CONNECTION_NAME + +from .utils import datetime_now + + +MONGOENGINE_SESSION_DB_ALIAS = getattr( + settings, 'MONGOENGINE_SESSION_DB_ALIAS', + DEFAULT_CONNECTION_NAME) + +# a setting for the name of the collection used to store sessions +MONGOENGINE_SESSION_COLLECTION = getattr( + settings, 'MONGOENGINE_SESSION_COLLECTION', + 'django_session') + +# a setting for whether session data is stored encoded or not +MONGOENGINE_SESSION_DATA_ENCODE = getattr( + settings, 'MONGOENGINE_SESSION_DATA_ENCODE', + True) + + +class MongoSession(Document): + session_key = fields.StringField(primary_key=True, max_length=40) + session_data = fields.StringField() if MONGOENGINE_SESSION_DATA_ENCODE \ + else fields.DictField() + expire_date = fields.DateTimeField() + + meta = { + 'collection': MONGOENGINE_SESSION_COLLECTION, + 'db_alias': MONGOENGINE_SESSION_DB_ALIAS, + 'allow_inheritance': False, + 'indexes': [ + { + 'fields': ['expire_date'], + 'expireAfterSeconds': 0 + } + ] + } + + def get_decoded(self): + return SessionStore().decode(self.session_data) + + +class SessionStore(SessionBase): + """A MongoEngine-based session store for Django. + """ + + def _get_session(self, *args, **kwargs): + sess = super(SessionStore, self)._get_session(*args, **kwargs) + if sess.get('_auth_user_id', None): + sess['_auth_user_id'] = str(sess.get('_auth_user_id')) + return sess + + def load(self): + try: + s = MongoSession.objects(session_key=self.session_key, + expire_date__gt=datetime_now)[0] + if MONGOENGINE_SESSION_DATA_ENCODE: + return self.decode(force_unicode(s.session_data)) + else: + return s.session_data + except (IndexError, SuspiciousOperation): + self.create() + return {} + + def exists(self, session_key): + return bool(MongoSession.objects(session_key=session_key).first()) + + def create(self): + while True: + self._session_key = self._get_new_session_key() + try: + self.save(must_create=True) + except CreateError: + continue + self.modified = True + self._session_cache = {} + return + + def save(self, must_create=False): + if self.session_key is None: + self._session_key = self._get_new_session_key() + s = MongoSession(session_key=self.session_key) + if MONGOENGINE_SESSION_DATA_ENCODE: + s.session_data = self.encode(self._get_session(no_load=must_create)) + else: + s.session_data = self._get_session(no_load=must_create) + s.expire_date = self.get_expiry_date() + try: + s.save(force_insert=must_create) + except OperationError: + if must_create: + raise CreateError + raise + + def delete(self, session_key=None): + if session_key is None: + if self.session_key is None: + return + session_key = self.session_key + MongoSession.objects(session_key=session_key).delete() + + +class BSONSerializer(object): + """ + Serializer that can handle BSON types (eg ObjectId). + """ + def dumps(self, obj): + return json_util.dumps(obj, separators=(',', ':')).encode('ascii') + + def loads(self, data): + return json_util.loads(data.decode('ascii')) + diff --git a/awx/lib/site-packages/mongoengine/django/shortcuts.py b/awx/lib/site-packages/mongoengine/django/shortcuts.py new file mode 100644 index 0000000000..9cc8370b00 --- /dev/null +++ b/awx/lib/site-packages/mongoengine/django/shortcuts.py @@ -0,0 +1,47 @@ +from mongoengine.queryset import QuerySet +from mongoengine.base import BaseDocument +from mongoengine.errors import ValidationError + +def _get_queryset(cls): + """Inspired by django.shortcuts.*""" + if isinstance(cls, QuerySet): + return cls + else: + return cls.objects + +def get_document_or_404(cls, *args, **kwargs): + """ + Uses get() to return an document, or raises a Http404 exception if the document + does not exist. + + cls may be a Document or QuerySet object. All other passed + arguments and keyword arguments are used in the get() query. + + Note: Like with get(), an MultipleObjectsReturned will be raised if more than one + object is found. + + Inspired by django.shortcuts.* + """ + queryset = _get_queryset(cls) + try: + return queryset.get(*args, **kwargs) + except (queryset._document.DoesNotExist, ValidationError): + from django.http import Http404 + raise Http404('No %s matches the given query.' % queryset._document._class_name) + +def get_list_or_404(cls, *args, **kwargs): + """ + Uses filter() to return a list of documents, or raise a Http404 exception if + the list is empty. + + cls may be a Document or QuerySet object. All other passed + arguments and keyword arguments are used in the filter() query. + + Inspired by django.shortcuts.* + """ + queryset = _get_queryset(cls) + obj_list = list(queryset.filter(*args, **kwargs)) + if not obj_list: + from django.http import Http404 + raise Http404('No %s matches the given query.' % queryset._document._class_name) + return obj_list diff --git a/awx/lib/site-packages/mongoengine/django/storage.py b/awx/lib/site-packages/mongoengine/django/storage.py new file mode 100644 index 0000000000..9df6f9e80c --- /dev/null +++ b/awx/lib/site-packages/mongoengine/django/storage.py @@ -0,0 +1,112 @@ +import os +import itertools +import urlparse + +from mongoengine import * +from django.conf import settings +from django.core.files.storage import Storage +from django.core.exceptions import ImproperlyConfigured + + +class FileDocument(Document): + """A document used to store a single file in GridFS. + """ + file = FileField() + + +class GridFSStorage(Storage): + """A custom storage backend to store files in GridFS + """ + + def __init__(self, base_url=None): + + if base_url is None: + base_url = settings.MEDIA_URL + self.base_url = base_url + self.document = FileDocument + self.field = 'file' + + def delete(self, name): + """Deletes the specified file from the storage system. + """ + if self.exists(name): + doc = self.document.objects.first() + field = getattr(doc, self.field) + self._get_doc_with_name(name).delete() # Delete the FileField + field.delete() # Delete the FileDocument + + def exists(self, name): + """Returns True if a file referened by the given name already exists in the + storage system, or False if the name is available for a new file. + """ + doc = self._get_doc_with_name(name) + if doc: + field = getattr(doc, self.field) + return bool(field.name) + else: + return False + + def listdir(self, path=None): + """Lists the contents of the specified path, returning a 2-tuple of lists; + the first item being directories, the second item being files. + """ + def name(doc): + return getattr(doc, self.field).name + docs = self.document.objects + return [], [name(d) for d in docs if name(d)] + + def size(self, name): + """Returns the total size, in bytes, of the file specified by name. + """ + doc = self._get_doc_with_name(name) + if doc: + return getattr(doc, self.field).length + else: + raise ValueError("No such file or directory: '%s'" % name) + + def url(self, name): + """Returns an absolute URL where the file's contents can be accessed + directly by a web browser. + """ + if self.base_url is None: + raise ValueError("This file is not accessible via a URL.") + return urlparse.urljoin(self.base_url, name).replace('\\', '/') + + def _get_doc_with_name(self, name): + """Find the documents in the store with the given name + """ + docs = self.document.objects + doc = [d for d in docs if hasattr(getattr(d, self.field), 'name') and getattr(d, self.field).name == name] + if doc: + return doc[0] + else: + return None + + def _open(self, name, mode='rb'): + doc = self._get_doc_with_name(name) + if doc: + return getattr(doc, self.field) + else: + raise ValueError("No file found with the name '%s'." % name) + + def get_available_name(self, name): + """Returns a filename that's free on the target storage system, and + available for new content to be written to. + """ + file_root, file_ext = os.path.splitext(name) + # If the filename already exists, add an underscore and a number (before + # the file extension, if one exists) to the filename until the generated + # filename doesn't exist. + count = itertools.count(1) + while self.exists(name): + # file_ext includes the dot. + name = os.path.join("%s_%s%s" % (file_root, count.next(), file_ext)) + + return name + + def _save(self, name, content): + doc = self.document() + getattr(doc, self.field).put(content, filename=name) + doc.save() + + return name diff --git a/awx/lib/site-packages/mongoengine/django/tests.py b/awx/lib/site-packages/mongoengine/django/tests.py new file mode 100644 index 0000000000..b130acc824 --- /dev/null +++ b/awx/lib/site-packages/mongoengine/django/tests.py @@ -0,0 +1,31 @@ +#coding: utf-8 + +from unittest import TestCase + +from mongoengine import connect +from mongoengine.connection import get_db + + +class MongoTestCase(TestCase): + """ + TestCase class that clear the collection between the tests + """ + + @property + def db_name(self): + from django.conf import settings + return 'test_%s' % getattr(settings, 'MONGO_DATABASE_NAME', 'dummy') + + def __init__(self, methodName='runtest'): + connect(self.db_name) + self.db = get_db() + super(MongoTestCase, self).__init__(methodName) + + def dropCollections(self): + for collection in self.db.collection_names(): + if collection.startswith('system.'): + continue + self.db.drop_collection(collection) + + def tearDown(self): + self.dropCollections() diff --git a/awx/lib/site-packages/mongoengine/django/utils.py b/awx/lib/site-packages/mongoengine/django/utils.py new file mode 100644 index 0000000000..d3ef8a4b77 --- /dev/null +++ b/awx/lib/site-packages/mongoengine/django/utils.py @@ -0,0 +1,6 @@ +try: + # django >= 1.4 + from django.utils.timezone import now as datetime_now +except ImportError: + from datetime import datetime + datetime_now = datetime.now diff --git a/awx/lib/site-packages/mongoengine/document.py b/awx/lib/site-packages/mongoengine/document.py new file mode 100644 index 0000000000..eea5dabc1a --- /dev/null +++ b/awx/lib/site-packages/mongoengine/document.py @@ -0,0 +1,869 @@ +import warnings + +import hashlib +import pymongo +import re + +from pymongo.read_preferences import ReadPreference +from bson import ObjectId +from bson.dbref import DBRef +from mongoengine import signals +from mongoengine.common import _import_class +from mongoengine.base import ( + DocumentMetaclass, + TopLevelDocumentMetaclass, + BaseDocument, + BaseDict, + BaseList, + EmbeddedDocumentList, + ALLOW_INHERITANCE, + get_document +) +from mongoengine.errors import ValidationError, InvalidQueryError, InvalidDocumentError +from mongoengine.queryset import (OperationError, NotUniqueError, + QuerySet, transform) +from mongoengine.connection import get_db, DEFAULT_CONNECTION_NAME +from mongoengine.context_managers import switch_db, switch_collection + +__all__ = ('Document', 'EmbeddedDocument', 'DynamicDocument', + 'DynamicEmbeddedDocument', 'OperationError', + 'InvalidCollectionError', 'NotUniqueError', 'MapReduceDocument') + + +def includes_cls(fields): + """ Helper function used for ensuring and comparing indexes + """ + + first_field = None + if len(fields): + if isinstance(fields[0], basestring): + first_field = fields[0] + elif isinstance(fields[0], (list, tuple)) and len(fields[0]): + first_field = fields[0][0] + return first_field == '_cls' + + +class InvalidCollectionError(Exception): + pass + + +class EmbeddedDocument(BaseDocument): + + """A :class:`~mongoengine.Document` that isn't stored in its own + collection. :class:`~mongoengine.EmbeddedDocument`\ s should be used as + fields on :class:`~mongoengine.Document`\ s through the + :class:`~mongoengine.EmbeddedDocumentField` field type. + + A :class:`~mongoengine.EmbeddedDocument` subclass may be itself subclassed, + to create a specialised version of the embedded document that will be + stored in the same collection. To facilitate this behaviour a `_cls` + field is added to documents (hidden though the MongoEngine interface). + To disable this behaviour and remove the dependence on the presence of + `_cls` set :attr:`allow_inheritance` to ``False`` in the :attr:`meta` + dictionary. + """ + + __slots__ = ('_instance') + + # The __metaclass__ attribute is removed by 2to3 when running with Python3 + # my_metaclass is defined so that metaclass can be queried in Python 2 & 3 + my_metaclass = DocumentMetaclass + __metaclass__ = DocumentMetaclass + + def __init__(self, *args, **kwargs): + super(EmbeddedDocument, self).__init__(*args, **kwargs) + self._instance = None + self._changed_fields = [] + + def __eq__(self, other): + if isinstance(other, self.__class__): + return self._data == other._data + return False + + def __ne__(self, other): + return not self.__eq__(other) + + def save(self, *args, **kwargs): + self._instance.save(*args, **kwargs) + + def reload(self, *args, **kwargs): + self._instance.reload(*args, **kwargs) + + +class Document(BaseDocument): + + """The base class used for defining the structure and properties of + collections of documents stored in MongoDB. Inherit from this class, and + add fields as class attributes to define a document's structure. + Individual documents may then be created by making instances of the + :class:`~mongoengine.Document` subclass. + + By default, the MongoDB collection used to store documents created using a + :class:`~mongoengine.Document` subclass will be the name of the subclass + converted to lowercase. A different collection may be specified by + providing :attr:`collection` to the :attr:`meta` dictionary in the class + definition. + + A :class:`~mongoengine.Document` subclass may be itself subclassed, to + create a specialised version of the document that will be stored in the + same collection. To facilitate this behaviour a `_cls` + field is added to documents (hidden though the MongoEngine interface). + To disable this behaviour and remove the dependence on the presence of + `_cls` set :attr:`allow_inheritance` to ``False`` in the :attr:`meta` + dictionary. + + A :class:`~mongoengine.Document` may use a **Capped Collection** by + specifying :attr:`max_documents` and :attr:`max_size` in the :attr:`meta` + dictionary. :attr:`max_documents` is the maximum number of documents that + is allowed to be stored in the collection, and :attr:`max_size` is the + maximum size of the collection in bytes. If :attr:`max_size` is not + specified and :attr:`max_documents` is, :attr:`max_size` defaults to + 10000000 bytes (10MB). + + Indexes may be created by specifying :attr:`indexes` in the :attr:`meta` + dictionary. The value should be a list of field names or tuples of field + names. Index direction may be specified by prefixing the field names with + a **+** or **-** sign. + + Automatic index creation can be disabled by specifying + :attr:`auto_create_index` in the :attr:`meta` dictionary. If this is set to + False then indexes will not be created by MongoEngine. This is useful in + production systems where index creation is performed as part of a + deployment system. + + By default, _cls will be added to the start of every index (that + doesn't contain a list) if allow_inheritance is True. This can be + disabled by either setting cls to False on the specific index or + by setting index_cls to False on the meta dictionary for the document. + """ + + # The __metaclass__ attribute is removed by 2to3 when running with Python3 + # my_metaclass is defined so that metaclass can be queried in Python 2 & 3 + my_metaclass = TopLevelDocumentMetaclass + __metaclass__ = TopLevelDocumentMetaclass + + __slots__ = ('__objects') + + def pk(): + """Primary key alias + """ + + def fget(self): + return getattr(self, self._meta['id_field']) + + def fset(self, value): + return setattr(self, self._meta['id_field'], value) + return property(fget, fset) + pk = pk() + + @classmethod + def _get_db(cls): + """Some Model using other db_alias""" + return get_db(cls._meta.get("db_alias", DEFAULT_CONNECTION_NAME)) + + @classmethod + def _get_collection(cls): + """Returns the collection for the document.""" + if not hasattr(cls, '_collection') or cls._collection is None: + db = cls._get_db() + collection_name = cls._get_collection_name() + # Create collection as a capped collection if specified + if cls._meta['max_size'] or cls._meta['max_documents']: + # Get max document limit and max byte size from meta + max_size = cls._meta['max_size'] or 10000000 # 10MB default + max_documents = cls._meta['max_documents'] + + if collection_name in db.collection_names(): + cls._collection = db[collection_name] + # The collection already exists, check if its capped + # options match the specified capped options + options = cls._collection.options() + if options.get('max') != max_documents or \ + options.get('size') != max_size: + msg = (('Cannot create collection "%s" as a capped ' + 'collection as it already exists') + % cls._collection) + raise InvalidCollectionError(msg) + else: + # Create the collection as a capped collection + opts = {'capped': True, 'size': max_size} + if max_documents: + opts['max'] = max_documents + cls._collection = db.create_collection( + collection_name, **opts + ) + else: + cls._collection = db[collection_name] + if cls._meta.get('auto_create_index', True): + cls.ensure_indexes() + return cls._collection + + def modify(self, query={}, **update): + """Perform an atomic update of the document in the database and reload + the document object using updated version. + + Returns True if the document has been updated or False if the document + in the database doesn't match the query. + + .. note:: All unsaved changes that has been made to the document are + rejected if the method returns True. + + :param query: the update will be performed only if the document in the + database matches the query + :param update: Django-style update keyword arguments + """ + + if self.pk is None: + raise InvalidDocumentError("The document does not have a primary key.") + + id_field = self._meta["id_field"] + query = query.copy() if isinstance(query, dict) else query.to_query(self) + + if id_field not in query: + query[id_field] = self.pk + elif query[id_field] != self.pk: + raise InvalidQueryError("Invalid document modify query: it must modify only this document.") + + updated = self._qs(**query).modify(new=True, **update) + if updated is None: + return False + + for field in self._fields_ordered: + setattr(self, field, self._reload(field, updated[field])) + + self._changed_fields = updated._changed_fields + self._created = False + + return True + + def save(self, force_insert=False, validate=True, clean=True, + write_concern=None, cascade=None, cascade_kwargs=None, + _refs=None, save_condition=None, **kwargs): + """Save the :class:`~mongoengine.Document` to the database. If the + document already exists, it will be updated, otherwise it will be + created. + + :param force_insert: only try to create a new document, don't allow + updates of existing documents + :param validate: validates the document; set to ``False`` to skip. + :param clean: call the document clean method, requires `validate` to be + True. + :param write_concern: Extra keyword arguments are passed down to + :meth:`~pymongo.collection.Collection.save` OR + :meth:`~pymongo.collection.Collection.insert` + which will be used as options for the resultant + ``getLastError`` command. For example, + ``save(..., write_concern={w: 2, fsync: True}, ...)`` will + wait until at least two servers have recorded the write and + will force an fsync on the primary server. + :param cascade: Sets the flag for cascading saves. You can set a + default by setting "cascade" in the document __meta__ + :param cascade_kwargs: (optional) kwargs dictionary to be passed throw + to cascading saves. Implies ``cascade=True``. + :param _refs: A list of processed references used in cascading saves + :param save_condition: only perform save if matching record in db + satisfies condition(s) (e.g., version number) + + .. versionchanged:: 0.5 + In existing documents it only saves changed fields using + set / unset. Saves are cascaded and any + :class:`~bson.dbref.DBRef` objects that have changes are + saved as well. + .. versionchanged:: 0.6 + Added cascading saves + .. versionchanged:: 0.8 + Cascade saves are optional and default to False. If you want + fine grain control then you can turn off using document + meta['cascade'] = True. Also you can pass different kwargs to + the cascade save using cascade_kwargs which overwrites the + existing kwargs with custom values. + .. versionchanged:: 0.8.5 + Optional save_condition that only overwrites existing documents + if the condition is satisfied in the current db record. + """ + signals.pre_save.send(self.__class__, document=self) + + if validate: + self.validate(clean=clean) + + if write_concern is None: + write_concern = {"w": 1} + + doc = self.to_mongo() + + created = ('_id' not in doc or self._created or force_insert) + + signals.pre_save_post_validation.send(self.__class__, document=self, + created=created) + + try: + collection = self._get_collection() + if self._meta.get('auto_create_index', True): + self.ensure_indexes() + if created: + if force_insert: + object_id = collection.insert(doc, **write_concern) + else: + object_id = collection.save(doc, **write_concern) + else: + object_id = doc['_id'] + updates, removals = self._delta() + # Need to add shard key to query, or you get an error + if save_condition is not None: + select_dict = transform.query(self.__class__, + **save_condition) + else: + select_dict = {} + select_dict['_id'] = object_id + shard_key = self.__class__._meta.get('shard_key', tuple()) + for k in shard_key: + actual_key = self._db_field_map.get(k, k) + select_dict[actual_key] = doc[actual_key] + + def is_new_object(last_error): + if last_error is not None: + updated = last_error.get("updatedExisting") + if updated is not None: + return not updated + return created + + update_query = {} + + if updates: + update_query["$set"] = updates + if removals: + update_query["$unset"] = removals + if updates or removals: + upsert = save_condition is None + last_error = collection.update(select_dict, update_query, + upsert=upsert, **write_concern) + created = is_new_object(last_error) + + if cascade is None: + cascade = self._meta.get( + 'cascade', False) or cascade_kwargs is not None + + if cascade: + kwargs = { + "force_insert": force_insert, + "validate": validate, + "write_concern": write_concern, + "cascade": cascade + } + if cascade_kwargs: # Allow granular control over cascades + kwargs.update(cascade_kwargs) + kwargs['_refs'] = _refs + self.cascade_save(**kwargs) + except pymongo.errors.DuplicateKeyError, err: + message = u'Tried to save duplicate unique keys (%s)' + raise NotUniqueError(message % unicode(err)) + except pymongo.errors.OperationFailure, err: + message = 'Could not save document (%s)' + if re.match('^E1100[01] duplicate key', unicode(err)): + # E11000 - duplicate key error index + # E11001 - duplicate key on update + message = u'Tried to save duplicate unique keys (%s)' + raise NotUniqueError(message % unicode(err)) + raise OperationError(message % unicode(err)) + id_field = self._meta['id_field'] + if created or id_field not in self._meta.get('shard_key', []): + self[id_field] = self._fields[id_field].to_python(object_id) + + signals.post_save.send(self.__class__, document=self, created=created) + self._clear_changed_fields() + self._created = False + return self + + def cascade_save(self, *args, **kwargs): + """Recursively saves any references / + generic references on an objects""" + _refs = kwargs.get('_refs', []) or [] + + ReferenceField = _import_class('ReferenceField') + GenericReferenceField = _import_class('GenericReferenceField') + + for name, cls in self._fields.items(): + if not isinstance(cls, (ReferenceField, + GenericReferenceField)): + continue + + ref = self._data.get(name) + if not ref or isinstance(ref, DBRef): + continue + + if not getattr(ref, '_changed_fields', True): + continue + + ref_id = "%s,%s" % (ref.__class__.__name__, str(ref._data)) + if ref and ref_id not in _refs: + _refs.append(ref_id) + kwargs["_refs"] = _refs + ref.save(**kwargs) + ref._changed_fields = [] + + @property + def _qs(self): + """ + Returns the queryset to use for updating / reloading / deletions + """ + if not hasattr(self, '__objects'): + self.__objects = QuerySet(self, self._get_collection()) + return self.__objects + + @property + def _object_key(self): + """Dict to identify object in collection + """ + select_dict = {'pk': self.pk} + shard_key = self.__class__._meta.get('shard_key', tuple()) + for k in shard_key: + select_dict[k] = getattr(self, k) + return select_dict + + def update(self, **kwargs): + """Performs an update on the :class:`~mongoengine.Document` + A convenience wrapper to :meth:`~mongoengine.QuerySet.update`. + + Raises :class:`OperationError` if called on an object that has not yet + been saved. + """ + if not self.pk: + if kwargs.get('upsert', False): + query = self.to_mongo() + if "_cls" in query: + del(query["_cls"]) + return self._qs.filter(**query).update_one(**kwargs) + else: + raise OperationError( + 'attempt to update a document not yet saved') + + # Need to add shard key to query, or you get an error + return self._qs.filter(**self._object_key).update_one(**kwargs) + + def delete(self, **write_concern): + """Delete the :class:`~mongoengine.Document` from the database. This + will only take effect if the document has been previously saved. + + :param write_concern: Extra keyword arguments are passed down which + will be used as options for the resultant + ``getLastError`` command. For example, + ``save(..., write_concern={w: 2, fsync: True}, ...)`` will + wait until at least two servers have recorded the write and + will force an fsync on the primary server. + """ + signals.pre_delete.send(self.__class__, document=self) + + try: + self._qs.filter( + **self._object_key).delete(write_concern=write_concern, _from_doc_delete=True) + except pymongo.errors.OperationFailure, err: + message = u'Could not delete document (%s)' % err.message + raise OperationError(message) + signals.post_delete.send(self.__class__, document=self) + + def switch_db(self, db_alias): + """ + Temporarily switch the database for a document instance. + + Only really useful for archiving off data and calling `save()`:: + + user = User.objects.get(id=user_id) + user.switch_db('archive-db') + user.save() + + :param str db_alias: The database alias to use for saving the document + + .. seealso:: + Use :class:`~mongoengine.context_managers.switch_collection` + if you need to read from another collection + """ + with switch_db(self.__class__, db_alias) as cls: + collection = cls._get_collection() + db = cls._get_db() + self._get_collection = lambda: collection + self._get_db = lambda: db + self._collection = collection + self._created = True + self.__objects = self._qs + self.__objects._collection_obj = collection + return self + + def switch_collection(self, collection_name): + """ + Temporarily switch the collection for a document instance. + + Only really useful for archiving off data and calling `save()`:: + + user = User.objects.get(id=user_id) + user.switch_collection('old-users') + user.save() + + :param str collection_name: The database alias to use for saving the + document + + .. seealso:: + Use :class:`~mongoengine.context_managers.switch_db` + if you need to read from another database + """ + with switch_collection(self.__class__, collection_name) as cls: + collection = cls._get_collection() + self._get_collection = lambda: collection + self._collection = collection + self._created = True + self.__objects = self._qs + self.__objects._collection_obj = collection + return self + + def select_related(self, max_depth=1): + """Handles dereferencing of :class:`~bson.dbref.DBRef` objects to + a maximum depth in order to cut down the number queries to mongodb. + + .. versionadded:: 0.5 + """ + DeReference = _import_class('DeReference') + DeReference()([self], max_depth + 1) + return self + + def reload(self, *fields, **kwargs): + """Reloads all attributes from the database. + + :param fields: (optional) args list of fields to reload + :param max_depth: (optional) depth of dereferencing to follow + + .. versionadded:: 0.1.2 + .. versionchanged:: 0.6 Now chainable + .. versionchanged:: 0.9 Can provide specific fields to reload + """ + max_depth = 1 + if fields and isinstance(fields[0], int): + max_depth = fields[0] + fields = fields[1:] + elif "max_depth" in kwargs: + max_depth = kwargs["max_depth"] + + if not self.pk: + raise self.DoesNotExist("Document does not exist") + obj = self._qs.read_preference(ReadPreference.PRIMARY).filter( + **self._object_key).only(*fields).limit(1 + ).select_related(max_depth=max_depth) + + if obj: + obj = obj[0] + else: + raise self.DoesNotExist("Document does not exist") + + for field in self._fields_ordered: + if not fields or field in fields: + try: + setattr(self, field, self._reload(field, obj[field])) + except KeyError: + # If field is removed from the database while the object + # is in memory, a reload would cause a KeyError + # i.e. obj.update(unset__field=1) followed by obj.reload() + delattr(self, field) + + self._changed_fields = obj._changed_fields + self._created = False + return self + + def _reload(self, key, value): + """Used by :meth:`~mongoengine.Document.reload` to ensure the + correct instance is linked to self. + """ + if isinstance(value, BaseDict): + value = [(k, self._reload(k, v)) for k, v in value.items()] + value = BaseDict(value, self, key) + elif isinstance(value, EmbeddedDocumentList): + value = [self._reload(key, v) for v in value] + value = EmbeddedDocumentList(value, self, key) + elif isinstance(value, BaseList): + value = [self._reload(key, v) for v in value] + value = BaseList(value, self, key) + elif isinstance(value, (EmbeddedDocument, DynamicEmbeddedDocument)): + value._instance = None + value._changed_fields = [] + return value + + def to_dbref(self): + """Returns an instance of :class:`~bson.dbref.DBRef` useful in + `__raw__` queries.""" + if not self.pk: + msg = "Only saved documents can have a valid dbref" + raise OperationError(msg) + return DBRef(self.__class__._get_collection_name(), self.pk) + + @classmethod + def register_delete_rule(cls, document_cls, field_name, rule): + """This method registers the delete rules to apply when removing this + object. + """ + classes = [get_document(class_name) + for class_name in cls._subclasses + if class_name != cls.__name__] + [cls] + documents = [get_document(class_name) + for class_name in document_cls._subclasses + if class_name != document_cls.__name__] + [document_cls] + + for cls in classes: + for document_cls in documents: + delete_rules = cls._meta.get('delete_rules') or {} + delete_rules[(document_cls, field_name)] = rule + cls._meta['delete_rules'] = delete_rules + + @classmethod + def drop_collection(cls): + """Drops the entire collection associated with this + :class:`~mongoengine.Document` type from the database. + """ + cls._collection = None + db = cls._get_db() + db.drop_collection(cls._get_collection_name()) + + @classmethod + def ensure_index(cls, key_or_list, drop_dups=False, background=False, + **kwargs): + """Ensure that the given indexes are in place. + + :param key_or_list: a single index key or a list of index keys (to + construct a multi-field index); keys may be prefixed with a **+** + or a **-** to determine the index ordering + """ + index_spec = cls._build_index_spec(key_or_list) + index_spec = index_spec.copy() + fields = index_spec.pop('fields') + index_spec['drop_dups'] = drop_dups + index_spec['background'] = background + index_spec.update(kwargs) + + return cls._get_collection().ensure_index(fields, **index_spec) + + @classmethod + def ensure_indexes(cls): + """Checks the document meta data and ensures all the indexes exist. + + Global defaults can be set in the meta - see :doc:`guide/defining-documents` + + .. note:: You can disable automatic index creation by setting + `auto_create_index` to False in the documents meta data + """ + background = cls._meta.get('index_background', False) + drop_dups = cls._meta.get('index_drop_dups', False) + index_opts = cls._meta.get('index_opts') or {} + index_cls = cls._meta.get('index_cls', True) + + collection = cls._get_collection() + # 746: when connection is via mongos, the read preference is not necessarily an indication that + # this code runs on a secondary + if not collection.is_mongos and collection.read_preference > 1: + return + + # determine if an index which we are creating includes + # _cls as its first field; if so, we can avoid creating + # an extra index on _cls, as mongodb will use the existing + # index to service queries against _cls + cls_indexed = False + + # Ensure document-defined indexes are created + if cls._meta['index_specs']: + index_spec = cls._meta['index_specs'] + for spec in index_spec: + spec = spec.copy() + fields = spec.pop('fields') + cls_indexed = cls_indexed or includes_cls(fields) + opts = index_opts.copy() + opts.update(spec) + collection.ensure_index(fields, background=background, + drop_dups=drop_dups, **opts) + + # If _cls is being used (for polymorphism), it needs an index, + # only if another index doesn't begin with _cls + if (index_cls and not cls_indexed and + cls._meta.get('allow_inheritance', ALLOW_INHERITANCE) is True): + collection.ensure_index('_cls', background=background, + **index_opts) + + @classmethod + def list_indexes(cls, go_up=True, go_down=True): + """ Lists all of the indexes that should be created for given + collection. It includes all the indexes from super- and sub-classes. + """ + + if cls._meta.get('abstract'): + return [] + + # get all the base classes, subclasses and siblings + classes = [] + + def get_classes(cls): + + if (cls not in classes and + isinstance(cls, TopLevelDocumentMetaclass)): + classes.append(cls) + + for base_cls in cls.__bases__: + if (isinstance(base_cls, TopLevelDocumentMetaclass) and + base_cls != Document and + not base_cls._meta.get('abstract') and + base_cls._get_collection().full_name == cls._get_collection().full_name and + base_cls not in classes): + classes.append(base_cls) + get_classes(base_cls) + for subclass in cls.__subclasses__(): + if (isinstance(base_cls, TopLevelDocumentMetaclass) and + subclass._get_collection().full_name == cls._get_collection().full_name and + subclass not in classes): + classes.append(subclass) + get_classes(subclass) + + get_classes(cls) + + # get the indexes spec for all of the gathered classes + def get_indexes_spec(cls): + indexes = [] + + if cls._meta['index_specs']: + index_spec = cls._meta['index_specs'] + for spec in index_spec: + spec = spec.copy() + fields = spec.pop('fields') + indexes.append(fields) + return indexes + + indexes = [] + for cls in classes: + for index in get_indexes_spec(cls): + if index not in indexes: + indexes.append(index) + + # finish up by appending { '_id': 1 } and { '_cls': 1 }, if needed + if [(u'_id', 1)] not in indexes: + indexes.append([(u'_id', 1)]) + if (cls._meta.get('index_cls', True) and + cls._meta.get('allow_inheritance', ALLOW_INHERITANCE) is True): + indexes.append([(u'_cls', 1)]) + + return indexes + + @classmethod + def compare_indexes(cls): + """ Compares the indexes defined in MongoEngine with the ones existing + in the database. Returns any missing/extra indexes. + """ + + required = cls.list_indexes() + existing = [info['key'] + for info in cls._get_collection().index_information().values()] + missing = [index for index in required if index not in existing] + extra = [index for index in existing if index not in required] + + # if { _cls: 1 } is missing, make sure it's *really* necessary + if [(u'_cls', 1)] in missing: + cls_obsolete = False + for index in existing: + if includes_cls(index) and index not in extra: + cls_obsolete = True + break + if cls_obsolete: + missing.remove([(u'_cls', 1)]) + + return {'missing': missing, 'extra': extra} + + +class DynamicDocument(Document): + + """A Dynamic Document class allowing flexible, expandable and uncontrolled + schemas. As a :class:`~mongoengine.Document` subclass, acts in the same + way as an ordinary document but has expando style properties. Any data + passed or set against the :class:`~mongoengine.DynamicDocument` that is + not a field is automatically converted into a + :class:`~mongoengine.fields.DynamicField` and data can be attributed to that + field. + + .. note:: + + There is one caveat on Dynamic Documents: fields cannot start with `_` + """ + + # The __metaclass__ attribute is removed by 2to3 when running with Python3 + # my_metaclass is defined so that metaclass can be queried in Python 2 & 3 + my_metaclass = TopLevelDocumentMetaclass + __metaclass__ = TopLevelDocumentMetaclass + + _dynamic = True + + def __delattr__(self, *args, **kwargs): + """Deletes the attribute by setting to None and allowing _delta to unset + it""" + field_name = args[0] + if field_name in self._dynamic_fields: + setattr(self, field_name, None) + else: + super(DynamicDocument, self).__delattr__(*args, **kwargs) + + +class DynamicEmbeddedDocument(EmbeddedDocument): + + """A Dynamic Embedded Document class allowing flexible, expandable and + uncontrolled schemas. See :class:`~mongoengine.DynamicDocument` for more + information about dynamic documents. + """ + + # The __metaclass__ attribute is removed by 2to3 when running with Python3 + # my_metaclass is defined so that metaclass can be queried in Python 2 & 3 + my_metaclass = DocumentMetaclass + __metaclass__ = DocumentMetaclass + + _dynamic = True + + def __delattr__(self, *args, **kwargs): + """Deletes the attribute by setting to None and allowing _delta to unset + it""" + field_name = args[0] + if field_name in self._fields: + default = self._fields[field_name].default + if callable(default): + default = default() + setattr(self, field_name, default) + else: + setattr(self, field_name, None) + + +class MapReduceDocument(object): + + """A document returned from a map/reduce query. + + :param collection: An instance of :class:`~pymongo.Collection` + :param key: Document/result key, often an instance of + :class:`~bson.objectid.ObjectId`. If supplied as + an ``ObjectId`` found in the given ``collection``, + the object can be accessed via the ``object`` property. + :param value: The result(s) for this key. + + .. versionadded:: 0.3 + """ + + def __init__(self, document, collection, key, value): + self._document = document + self._collection = collection + self.key = key + self.value = value + + @property + def object(self): + """Lazy-load the object referenced by ``self.key``. ``self.key`` + should be the ``primary_key``. + """ + id_field = self._document()._meta['id_field'] + id_field_type = type(id_field) + + if not isinstance(self.key, id_field_type): + try: + self.key = id_field_type(self.key) + except: + raise Exception("Could not cast key as %s" % + id_field_type.__name__) + + if not hasattr(self, "_key_object"): + self._key_object = self._document.objects.with_id(self.key) + return self._key_object + return self._key_object diff --git a/awx/lib/site-packages/mongoengine/errors.py b/awx/lib/site-packages/mongoengine/errors.py new file mode 100644 index 0000000000..6cde7771e5 --- /dev/null +++ b/awx/lib/site-packages/mongoengine/errors.py @@ -0,0 +1,131 @@ +from collections import defaultdict + +from mongoengine.python_support import txt_type + + +__all__ = ('NotRegistered', 'InvalidDocumentError', 'LookUpError', + 'DoesNotExist', 'MultipleObjectsReturned', 'InvalidQueryError', + 'OperationError', 'NotUniqueError', 'FieldDoesNotExist', + 'ValidationError') + + +class NotRegistered(Exception): + pass + + +class InvalidDocumentError(Exception): + pass + + +class LookUpError(AttributeError): + pass + + +class DoesNotExist(Exception): + pass + + +class MultipleObjectsReturned(Exception): + pass + + +class InvalidQueryError(Exception): + pass + + +class OperationError(Exception): + pass + + +class NotUniqueError(OperationError): + pass + + +class FieldDoesNotExist(Exception): + pass + + +class ValidationError(AssertionError): + """Validation exception. + + May represent an error validating a field or a + document containing fields with validation errors. + + :ivar errors: A dictionary of errors for fields within this + document or list, or None if the error is for an + individual field. + """ + + errors = {} + field_name = None + _message = None + + def __init__(self, message="", **kwargs): + self.errors = kwargs.get('errors', {}) + self.field_name = kwargs.get('field_name') + self.message = message + + def __str__(self): + return txt_type(self.message) + + def __repr__(self): + return '%s(%s,)' % (self.__class__.__name__, self.message) + + def __getattribute__(self, name): + message = super(ValidationError, self).__getattribute__(name) + if name == 'message': + if self.field_name: + message = '%s' % message + if self.errors: + message = '%s(%s)' % (message, self._format_errors()) + return message + + def _get_message(self): + return self._message + + def _set_message(self, message): + self._message = message + + message = property(_get_message, _set_message) + + def to_dict(self): + """Returns a dictionary of all errors within a document + + Keys are field names or list indices and values are the + validation error messages, or a nested dictionary of + errors for an embedded document or list. + """ + + def build_dict(source): + errors_dict = {} + if not source: + return errors_dict + if isinstance(source, dict): + for field_name, error in source.iteritems(): + errors_dict[field_name] = build_dict(error) + elif isinstance(source, ValidationError) and source.errors: + return build_dict(source.errors) + else: + return unicode(source) + return errors_dict + if not self.errors: + return {} + return build_dict(self.errors) + + def _format_errors(self): + """Returns a string listing all errors within a document""" + + def generate_key(value, prefix=''): + if isinstance(value, list): + value = ' '.join([generate_key(k) for k in value]) + if isinstance(value, dict): + value = ' '.join( + [generate_key(v, k) for k, v in value.iteritems()]) + + results = "%s.%s" % (prefix, value) if prefix else value + return results + + error_dict = defaultdict(list) + for k, v in self.to_dict().iteritems(): + error_dict[generate_key(v)].append(k) + return ' '.join(["%s: %s" % (k, v) for k, v in error_dict.iteritems()]) diff --git a/awx/lib/site-packages/mongoengine/fields.py b/awx/lib/site-packages/mongoengine/fields.py new file mode 100644 index 0000000000..3c1db4ac38 --- /dev/null +++ b/awx/lib/site-packages/mongoengine/fields.py @@ -0,0 +1,2006 @@ +import datetime +import decimal +import itertools +import re +import time +import urllib2 +import uuid +import warnings +from operator import itemgetter + +try: + import dateutil +except ImportError: + dateutil = None +else: + import dateutil.parser + +import pymongo +import gridfs +from bson import Binary, DBRef, SON, ObjectId + +from mongoengine.errors import ValidationError +from mongoengine.python_support import (PY3, bin_type, txt_type, + str_types, StringIO) +from base import (BaseField, ComplexBaseField, ObjectIdField, GeoJsonBaseField, + get_document, BaseDocument) +from queryset import DO_NOTHING, QuerySet +from document import Document, EmbeddedDocument +from connection import get_db, DEFAULT_CONNECTION_NAME + +try: + from PIL import Image, ImageOps +except ImportError: + Image = None + ImageOps = None + +__all__ = [ + 'StringField', 'URLField', 'EmailField', 'IntField', 'LongField', + 'FloatField', 'DecimalField', 'BooleanField', 'DateTimeField', + 'ComplexDateTimeField', 'EmbeddedDocumentField', 'ObjectIdField', + 'GenericEmbeddedDocumentField', 'DynamicField', 'ListField', + 'SortedListField', 'EmbeddedDocumentListField', 'DictField', + 'MapField', 'ReferenceField', 'CachedReferenceField', + 'GenericReferenceField', 'BinaryField', 'GridFSError', 'GridFSProxy', + 'FileField', 'ImageGridFsProxy', 'ImproperlyConfigured', 'ImageField', + 'GeoPointField', 'PointField', 'LineStringField', 'PolygonField', + 'SequenceField', 'UUIDField', 'MultiPointField', 'MultiLineStringField', + 'MultiPolygonField', 'GeoJsonBaseField'] + + +RECURSIVE_REFERENCE_CONSTANT = 'self' + + +class StringField(BaseField): + + """A unicode string field. + """ + + def __init__(self, regex=None, max_length=None, min_length=None, **kwargs): + self.regex = re.compile(regex) if regex else None + self.max_length = max_length + self.min_length = min_length + super(StringField, self).__init__(**kwargs) + + def to_python(self, value): + if isinstance(value, unicode): + return value + try: + value = value.decode('utf-8') + except: + pass + return value + + def validate(self, value): + if not isinstance(value, basestring): + self.error('StringField only accepts string values') + + if self.max_length is not None and len(value) > self.max_length: + self.error('String value is too long') + + if self.min_length is not None and len(value) < self.min_length: + self.error('String value is too short') + + if self.regex is not None and self.regex.match(value) is None: + self.error('String value did not match validation regex') + + def lookup_member(self, member_name): + return None + + def prepare_query_value(self, op, value): + if not isinstance(op, basestring): + return value + + if op.lstrip('i') in ('startswith', 'endswith', 'contains', 'exact'): + flags = 0 + if op.startswith('i'): + flags = re.IGNORECASE + op = op.lstrip('i') + + regex = r'%s' + if op == 'startswith': + regex = r'^%s' + elif op == 'endswith': + regex = r'%s$' + elif op == 'exact': + regex = r'^%s$' + + # escape unsafe characters which could lead to a re.error + value = re.escape(value) + value = re.compile(regex % value, flags) + return value + + +class URLField(StringField): + + """A field that validates input as an URL. + + .. versionadded:: 0.3 + """ + + _URL_REGEX = re.compile( + r'^(?:http|ftp)s?://' # http:// or https:// + # domain... + r'(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?)|' + r'localhost|' # localhost... + r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' # ...or ip + r'(?::\d+)?' # optional port + r'(?:/?|[/?]\S+)$', re.IGNORECASE) + + def __init__(self, verify_exists=False, url_regex=None, **kwargs): + self.verify_exists = verify_exists + self.url_regex = url_regex or self._URL_REGEX + super(URLField, self).__init__(**kwargs) + + def validate(self, value): + if not self.url_regex.match(value): + self.error('Invalid URL: %s' % value) + return + + if self.verify_exists: + warnings.warn( + "The URLField verify_exists argument has intractable security " + "and performance issues. Accordingly, it has been deprecated.", + DeprecationWarning) + try: + request = urllib2.Request(value) + urllib2.urlopen(request) + except Exception, e: + self.error('This URL appears to be a broken link: %s' % e) + + +class EmailField(StringField): + + """A field that validates input as an E-Mail-Address. + + .. versionadded:: 0.4 + """ + + EMAIL_REGEX = re.compile( + # dot-atom + r"(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*" + # quoted-string + r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-011\013\014\016-\177])*"' + # domain (max length of an ICAAN TLD is 22 characters) + r')@(?:[A-Z0-9](?:[A-Z0-9-]{0,253}[A-Z0-9])?\.)+[A-Z]{2,22}$', re.IGNORECASE + ) + + def validate(self, value): + if not EmailField.EMAIL_REGEX.match(value): + self.error('Invalid Mail-address: %s' % value) + super(EmailField, self).validate(value) + + +class IntField(BaseField): + + """An 32-bit integer field. + """ + + def __init__(self, min_value=None, max_value=None, **kwargs): + self.min_value, self.max_value = min_value, max_value + super(IntField, self).__init__(**kwargs) + + def to_python(self, value): + try: + value = int(value) + except ValueError: + pass + return value + + def validate(self, value): + try: + value = int(value) + except: + self.error('%s could not be converted to int' % value) + + if self.min_value is not None and value < self.min_value: + self.error('Integer value is too small') + + if self.max_value is not None and value > self.max_value: + self.error('Integer value is too large') + + def prepare_query_value(self, op, value): + if value is None: + return value + + return int(value) + + +class LongField(BaseField): + + """An 64-bit integer field. + """ + + def __init__(self, min_value=None, max_value=None, **kwargs): + self.min_value, self.max_value = min_value, max_value + super(LongField, self).__init__(**kwargs) + + def to_python(self, value): + try: + value = long(value) + except ValueError: + pass + return value + + def validate(self, value): + try: + value = long(value) + except: + self.error('%s could not be converted to long' % value) + + if self.min_value is not None and value < self.min_value: + self.error('Long value is too small') + + if self.max_value is not None and value > self.max_value: + self.error('Long value is too large') + + def prepare_query_value(self, op, value): + if value is None: + return value + + return long(value) + + +class FloatField(BaseField): + + """An floating point number field. + """ + + def __init__(self, min_value=None, max_value=None, **kwargs): + self.min_value, self.max_value = min_value, max_value + super(FloatField, self).__init__(**kwargs) + + def to_python(self, value): + try: + value = float(value) + except ValueError: + pass + return value + + def validate(self, value): + if isinstance(value, int): + value = float(value) + if not isinstance(value, float): + self.error('FloatField only accepts float values') + + if self.min_value is not None and value < self.min_value: + self.error('Float value is too small') + + if self.max_value is not None and value > self.max_value: + self.error('Float value is too large') + + def prepare_query_value(self, op, value): + if value is None: + return value + + return float(value) + + +class DecimalField(BaseField): + + """A fixed-point decimal number field. + + .. versionchanged:: 0.8 + .. versionadded:: 0.3 + """ + + def __init__(self, min_value=None, max_value=None, force_string=False, + precision=2, rounding=decimal.ROUND_HALF_UP, **kwargs): + """ + :param min_value: Validation rule for the minimum acceptable value. + :param max_value: Validation rule for the maximum acceptable value. + :param force_string: Store as a string. + :param precision: Number of decimal places to store. + :param rounding: The rounding rule from the python decimal library: + + - decimal.ROUND_CEILING (towards Infinity) + - decimal.ROUND_DOWN (towards zero) + - decimal.ROUND_FLOOR (towards -Infinity) + - decimal.ROUND_HALF_DOWN (to nearest with ties going towards zero) + - decimal.ROUND_HALF_EVEN (to nearest with ties going to nearest even integer) + - decimal.ROUND_HALF_UP (to nearest with ties going away from zero) + - decimal.ROUND_UP (away from zero) + - decimal.ROUND_05UP (away from zero if last digit after rounding towards zero would have been 0 or 5; otherwise towards zero) + + Defaults to: ``decimal.ROUND_HALF_UP`` + + """ + self.min_value = min_value + self.max_value = max_value + self.force_string = force_string + self.precision = precision + self.rounding = rounding + + super(DecimalField, self).__init__(**kwargs) + + def to_python(self, value): + if value is None: + return value + + # Convert to string for python 2.6 before casting to Decimal + try: + value = decimal.Decimal("%s" % value) + except decimal.InvalidOperation: + return value + return value.quantize(decimal.Decimal(".%s" % ("0" * self.precision)), rounding=self.rounding) + + def to_mongo(self, value, use_db_field=True): + if value is None: + return value + if self.force_string: + return unicode(value) + return float(self.to_python(value)) + + def validate(self, value): + if not isinstance(value, decimal.Decimal): + if not isinstance(value, basestring): + value = unicode(value) + try: + value = decimal.Decimal(value) + except Exception, exc: + self.error('Could not convert value to decimal: %s' % exc) + + if self.min_value is not None and value < self.min_value: + self.error('Decimal value is too small') + + if self.max_value is not None and value > self.max_value: + self.error('Decimal value is too large') + + def prepare_query_value(self, op, value): + return self.to_mongo(value) + + +class BooleanField(BaseField): + + """A boolean field type. + + .. versionadded:: 0.1.2 + """ + + def to_python(self, value): + try: + value = bool(value) + except ValueError: + pass + return value + + def validate(self, value): + if not isinstance(value, bool): + self.error('BooleanField only accepts boolean values') + + +class DateTimeField(BaseField): + + """A datetime field. + + Uses the python-dateutil library if available alternatively use time.strptime + to parse the dates. Note: python-dateutil's parser is fully featured and when + installed you can utilise it to convert varying types of date formats into valid + python datetime objects. + + Note: Microseconds are rounded to the nearest millisecond. + Pre UTC microsecond support is effectively broken. + Use :class:`~mongoengine.fields.ComplexDateTimeField` if you + need accurate microsecond support. + """ + + def validate(self, value): + new_value = self.to_mongo(value) + if not isinstance(new_value, (datetime.datetime, datetime.date)): + self.error(u'cannot parse date "%s"' % value) + + def to_mongo(self, value): + if value is None: + return value + if isinstance(value, datetime.datetime): + return value + if isinstance(value, datetime.date): + return datetime.datetime(value.year, value.month, value.day) + if callable(value): + return value() + + if not isinstance(value, basestring): + return None + + # Attempt to parse a datetime: + if dateutil: + try: + return dateutil.parser.parse(value) + except (TypeError, ValueError): + return None + + # split usecs, because they are not recognized by strptime. + if '.' in value: + try: + value, usecs = value.split('.') + usecs = int(usecs) + except ValueError: + return None + else: + usecs = 0 + kwargs = {'microsecond': usecs} + try: # Seconds are optional, so try converting seconds first. + return datetime.datetime(*time.strptime(value, + '%Y-%m-%d %H:%M:%S')[:6], **kwargs) + except ValueError: + try: # Try without seconds. + return datetime.datetime(*time.strptime(value, + '%Y-%m-%d %H:%M')[:5], **kwargs) + except ValueError: # Try without hour/minutes/seconds. + try: + return datetime.datetime(*time.strptime(value, + '%Y-%m-%d')[:3], **kwargs) + except ValueError: + return None + + def prepare_query_value(self, op, value): + return self.to_mongo(value) + + +class ComplexDateTimeField(StringField): + + """ + ComplexDateTimeField handles microseconds exactly instead of rounding + like DateTimeField does. + + Derives from a StringField so you can do `gte` and `lte` filtering by + using lexicographical comparison when filtering / sorting strings. + + The stored string has the following format: + + YYYY,MM,DD,HH,MM,SS,NNNNNN + + Where NNNNNN is the number of microseconds of the represented `datetime`. + The `,` as the separator can be easily modified by passing the `separator` + keyword when initializing the field. + + .. versionadded:: 0.5 + """ + + def __init__(self, separator=',', **kwargs): + self.names = ['year', 'month', 'day', 'hour', 'minute', 'second', + 'microsecond'] + self.separtor = separator + super(ComplexDateTimeField, self).__init__(**kwargs) + + def _leading_zero(self, number): + """ + Converts the given number to a string. + + If it has only one digit, a leading zero so as it has always at least + two digits. + """ + if int(number) < 10: + return "0%s" % number + else: + return str(number) + + def _convert_from_datetime(self, val): + """ + Convert a `datetime` object to a string representation (which will be + stored in MongoDB). This is the reverse function of + `_convert_from_string`. + + >>> a = datetime(2011, 6, 8, 20, 26, 24, 192284) + >>> RealDateTimeField()._convert_from_datetime(a) + '2011,06,08,20,26,24,192284' + """ + data = [] + for name in self.names: + data.append(self._leading_zero(getattr(val, name))) + return ','.join(data) + + def _convert_from_string(self, data): + """ + Convert a string representation to a `datetime` object (the object you + will manipulate). This is the reverse function of + `_convert_from_datetime`. + + >>> a = '2011,06,08,20,26,24,192284' + >>> ComplexDateTimeField()._convert_from_string(a) + datetime.datetime(2011, 6, 8, 20, 26, 24, 192284) + """ + data = data.split(',') + data = map(int, data) + values = {} + for i in range(7): + values[self.names[i]] = data[i] + return datetime.datetime(**values) + + def __get__(self, instance, owner): + data = super(ComplexDateTimeField, self).__get__(instance, owner) + if data is None: + return None if self.null else datetime.datetime.now() + if isinstance(data, datetime.datetime): + return data + return self._convert_from_string(data) + + def __set__(self, instance, value): + value = self._convert_from_datetime(value) if value else value + return super(ComplexDateTimeField, self).__set__(instance, value) + + def validate(self, value): + value = self.to_python(value) + if not isinstance(value, datetime.datetime): + self.error('Only datetime objects may used in a ' + 'ComplexDateTimeField') + + def to_python(self, value): + original_value = value + try: + return self._convert_from_string(value) + except: + return original_value + + def to_mongo(self, value): + value = self.to_python(value) + return self._convert_from_datetime(value) + + def prepare_query_value(self, op, value): + return self._convert_from_datetime(value) + + +class EmbeddedDocumentField(BaseField): + + """An embedded document field - with a declared document_type. + Only valid values are subclasses of :class:`~mongoengine.EmbeddedDocument`. + """ + + def __init__(self, document_type, **kwargs): + if not isinstance(document_type, basestring): + if not issubclass(document_type, EmbeddedDocument): + self.error('Invalid embedded document class provided to an ' + 'EmbeddedDocumentField') + self.document_type_obj = document_type + super(EmbeddedDocumentField, self).__init__(**kwargs) + + @property + def document_type(self): + if isinstance(self.document_type_obj, basestring): + if self.document_type_obj == RECURSIVE_REFERENCE_CONSTANT: + self.document_type_obj = self.owner_document + else: + self.document_type_obj = get_document(self.document_type_obj) + return self.document_type_obj + + def to_python(self, value): + if not isinstance(value, self.document_type): + return self.document_type._from_son(value) + return value + + def to_mongo(self, value, use_db_field=True, fields=[]): + if not isinstance(value, self.document_type): + return value + return self.document_type.to_mongo(value, use_db_field, + fields=fields) + + def validate(self, value, clean=True): + """Make sure that the document instance is an instance of the + EmbeddedDocument subclass provided when the document was defined. + """ + # Using isinstance also works for subclasses of self.document + if not isinstance(value, self.document_type): + self.error('Invalid embedded document instance provided to an ' + 'EmbeddedDocumentField') + self.document_type.validate(value, clean) + + def lookup_member(self, member_name): + return self.document_type._fields.get(member_name) + + def prepare_query_value(self, op, value): + return self.to_mongo(value) + + +class GenericEmbeddedDocumentField(BaseField): + + """A generic embedded document field - allows any + :class:`~mongoengine.EmbeddedDocument` to be stored. + + Only valid values are subclasses of :class:`~mongoengine.EmbeddedDocument`. + + .. note :: + You can use the choices param to limit the acceptable + EmbeddedDocument types + """ + + def prepare_query_value(self, op, value): + return self.to_mongo(value) + + def to_python(self, value): + if isinstance(value, dict): + doc_cls = get_document(value['_cls']) + value = doc_cls._from_son(value) + + return value + + def validate(self, value, clean=True): + if not isinstance(value, EmbeddedDocument): + self.error('Invalid embedded document instance provided to an ' + 'GenericEmbeddedDocumentField') + + value.validate(clean=clean) + + def to_mongo(self, document, use_db_field=True): + if document is None: + return None + + data = document.to_mongo(use_db_field) + if not '_cls' in data: + data['_cls'] = document._class_name + return data + + +class DynamicField(BaseField): + + """A truly dynamic field type capable of handling different and varying + types of data. + + Used by :class:`~mongoengine.DynamicDocument` to handle dynamic data""" + + def to_mongo(self, value): + """Convert a Python type to a MongoDB compatible type. + """ + + if isinstance(value, basestring): + return value + + if hasattr(value, 'to_mongo'): + cls = value.__class__ + val = value.to_mongo() + # If we its a document thats not inherited add _cls + if (isinstance(value, Document)): + val = {"_ref": value.to_dbref(), "_cls": cls.__name__} + if (isinstance(value, EmbeddedDocument)): + val['_cls'] = cls.__name__ + return val + + if not isinstance(value, (dict, list, tuple)): + return value + + is_list = False + if not hasattr(value, 'items'): + is_list = True + value = dict([(k, v) for k, v in enumerate(value)]) + + data = {} + for k, v in value.iteritems(): + data[k] = self.to_mongo(v) + + value = data + if is_list: # Convert back to a list + value = [v for k, v in sorted(data.iteritems(), key=itemgetter(0))] + return value + + def to_python(self, value): + if isinstance(value, dict) and '_cls' in value: + doc_cls = get_document(value['_cls']) + if '_ref' in value: + value = doc_cls._get_db().dereference(value['_ref']) + return doc_cls._from_son(value) + + return super(DynamicField, self).to_python(value) + + def lookup_member(self, member_name): + return member_name + + def prepare_query_value(self, op, value): + if isinstance(value, basestring): + from mongoengine.fields import StringField + return StringField().prepare_query_value(op, value) + return self.to_mongo(value) + + def validate(self, value, clean=True): + if hasattr(value, "validate"): + value.validate(clean=clean) + + +class ListField(ComplexBaseField): + + """A list field that wraps a standard field, allowing multiple instances + of the field to be used as a list in the database. + + If using with ReferenceFields see: :ref:`one-to-many-with-listfields` + + .. note:: + Required means it cannot be empty - as the default for ListFields is [] + """ + + def __init__(self, field=None, **kwargs): + self.field = field + kwargs.setdefault('default', lambda: []) + super(ListField, self).__init__(**kwargs) + + def validate(self, value): + """Make sure that a list of valid fields is being used. + """ + if (not isinstance(value, (list, tuple, QuerySet)) or + isinstance(value, basestring)): + self.error('Only lists and tuples may be used in a list field') + super(ListField, self).validate(value) + + def prepare_query_value(self, op, value): + if self.field: + if op in ('set', 'unset') and (not isinstance(value, basestring) + and not isinstance(value, BaseDocument) + and hasattr(value, '__iter__')): + return [self.field.prepare_query_value(op, v) for v in value] + return self.field.prepare_query_value(op, value) + return super(ListField, self).prepare_query_value(op, value) + + +class EmbeddedDocumentListField(ListField): + """A :class:`~mongoengine.ListField` designed specially to hold a list of + embedded documents to provide additional query helpers. + + .. note:: + The only valid list values are subclasses of + :class:`~mongoengine.EmbeddedDocument`. + + .. versionadded:: 0.9 + + """ + + def __init__(self, document_type, *args, **kwargs): + """ + :param document_type: The type of + :class:`~mongoengine.EmbeddedDocument` the list will hold. + :param args: Arguments passed directly into the parent + :class:`~mongoengine.ListField`. + :param kwargs: Keyword arguments passed directly into the parent + :class:`~mongoengine.ListField`. + """ + super(EmbeddedDocumentListField, self).__init__( + field=EmbeddedDocumentField(document_type), **kwargs + ) + + +class SortedListField(ListField): + + """A ListField that sorts the contents of its list before writing to + the database in order to ensure that a sorted list is always + retrieved. + + .. warning:: + There is a potential race condition when handling lists. If you set / + save the whole list then other processes trying to save the whole list + as well could overwrite changes. The safest way to append to a list is + to perform a push operation. + + .. versionadded:: 0.4 + .. versionchanged:: 0.6 - added reverse keyword + """ + + _ordering = None + _order_reverse = False + + def __init__(self, field, **kwargs): + if 'ordering' in kwargs.keys(): + self._ordering = kwargs.pop('ordering') + if 'reverse' in kwargs.keys(): + self._order_reverse = kwargs.pop('reverse') + super(SortedListField, self).__init__(field, **kwargs) + + def to_mongo(self, value): + value = super(SortedListField, self).to_mongo(value) + if self._ordering is not None: + return sorted(value, key=itemgetter(self._ordering), + reverse=self._order_reverse) + return sorted(value, reverse=self._order_reverse) + + +def key_not_string(d): + """ Helper function to recursively determine if any key in a dictionary is + not a string. + """ + for k, v in d.items(): + if not isinstance(k, basestring) or (isinstance(v, dict) and key_not_string(v)): + return True + + +def key_has_dot_or_dollar(d): + """ Helper function to recursively determine if any key in a dictionary + contains a dot or a dollar sign. + """ + for k, v in d.items(): + if ('.' in k or '$' in k) or (isinstance(v, dict) and key_has_dot_or_dollar(v)): + return True + + +class DictField(ComplexBaseField): + + """A dictionary field that wraps a standard Python dictionary. This is + similar to an embedded document, but the structure is not defined. + + .. note:: + Required means it cannot be empty - as the default for DictFields is {} + + .. versionadded:: 0.3 + .. versionchanged:: 0.5 - Can now handle complex / varying types of data + """ + + def __init__(self, basecls=None, field=None, *args, **kwargs): + self.field = field + self.basecls = basecls or BaseField + if not issubclass(self.basecls, BaseField): + self.error('DictField only accepts dict values') + kwargs.setdefault('default', lambda: {}) + super(DictField, self).__init__(*args, **kwargs) + + def validate(self, value): + """Make sure that a list of valid fields is being used. + """ + if not isinstance(value, dict): + self.error('Only dictionaries may be used in a DictField') + + if key_not_string(value): + msg = ("Invalid dictionary key - documents must " + "have only string keys") + self.error(msg) + if key_has_dot_or_dollar(value): + self.error('Invalid dictionary key name - keys may not contain "."' + ' or "$" characters') + super(DictField, self).validate(value) + + def lookup_member(self, member_name): + return DictField(basecls=self.basecls, db_field=member_name) + + def prepare_query_value(self, op, value): + match_operators = ['contains', 'icontains', 'startswith', + 'istartswith', 'endswith', 'iendswith', + 'exact', 'iexact'] + + if op in match_operators and isinstance(value, basestring): + return StringField().prepare_query_value(op, value) + + if hasattr(self.field, 'field'): + if op in ('set', 'unset') and isinstance(value, dict): + return dict( + (k, self.field.prepare_query_value(op, v)) + for k, v in value.items()) + return self.field.prepare_query_value(op, value) + + return super(DictField, self).prepare_query_value(op, value) + + +class MapField(DictField): + + """A field that maps a name to a specified field type. Similar to + a DictField, except the 'value' of each item must match the specified + field type. + + .. versionadded:: 0.5 + """ + + def __init__(self, field=None, *args, **kwargs): + if not isinstance(field, BaseField): + self.error('Argument to MapField constructor must be a valid ' + 'field') + super(MapField, self).__init__(field=field, *args, **kwargs) + + +class ReferenceField(BaseField): + + """A reference to a document that will be automatically dereferenced on + access (lazily). + + Use the `reverse_delete_rule` to handle what should happen if the document + the field is referencing is deleted. EmbeddedDocuments, DictFields and + MapFields does not support reverse_delete_rule and an `InvalidDocumentError` + will be raised if trying to set on one of these Document / Field types. + + The options are: + + * DO_NOTHING - don't do anything (default). + * NULLIFY - Updates the reference to null. + * CASCADE - Deletes the documents associated with the reference. + * DENY - Prevent the deletion of the reference object. + * PULL - Pull the reference from a :class:`~mongoengine.fields.ListField` + of references + + Alternative syntax for registering delete rules (useful when implementing + bi-directional delete rules) + + .. code-block:: python + + class Bar(Document): + content = StringField() + foo = ReferenceField('Foo') + + Bar.register_delete_rule(Foo, 'bar', NULLIFY) + + .. note :: + `reverse_delete_rule` does not trigger pre / post delete signals to be + triggered. + + .. versionchanged:: 0.5 added `reverse_delete_rule` + """ + + def __init__(self, document_type, dbref=False, + reverse_delete_rule=DO_NOTHING, **kwargs): + """Initialises the Reference Field. + + :param dbref: Store the reference as :class:`~pymongo.dbref.DBRef` + or as the :class:`~pymongo.objectid.ObjectId`.id . + :param reverse_delete_rule: Determines what to do when the referring + object is deleted + """ + if not isinstance(document_type, basestring): + if not issubclass(document_type, (Document, basestring)): + self.error('Argument to ReferenceField constructor must be a ' + 'document class or a string') + + self.dbref = dbref + self.document_type_obj = document_type + self.reverse_delete_rule = reverse_delete_rule + super(ReferenceField, self).__init__(**kwargs) + + @property + def document_type(self): + if isinstance(self.document_type_obj, basestring): + if self.document_type_obj == RECURSIVE_REFERENCE_CONSTANT: + self.document_type_obj = self.owner_document + else: + self.document_type_obj = get_document(self.document_type_obj) + return self.document_type_obj + + def __get__(self, instance, owner): + """Descriptor to allow lazy dereferencing. + """ + if instance is None: + # Document class being used rather than a document object + return self + + # Get value from document instance if available + value = instance._data.get(self.name) + self._auto_dereference = instance._fields[self.name]._auto_dereference + # Dereference DBRefs + if self._auto_dereference and isinstance(value, DBRef): + value = self.document_type._get_db().dereference(value) + if value is not None: + instance._data[self.name] = self.document_type._from_son(value) + + return super(ReferenceField, self).__get__(instance, owner) + + def to_mongo(self, document): + if isinstance(document, DBRef): + if not self.dbref: + return document.id + return document + + id_field_name = self.document_type._meta['id_field'] + id_field = self.document_type._fields[id_field_name] + + if isinstance(document, Document): + # We need the id from the saved object to create the DBRef + id_ = document.pk + if id_ is None: + self.error('You can only reference documents once they have' + ' been saved to the database') + else: + id_ = document + + id_ = id_field.to_mongo(id_) + if self.dbref: + collection = self.document_type._get_collection_name() + return DBRef(collection, id_) + + return id_ + + def to_python(self, value): + """Convert a MongoDB-compatible type to a Python type. + """ + if (not self.dbref and + not isinstance(value, (DBRef, Document, EmbeddedDocument))): + collection = self.document_type._get_collection_name() + value = DBRef(collection, self.document_type.id.to_python(value)) + return value + + def prepare_query_value(self, op, value): + if value is None: + return None + return self.to_mongo(value) + + def validate(self, value): + + if not isinstance(value, (self.document_type, DBRef)): + self.error("A ReferenceField only accepts DBRef or documents") + + if isinstance(value, Document) and value.id is None: + self.error('You can only reference documents once they have been ' + 'saved to the database') + + def lookup_member(self, member_name): + return self.document_type._fields.get(member_name) + + +class CachedReferenceField(BaseField): + + """ + A referencefield with cache fields to porpuse pseudo-joins + .. versionadded:: 0.9 + """ + + def __init__(self, document_type, fields=[], auto_sync=True, **kwargs): + """Initialises the Cached Reference Field. + + :param fields: A list of fields to be cached in document + :param auto_sync: if True documents are auto updated. + """ + if not isinstance(document_type, basestring) and \ + not issubclass(document_type, (Document, basestring)): + + self.error('Argument to CachedReferenceField constructor must be a' + ' document class or a string') + + self.auto_sync = auto_sync + self.document_type_obj = document_type + self.fields = fields + super(CachedReferenceField, self).__init__(**kwargs) + + def start_listener(self): + from mongoengine import signals + signals.post_save.connect(self.on_document_pre_save, + sender=self.document_type) + + def on_document_pre_save(self, sender, document, created, **kwargs): + if not created: + update_kwargs = dict( + ('set__%s__%s' % (self.name, k), v) + for k, v in document._delta()[0].items() + if k in self.fields) + + if update_kwargs: + filter_kwargs = {} + filter_kwargs[self.name] = document + + self.owner_document.objects( + **filter_kwargs).update(**update_kwargs) + + def to_python(self, value): + if isinstance(value, dict): + collection = self.document_type._get_collection_name() + value = DBRef( + collection, self.document_type.id.to_python(value['_id'])) + + return value + + @property + def document_type(self): + if isinstance(self.document_type_obj, basestring): + if self.document_type_obj == RECURSIVE_REFERENCE_CONSTANT: + self.document_type_obj = self.owner_document + else: + self.document_type_obj = get_document(self.document_type_obj) + return self.document_type_obj + + def __get__(self, instance, owner): + if instance is None: + # Document class being used rather than a document object + return self + + # Get value from document instance if available + value = instance._data.get(self.name) + self._auto_dereference = instance._fields[self.name]._auto_dereference + # Dereference DBRefs + if self._auto_dereference and isinstance(value, DBRef): + value = self.document_type._get_db().dereference(value) + if value is not None: + instance._data[self.name] = self.document_type._from_son(value) + + return super(CachedReferenceField, self).__get__(instance, owner) + + def to_mongo(self, document): + id_field_name = self.document_type._meta['id_field'] + id_field = self.document_type._fields[id_field_name] + doc_tipe = self.document_type + + if isinstance(document, Document): + # We need the id from the saved object to create the DBRef + id_ = document.pk + if id_ is None: + self.error('You can only reference documents once they have' + ' been saved to the database') + else: + self.error('Only accept a document object') + + value = SON(( + ("_id", id_field.to_mongo(id_)), + )) + + value.update(dict(document.to_mongo(fields=self.fields))) + return value + + def prepare_query_value(self, op, value): + if value is None: + return None + + if isinstance(value, Document): + if value.pk is None: + self.error('You can only reference documents once they have' + ' been saved to the database') + return {'_id': value.pk} + + raise NotImplementedError + + def validate(self, value): + + if not isinstance(value, (self.document_type)): + self.error("A CachedReferenceField only accepts documents") + + if isinstance(value, Document) and value.id is None: + self.error('You can only reference documents once they have been ' + 'saved to the database') + + def lookup_member(self, member_name): + return self.document_type._fields.get(member_name) + + def sync_all(self): + """ + Sync all cached fields on demand. + Caution: this operation may be slower. + """ + update_key = 'set__%s' % self.name + + for doc in self.document_type.objects: + filter_kwargs = {} + filter_kwargs[self.name] = doc + + update_kwargs = {} + update_kwargs[update_key] = doc + + self.owner_document.objects( + **filter_kwargs).update(**update_kwargs) + + +class GenericReferenceField(BaseField): + + """A reference to *any* :class:`~mongoengine.document.Document` subclass + that will be automatically dereferenced on access (lazily). + + .. note :: + * Any documents used as a generic reference must be registered in the + document registry. Importing the model will automatically register + it. + + * You can use the choices param to limit the acceptable Document types + + .. versionadded:: 0.3 + """ + + def __get__(self, instance, owner): + if instance is None: + return self + + value = instance._data.get(self.name) + + self._auto_dereference = instance._fields[self.name]._auto_dereference + if self._auto_dereference and isinstance(value, (dict, SON)): + instance._data[self.name] = self.dereference(value) + + return super(GenericReferenceField, self).__get__(instance, owner) + + def validate(self, value): + if not isinstance(value, (Document, DBRef, dict, SON)): + self.error('GenericReferences can only contain documents') + + if isinstance(value, (dict, SON)): + if '_ref' not in value or '_cls' not in value: + self.error('GenericReferences can only contain documents') + + # We need the id from the saved object to create the DBRef + elif isinstance(value, Document) and value.id is None: + self.error('You can only reference documents once they have been' + ' saved to the database') + + def dereference(self, value): + doc_cls = get_document(value['_cls']) + reference = value['_ref'] + doc = doc_cls._get_db().dereference(reference) + if doc is not None: + doc = doc_cls._from_son(doc) + return doc + + def to_mongo(self, document, use_db_field=True): + if document is None: + return None + + if isinstance(document, (dict, SON)): + return document + + id_field_name = document.__class__._meta['id_field'] + id_field = document.__class__._fields[id_field_name] + + if isinstance(document, Document): + # We need the id from the saved object to create the DBRef + id_ = document.id + if id_ is None: + self.error('You can only reference documents once they have' + ' been saved to the database') + else: + id_ = document + + id_ = id_field.to_mongo(id_) + collection = document._get_collection_name() + ref = DBRef(collection, id_) + return SON(( + ('_cls', document._class_name), + ('_ref', ref) + )) + + def prepare_query_value(self, op, value): + if value is None: + return None + + return self.to_mongo(value) + + +class BinaryField(BaseField): + + """A binary data field. + """ + + def __init__(self, max_bytes=None, **kwargs): + self.max_bytes = max_bytes + super(BinaryField, self).__init__(**kwargs) + + def __set__(self, instance, value): + """Handle bytearrays in python 3.1""" + if PY3 and isinstance(value, bytearray): + value = bin_type(value) + return super(BinaryField, self).__set__(instance, value) + + def to_mongo(self, value): + return Binary(value) + + def validate(self, value): + if not isinstance(value, (bin_type, txt_type, Binary)): + self.error("BinaryField only accepts instances of " + "(%s, %s, Binary)" % ( + bin_type.__name__, txt_type.__name__)) + + if self.max_bytes is not None and len(value) > self.max_bytes: + self.error('Binary value is too long') + + +class GridFSError(Exception): + pass + + +class GridFSProxy(object): + + """Proxy object to handle writing and reading of files to and from GridFS + + .. versionadded:: 0.4 + .. versionchanged:: 0.5 - added optional size param to read + .. versionchanged:: 0.6 - added collection name param + """ + + _fs = None + + def __init__(self, grid_id=None, key=None, + instance=None, + db_alias=DEFAULT_CONNECTION_NAME, + collection_name='fs'): + self.grid_id = grid_id # Store GridFS id for file + self.key = key + self.instance = instance + self.db_alias = db_alias + self.collection_name = collection_name + self.newfile = None # Used for partial writes + self.gridout = None + + def __getattr__(self, name): + attrs = ('_fs', 'grid_id', 'key', 'instance', 'db_alias', + 'collection_name', 'newfile', 'gridout') + if name in attrs: + return self.__getattribute__(name) + obj = self.get() + if hasattr(obj, name): + return getattr(obj, name) + raise AttributeError + + def __get__(self, instance, value): + return self + + def __nonzero__(self): + return bool(self.grid_id) + + def __getstate__(self): + self_dict = self.__dict__ + self_dict['_fs'] = None + return self_dict + + def __copy__(self): + copied = GridFSProxy() + copied.__dict__.update(self.__getstate__()) + return copied + + def __deepcopy__(self, memo): + return self.__copy__() + + def __repr__(self): + return '<%s: %s>' % (self.__class__.__name__, self.grid_id) + + def __str__(self): + name = getattr( + self.get(), 'filename', self.grid_id) if self.get() else '(no file)' + return '<%s: %s>' % (self.__class__.__name__, name) + + def __eq__(self, other): + if isinstance(other, GridFSProxy): + return ((self.grid_id == other.grid_id) and + (self.collection_name == other.collection_name) and + (self.db_alias == other.db_alias)) + else: + return False + + @property + def fs(self): + if not self._fs: + self._fs = gridfs.GridFS( + get_db(self.db_alias), self.collection_name) + return self._fs + + def get(self, id=None): + if id: + self.grid_id = id + if self.grid_id is None: + return None + try: + if self.gridout is None: + self.gridout = self.fs.get(self.grid_id) + return self.gridout + except: + # File has been deleted + return None + + def new_file(self, **kwargs): + self.newfile = self.fs.new_file(**kwargs) + self.grid_id = self.newfile._id + self._mark_as_changed() + + def put(self, file_obj, **kwargs): + if self.grid_id: + raise GridFSError('This document already has a file. Either delete ' + 'it or call replace to overwrite it') + self.grid_id = self.fs.put(file_obj, **kwargs) + self._mark_as_changed() + + def write(self, string): + if self.grid_id: + if not self.newfile: + raise GridFSError('This document already has a file. Either ' + 'delete it or call replace to overwrite it') + else: + self.new_file() + self.newfile.write(string) + + def writelines(self, lines): + if not self.newfile: + self.new_file() + self.grid_id = self.newfile._id + self.newfile.writelines(lines) + + def read(self, size=-1): + gridout = self.get() + if gridout is None: + return None + else: + try: + return gridout.read(size) + except: + return "" + + def delete(self): + # Delete file from GridFS, FileField still remains + self.fs.delete(self.grid_id) + self.grid_id = None + self.gridout = None + self._mark_as_changed() + + def replace(self, file_obj, **kwargs): + self.delete() + self.put(file_obj, **kwargs) + + def close(self): + if self.newfile: + self.newfile.close() + + def _mark_as_changed(self): + """Inform the instance that `self.key` has been changed""" + if self.instance: + self.instance._mark_as_changed(self.key) + + +class FileField(BaseField): + + """A GridFS storage field. + + .. versionadded:: 0.4 + .. versionchanged:: 0.5 added optional size param for read + .. versionchanged:: 0.6 added db_alias for multidb support + """ + proxy_class = GridFSProxy + + def __init__(self, + db_alias=DEFAULT_CONNECTION_NAME, + collection_name="fs", **kwargs): + super(FileField, self).__init__(**kwargs) + self.collection_name = collection_name + self.db_alias = db_alias + + def __get__(self, instance, owner): + if instance is None: + return self + + # Check if a file already exists for this model + grid_file = instance._data.get(self.name) + if not isinstance(grid_file, self.proxy_class): + grid_file = self.get_proxy_obj(key=self.name, instance=instance) + instance._data[self.name] = grid_file + + if not grid_file.key: + grid_file.key = self.name + grid_file.instance = instance + return grid_file + + def __set__(self, instance, value): + key = self.name + if ((hasattr(value, 'read') and not + isinstance(value, GridFSProxy)) or isinstance(value, str_types)): + # using "FileField() = file/string" notation + grid_file = instance._data.get(self.name) + # If a file already exists, delete it + if grid_file: + try: + grid_file.delete() + except: + pass + + # Create a new proxy object as we don't already have one + instance._data[key] = self.get_proxy_obj( + key=key, instance=instance) + instance._data[key].put(value) + else: + instance._data[key] = value + + instance._mark_as_changed(key) + + def get_proxy_obj(self, key, instance, db_alias=None, collection_name=None): + if db_alias is None: + db_alias = self.db_alias + if collection_name is None: + collection_name = self.collection_name + + return self.proxy_class(key=key, instance=instance, + db_alias=db_alias, + collection_name=collection_name) + + def to_mongo(self, value): + # Store the GridFS file id in MongoDB + if isinstance(value, self.proxy_class) and value.grid_id is not None: + return value.grid_id + return None + + def to_python(self, value): + if value is not None: + return self.proxy_class(value, + collection_name=self.collection_name, + db_alias=self.db_alias) + + def validate(self, value): + if value.grid_id is not None: + if not isinstance(value, self.proxy_class): + self.error('FileField only accepts GridFSProxy values') + if not isinstance(value.grid_id, ObjectId): + self.error('Invalid GridFSProxy value') + + +class ImageGridFsProxy(GridFSProxy): + + """ + Proxy for ImageField + + versionadded: 0.6 + """ + + def put(self, file_obj, **kwargs): + """ + Insert a image in database + applying field properties (size, thumbnail_size) + """ + field = self.instance._fields[self.key] + # Handle nested fields + if hasattr(field, 'field') and isinstance(field.field, FileField): + field = field.field + + try: + img = Image.open(file_obj) + img_format = img.format + except Exception, e: + raise ValidationError('Invalid image: %s' % e) + + # Progressive JPEG + progressive = img.info.get('progressive') or False + + if (kwargs.get('progressive') and + isinstance(kwargs.get('progressive'), bool) and + img_format == 'JPEG'): + progressive = True + else: + progressive = False + + if (field.size and (img.size[0] > field.size['width'] or + img.size[1] > field.size['height'])): + size = field.size + + if size['force']: + img = ImageOps.fit(img, + (size['width'], + size['height']), + Image.ANTIALIAS) + else: + img.thumbnail((size['width'], + size['height']), + Image.ANTIALIAS) + + thumbnail = None + if field.thumbnail_size: + size = field.thumbnail_size + + if size['force']: + thumbnail = ImageOps.fit( + img, (size['width'], size['height']), Image.ANTIALIAS) + else: + thumbnail = img.copy() + thumbnail.thumbnail((size['width'], + size['height']), + Image.ANTIALIAS) + + if thumbnail: + thumb_id = self._put_thumbnail(thumbnail, img_format, progressive) + else: + thumb_id = None + + w, h = img.size + + io = StringIO() + img.save(io, img_format, progressive=progressive) + io.seek(0) + + return super(ImageGridFsProxy, self).put(io, + width=w, + height=h, + format=img_format, + thumbnail_id=thumb_id, + **kwargs) + + def delete(self, *args, **kwargs): + # deletes thumbnail + out = self.get() + if out and out.thumbnail_id: + self.fs.delete(out.thumbnail_id) + + return super(ImageGridFsProxy, self).delete(*args, **kwargs) + + def _put_thumbnail(self, thumbnail, format, progressive, **kwargs): + w, h = thumbnail.size + + io = StringIO() + thumbnail.save(io, format, progressive=progressive) + io.seek(0) + + return self.fs.put(io, width=w, + height=h, + format=format, + **kwargs) + + @property + def size(self): + """ + return a width, height of image + """ + out = self.get() + if out: + return out.width, out.height + + @property + def format(self): + """ + return format of image + ex: PNG, JPEG, GIF, etc + """ + out = self.get() + if out: + return out.format + + @property + def thumbnail(self): + """ + return a gridfs.grid_file.GridOut + representing a thumbnail of Image + """ + out = self.get() + if out and out.thumbnail_id: + return self.fs.get(out.thumbnail_id) + + def write(self, *args, **kwargs): + raise RuntimeError("Please use \"put\" method instead") + + def writelines(self, *args, **kwargs): + raise RuntimeError("Please use \"put\" method instead") + + +class ImproperlyConfigured(Exception): + pass + + +class ImageField(FileField): + + """ + A Image File storage field. + + @size (width, height, force): + max size to store images, if larger will be automatically resized + ex: size=(800, 600, True) + + @thumbnail (width, height, force): + size to generate a thumbnail + + .. versionadded:: 0.6 + """ + proxy_class = ImageGridFsProxy + + def __init__(self, size=None, thumbnail_size=None, + collection_name='images', **kwargs): + if not Image: + raise ImproperlyConfigured("PIL library was not found") + + params_size = ('width', 'height', 'force') + extra_args = dict(size=size, thumbnail_size=thumbnail_size) + for att_name, att in extra_args.items(): + value = None + if isinstance(att, (tuple, list)): + if PY3: + value = dict(itertools.zip_longest(params_size, att, + fillvalue=None)) + else: + value = dict(map(None, params_size, att)) + + setattr(self, att_name, value) + + super(ImageField, self).__init__( + collection_name=collection_name, + **kwargs) + + +class SequenceField(BaseField): + + """Provides a sequential counter see: + http://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-SequenceNumbers + + .. note:: + + Although traditional databases often use increasing sequence + numbers for primary keys. In MongoDB, the preferred approach is to + use Object IDs instead. The concept is that in a very large + cluster of machines, it is easier to create an object ID than have + global, uniformly increasing sequence numbers. + + Use any callable as `value_decorator` to transform calculated counter into + any value suitable for your needs, e.g. string or hexadecimal + representation of the default integer counter value. + + .. versionadded:: 0.5 + + .. versionchanged:: 0.8 added `value_decorator` + """ + + _auto_gen = True + COLLECTION_NAME = 'mongoengine.counters' + VALUE_DECORATOR = int + + def __init__(self, collection_name=None, db_alias=None, sequence_name=None, + value_decorator=None, *args, **kwargs): + self.collection_name = collection_name or self.COLLECTION_NAME + self.db_alias = db_alias or DEFAULT_CONNECTION_NAME + self.sequence_name = sequence_name + self.value_decorator = (callable(value_decorator) and + value_decorator or self.VALUE_DECORATOR) + return super(SequenceField, self).__init__(*args, **kwargs) + + def generate(self): + """ + Generate and Increment the counter + """ + sequence_name = self.get_sequence_name() + sequence_id = "%s.%s" % (sequence_name, self.name) + collection = get_db(alias=self.db_alias)[self.collection_name] + counter = collection.find_and_modify(query={"_id": sequence_id}, + update={"$inc": {"next": 1}}, + new=True, + upsert=True) + return self.value_decorator(counter['next']) + + def set_next_value(self, value): + """Helper method to set the next sequence value""" + sequence_name = self.get_sequence_name() + sequence_id = "%s.%s" % (sequence_name, self.name) + collection = get_db(alias=self.db_alias)[self.collection_name] + counter = collection.find_and_modify(query={"_id": sequence_id}, + update={"$set": {"next": value}}, + new=True, + upsert=True) + return self.value_decorator(counter['next']) + + def get_next_value(self): + """Helper method to get the next value for previewing. + + .. warning:: There is no guarantee this will be the next value + as it is only fixed on set. + """ + sequence_name = self.get_sequence_name() + sequence_id = "%s.%s" % (sequence_name, self.name) + collection = get_db(alias=self.db_alias)[self.collection_name] + data = collection.find_one({"_id": sequence_id}) + + if data: + return self.value_decorator(data['next'] + 1) + + return self.value_decorator(1) + + def get_sequence_name(self): + if self.sequence_name: + return self.sequence_name + owner = self.owner_document + if issubclass(owner, Document): + return owner._get_collection_name() + else: + return ''.join('_%s' % c if c.isupper() else c + for c in owner._class_name).strip('_').lower() + + def __get__(self, instance, owner): + value = super(SequenceField, self).__get__(instance, owner) + if value is None and instance._initialised: + value = self.generate() + instance._data[self.name] = value + instance._mark_as_changed(self.name) + + return value + + def __set__(self, instance, value): + + if value is None and instance._initialised: + value = self.generate() + + return super(SequenceField, self).__set__(instance, value) + + def prepare_query_value(self, op, value): + """ + This method is overridden in order to convert the query value into to required + type. We need to do this in order to be able to successfully compare query + values passed as string, the base implementation returns the value as is. + """ + return self.value_decorator(value) + + def to_python(self, value): + if value is None: + value = self.generate() + return value + + +class UUIDField(BaseField): + + """A UUID field. + + .. versionadded:: 0.6 + """ + _binary = None + + def __init__(self, binary=True, **kwargs): + """ + Store UUID data in the database + + :param binary: if False store as a string. + + .. versionchanged:: 0.8.0 + .. versionchanged:: 0.6.19 + """ + self._binary = binary + super(UUIDField, self).__init__(**kwargs) + + def to_python(self, value): + if not self._binary: + original_value = value + try: + if not isinstance(value, basestring): + value = unicode(value) + return uuid.UUID(value) + except: + return original_value + return value + + def to_mongo(self, value): + if not self._binary: + return unicode(value) + elif isinstance(value, basestring): + return uuid.UUID(value) + return value + + def prepare_query_value(self, op, value): + if value is None: + return None + return self.to_mongo(value) + + def validate(self, value): + if not isinstance(value, uuid.UUID): + if not isinstance(value, basestring): + value = str(value) + try: + value = uuid.UUID(value) + except Exception, exc: + self.error('Could not convert to UUID: %s' % exc) + + +class GeoPointField(BaseField): + + """A list storing a longitude and latitude coordinate. + + .. note:: this represents a generic point in a 2D plane and a legacy way of + representing a geo point. It admits 2d indexes but not "2dsphere" indexes + in MongoDB > 2.4 which are more natural for modeling geospatial points. + See :ref:`geospatial-indexes` + + .. versionadded:: 0.4 + """ + + _geo_index = pymongo.GEO2D + + def validate(self, value): + """Make sure that a geo-value is of type (x, y) + """ + if not isinstance(value, (list, tuple)): + self.error('GeoPointField can only accept tuples or lists ' + 'of (x, y)') + + if not len(value) == 2: + self.error("Value (%s) must be a two-dimensional point" % + repr(value)) + elif (not isinstance(value[0], (float, int)) or + not isinstance(value[1], (float, int))): + self.error( + "Both values (%s) in point must be float or int" % repr(value)) + + +class PointField(GeoJsonBaseField): + + """A GeoJSON field storing a longitude and latitude coordinate. + + The data is represented as: + + .. code-block:: js + + { "type" : "Point" , + "coordinates" : [x, y]} + + You can either pass a dict with the full information or a list + to set the value. + + Requires mongodb >= 2.4 + + .. versionadded:: 0.8 + """ + _type = "Point" + + +class LineStringField(GeoJsonBaseField): + + """A GeoJSON field storing a line of longitude and latitude coordinates. + + The data is represented as: + + .. code-block:: js + + { "type" : "LineString" , + "coordinates" : [[x1, y1], [x1, y1] ... [xn, yn]]} + + You can either pass a dict with the full information or a list of points. + + Requires mongodb >= 2.4 + + .. versionadded:: 0.8 + """ + _type = "LineString" + + +class PolygonField(GeoJsonBaseField): + + """A GeoJSON field storing a polygon of longitude and latitude coordinates. + + The data is represented as: + + .. code-block:: js + + { "type" : "Polygon" , + "coordinates" : [[[x1, y1], [x1, y1] ... [xn, yn]], + [[x1, y1], [x1, y1] ... [xn, yn]]} + + You can either pass a dict with the full information or a list + of LineStrings. The first LineString being the outside and the rest being + holes. + + Requires mongodb >= 2.4 + + .. versionadded:: 0.8 + """ + _type = "Polygon" + + +class MultiPointField(GeoJsonBaseField): + + """A GeoJSON field storing a list of Points. + + The data is represented as: + + .. code-block:: js + + { "type" : "MultiPoint" , + "coordinates" : [[x1, y1], [x2, y2]]} + + You can either pass a dict with the full information or a list + to set the value. + + Requires mongodb >= 2.6 + + .. versionadded:: 0.9 + """ + _type = "MultiPoint" + + +class MultiLineStringField(GeoJsonBaseField): + + """A GeoJSON field storing a list of LineStrings. + + The data is represented as: + + .. code-block:: js + + { "type" : "MultiLineString" , + "coordinates" : [[[x1, y1], [x1, y1] ... [xn, yn]], + [[x1, y1], [x1, y1] ... [xn, yn]]]} + + You can either pass a dict with the full information or a list of points. + + Requires mongodb >= 2.6 + + .. versionadded:: 0.9 + """ + _type = "MultiLineString" + + +class MultiPolygonField(GeoJsonBaseField): + + """A GeoJSON field storing list of Polygons. + + The data is represented as: + + .. code-block:: js + + { "type" : "MultiPolygon" , + "coordinates" : [[ + [[x1, y1], [x1, y1] ... [xn, yn]], + [[x1, y1], [x1, y1] ... [xn, yn]] + ], [ + [[x1, y1], [x1, y1] ... [xn, yn]], + [[x1, y1], [x1, y1] ... [xn, yn]] + ] + } + + You can either pass a dict with the full information or a list + of Polygons. + + Requires mongodb >= 2.6 + + .. versionadded:: 0.9 + """ + _type = "MultiPolygon" diff --git a/awx/lib/site-packages/mongoengine/python_support.py b/awx/lib/site-packages/mongoengine/python_support.py new file mode 100644 index 0000000000..2c4df00c2f --- /dev/null +++ b/awx/lib/site-packages/mongoengine/python_support.py @@ -0,0 +1,29 @@ +"""Helper functions and types to aid with Python 2.5 - 3 support.""" + +import sys + +PY3 = sys.version_info[0] == 3 + +if PY3: + import codecs + from io import BytesIO as StringIO + # return s converted to binary. b('test') should be equivalent to b'test' + def b(s): + return codecs.latin_1_encode(s)[0] + + bin_type = bytes + txt_type = str +else: + try: + from cStringIO import StringIO + except ImportError: + from StringIO import StringIO + + # Conversion to binary only necessary in Python 3 + def b(s): + return s + + bin_type = str + txt_type = unicode + +str_types = (bin_type, txt_type) diff --git a/awx/lib/site-packages/mongoengine/queryset/__init__.py b/awx/lib/site-packages/mongoengine/queryset/__init__.py new file mode 100644 index 0000000000..026a7acdd5 --- /dev/null +++ b/awx/lib/site-packages/mongoengine/queryset/__init__.py @@ -0,0 +1,11 @@ +from mongoengine.errors import (DoesNotExist, MultipleObjectsReturned, + InvalidQueryError, OperationError, + NotUniqueError) +from mongoengine.queryset.field_list import * +from mongoengine.queryset.manager import * +from mongoengine.queryset.queryset import * +from mongoengine.queryset.transform import * +from mongoengine.queryset.visitor import * + +__all__ = (field_list.__all__ + manager.__all__ + queryset.__all__ + + transform.__all__ + visitor.__all__) diff --git a/awx/lib/site-packages/mongoengine/queryset/base.py b/awx/lib/site-packages/mongoengine/queryset/base.py new file mode 100644 index 0000000000..7ffb9976f8 --- /dev/null +++ b/awx/lib/site-packages/mongoengine/queryset/base.py @@ -0,0 +1,1750 @@ +from __future__ import absolute_import + +import copy +import itertools +import operator +import pprint +import re +import warnings + +from bson import SON +from bson.code import Code +from bson import json_util +import pymongo +import pymongo.errors +from pymongo.common import validate_read_preference + +from mongoengine import signals +from mongoengine.connection import get_db +from mongoengine.context_managers import switch_db +from mongoengine.common import _import_class +from mongoengine.base.common import get_document +from mongoengine.errors import (OperationError, NotUniqueError, + InvalidQueryError, LookUpError) +from mongoengine.queryset import transform +from mongoengine.queryset.field_list import QueryFieldList +from mongoengine.queryset.visitor import Q, QNode + + +__all__ = ('BaseQuerySet', 'DO_NOTHING', 'NULLIFY', 'CASCADE', 'DENY', 'PULL') + +# Delete rules +DO_NOTHING = 0 +NULLIFY = 1 +CASCADE = 2 +DENY = 3 +PULL = 4 + +RE_TYPE = type(re.compile('')) + + +class BaseQuerySet(object): + + """A set of results returned from a query. Wraps a MongoDB cursor, + providing :class:`~mongoengine.Document` objects as the results. + """ + __dereference = False + _auto_dereference = True + + def __init__(self, document, collection): + self._document = document + self._collection_obj = collection + self._mongo_query = None + self._query_obj = Q() + self._initial_query = {} + self._where_clause = None + self._loaded_fields = QueryFieldList() + self._ordering = None + self._snapshot = False + self._timeout = True + self._class_check = True + self._slave_okay = False + self._read_preference = None + self._iter = False + self._scalar = [] + self._none = False + self._as_pymongo = False + self._as_pymongo_coerce = False + self._search_text = None + + # If inheritance is allowed, only return instances and instances of + # subclasses of the class being used + if document._meta.get('allow_inheritance') is True: + if len(self._document._subclasses) == 1: + self._initial_query = {"_cls": self._document._subclasses[0]} + else: + self._initial_query = { + "_cls": {"$in": self._document._subclasses}} + self._loaded_fields = QueryFieldList(always_include=['_cls']) + self._cursor_obj = None + self._limit = None + self._skip = None + self._hint = -1 # Using -1 as None is a valid value for hint + self.only_fields = [] + self._max_time_ms = None + + def __call__(self, q_obj=None, class_check=True, slave_okay=False, + read_preference=None, **query): + """Filter the selected documents by calling the + :class:`~mongoengine.queryset.QuerySet` with a query. + + :param q_obj: a :class:`~mongoengine.queryset.Q` object to be used in + the query; the :class:`~mongoengine.queryset.QuerySet` is filtered + multiple times with different :class:`~mongoengine.queryset.Q` + objects, only the last one will be used + :param class_check: If set to False bypass class name check when + querying collection + :param slave_okay: if True, allows this query to be run against a + replica secondary. + :params read_preference: if set, overrides connection-level + read_preference from `ReplicaSetConnection`. + :param query: Django-style query keyword arguments + """ + query = Q(**query) + if q_obj: + # make sure proper query object is passed + if not isinstance(q_obj, QNode): + msg = ("Not a query object: %s. " + "Did you intend to use key=value?" % q_obj) + raise InvalidQueryError(msg) + query &= q_obj + + if read_preference is None: + queryset = self.clone() + else: + # Use the clone provided when setting read_preference + queryset = self.read_preference(read_preference) + + queryset._query_obj &= query + queryset._mongo_query = None + queryset._cursor_obj = None + queryset._class_check = class_check + + return queryset + + def __getitem__(self, key): + """Support skip and limit using getitem and slicing syntax. + """ + queryset = self.clone() + + # Slice provided + if isinstance(key, slice): + try: + queryset._cursor_obj = queryset._cursor[key] + queryset._skip, queryset._limit = key.start, key.stop + if key.start and key.stop: + queryset._limit = key.stop - key.start + except IndexError, err: + # PyMongo raises an error if key.start == key.stop, catch it, + # bin it, kill it. + start = key.start or 0 + if start >= 0 and key.stop >= 0 and key.step is None: + if start == key.stop: + queryset.limit(0) + queryset._skip = key.start + queryset._limit = key.stop - start + return queryset + raise err + # Allow further QuerySet modifications to be performed + return queryset + # Integer index provided + elif isinstance(key, int): + if queryset._scalar: + return queryset._get_scalar( + queryset._document._from_son(queryset._cursor[key], + _auto_dereference=self._auto_dereference, + only_fields=self.only_fields)) + + if queryset._as_pymongo: + return queryset._get_as_pymongo(queryset._cursor[key]) + return queryset._document._from_son(queryset._cursor[key], + _auto_dereference=self._auto_dereference, only_fields=self.only_fields) + + raise AttributeError + + def __iter__(self): + raise NotImplementedError + + def _has_data(self): + """ Retrieves whether cursor has any data. """ + + queryset = self.order_by() + return False if queryset.first() is None else True + + def __nonzero__(self): + """ Avoid to open all records in an if stmt in Py2. """ + + return self._has_data() + + def __bool__(self): + """ Avoid to open all records in an if stmt in Py3. """ + + return self._has_data() + + # Core functions + + def all(self): + """Returns all documents.""" + return self.__call__() + + def filter(self, *q_objs, **query): + """An alias of :meth:`~mongoengine.queryset.QuerySet.__call__` + """ + return self.__call__(*q_objs, **query) + + def search_text(self, text, language=None): + """ + Start a text search, using text indexes. + Require: MongoDB server version 2.6+. + + :param language: The language that determines the list of stop words + for the search and the rules for the stemmer and tokenizer. + If not specified, the search uses the default language of the index. + For supported languages, see `Text Search Languages `. + """ + queryset = self.clone() + if queryset._search_text: + raise OperationError( + "It is not possible to use search_text two times.") + + query_kwargs = SON({'$search': text}) + if language: + query_kwargs['$language'] = language + + queryset._query_obj &= Q(__raw__={'$text': query_kwargs}) + queryset._mongo_query = None + queryset._cursor_obj = None + queryset._search_text = text + + return queryset + + def get(self, *q_objs, **query): + """Retrieve the the matching object raising + :class:`~mongoengine.queryset.MultipleObjectsReturned` or + `DocumentName.MultipleObjectsReturned` exception if multiple results + and :class:`~mongoengine.queryset.DoesNotExist` or + `DocumentName.DoesNotExist` if no results are found. + + .. versionadded:: 0.3 + """ + queryset = self.clone() + queryset = queryset.order_by().limit(2) + queryset = queryset.filter(*q_objs, **query) + + try: + result = queryset.next() + except StopIteration: + msg = ("%s matching query does not exist." + % queryset._document._class_name) + raise queryset._document.DoesNotExist(msg) + try: + queryset.next() + except StopIteration: + return result + + queryset.rewind() + message = u'%d items returned, instead of 1' % queryset.count() + raise queryset._document.MultipleObjectsReturned(message) + + def create(self, **kwargs): + """Create new object. Returns the saved object instance. + + .. versionadded:: 0.4 + """ + return self._document(**kwargs).save() + + def get_or_create(self, write_concern=None, auto_save=True, + *q_objs, **query): + """Retrieve unique object or create, if it doesn't exist. Returns a + tuple of ``(object, created)``, where ``object`` is the retrieved or + created object and ``created`` is a boolean specifying whether a new + object was created. Raises + :class:`~mongoengine.queryset.MultipleObjectsReturned` or + `DocumentName.MultipleObjectsReturned` if multiple results are found. + A new document will be created if the document doesn't exists; a + dictionary of default values for the new document may be provided as a + keyword argument called :attr:`defaults`. + + .. note:: This requires two separate operations and therefore a + race condition exists. Because there are no transactions in + mongoDB other approaches should be investigated, to ensure you + don't accidentally duplicate data when using this method. This is + now scheduled to be removed before 1.0 + + :param write_concern: optional extra keyword arguments used if we + have to create a new document. + Passes any write_concern onto :meth:`~mongoengine.Document.save` + + :param auto_save: if the object is to be saved automatically if + not found. + + .. deprecated:: 0.8 + .. versionchanged:: 0.6 - added `auto_save` + .. versionadded:: 0.3 + """ + msg = ("get_or_create is scheduled to be deprecated. The approach is " + "flawed without transactions. Upserts should be preferred.") + warnings.warn(msg, DeprecationWarning) + + defaults = query.get('defaults', {}) + if 'defaults' in query: + del query['defaults'] + + try: + doc = self.get(*q_objs, **query) + return doc, False + except self._document.DoesNotExist: + query.update(defaults) + doc = self._document(**query) + + if auto_save: + doc.save(write_concern=write_concern) + return doc, True + + def first(self): + """Retrieve the first object matching the query. + """ + queryset = self.clone() + try: + result = queryset[0] + except IndexError: + result = None + return result + + def insert(self, doc_or_docs, load_bulk=True, write_concern=None): + """bulk insert documents + + :param docs_or_doc: a document or list of documents to be inserted + :param load_bulk (optional): If True returns the list of document + instances + :param write_concern: Extra keyword arguments are passed down to + :meth:`~pymongo.collection.Collection.insert` + which will be used as options for the resultant + ``getLastError`` command. For example, + ``insert(..., {w: 2, fsync: True})`` will wait until at least + two servers have recorded the write and will force an fsync on + each server being written to. + + By default returns document instances, set ``load_bulk`` to False to + return just ``ObjectIds`` + + .. versionadded:: 0.5 + """ + Document = _import_class('Document') + + if write_concern is None: + write_concern = {} + + docs = doc_or_docs + return_one = False + if isinstance(docs, Document) or issubclass(docs.__class__, Document): + return_one = True + docs = [docs] + + raw = [] + for doc in docs: + if not isinstance(doc, self._document): + msg = ("Some documents inserted aren't instances of %s" + % str(self._document)) + raise OperationError(msg) + if doc.pk and not doc._created: + msg = "Some documents have ObjectIds use doc.update() instead" + raise OperationError(msg) + raw.append(doc.to_mongo()) + + signals.pre_bulk_insert.send(self._document, documents=docs) + try: + ids = self._collection.insert(raw, **write_concern) + except pymongo.errors.DuplicateKeyError, err: + message = 'Could not save document (%s)' + raise NotUniqueError(message % unicode(err)) + except pymongo.errors.OperationFailure, err: + message = 'Could not save document (%s)' + if re.match('^E1100[01] duplicate key', unicode(err)): + # E11000 - duplicate key error index + # E11001 - duplicate key on update + message = u'Tried to save duplicate unique keys (%s)' + raise NotUniqueError(message % unicode(err)) + raise OperationError(message % unicode(err)) + + if not load_bulk: + signals.post_bulk_insert.send( + self._document, documents=docs, loaded=False) + return return_one and ids[0] or ids + + documents = self.in_bulk(ids) + results = [] + for obj_id in ids: + results.append(documents.get(obj_id)) + signals.post_bulk_insert.send( + self._document, documents=results, loaded=True) + return return_one and results[0] or results + + def count(self, with_limit_and_skip=False): + """Count the selected elements in the query. + + :param with_limit_and_skip (optional): take any :meth:`limit` or + :meth:`skip` that has been applied to this cursor into account when + getting the count + """ + if self._limit == 0 and with_limit_and_skip or self._none: + return 0 + return self._cursor.count(with_limit_and_skip=with_limit_and_skip) + + def delete(self, write_concern=None, _from_doc_delete=False): + """Delete the documents matched by the query. + + :param write_concern: Extra keyword arguments are passed down which + will be used as options for the resultant + ``getLastError`` command. For example, + ``save(..., write_concern={w: 2, fsync: True}, ...)`` will + wait until at least two servers have recorded the write and + will force an fsync on the primary server. + :param _from_doc_delete: True when called from document delete therefore + signals will have been triggered so don't loop. + + :returns number of deleted documents + """ + queryset = self.clone() + doc = queryset._document + + if write_concern is None: + write_concern = {} + + # Handle deletes where skips or limits have been applied or + # there is an untriggered delete signal + has_delete_signal = signals.signals_available and ( + signals.pre_delete.has_receivers_for(self._document) or + signals.post_delete.has_receivers_for(self._document)) + + call_document_delete = (queryset._skip or queryset._limit or + has_delete_signal) and not _from_doc_delete + + if call_document_delete: + cnt = 0 + for doc in queryset: + doc.delete(write_concern=write_concern) + cnt += 1 + return cnt + + delete_rules = doc._meta.get('delete_rules') or {} + # Check for DENY rules before actually deleting/nullifying any other + # references + for rule_entry in delete_rules: + document_cls, field_name = rule_entry + if document_cls._meta.get('abstract'): + continue + rule = doc._meta['delete_rules'][rule_entry] + if rule == DENY and document_cls.objects( + **{field_name + '__in': self}).count() > 0: + msg = ("Could not delete document (%s.%s refers to it)" + % (document_cls.__name__, field_name)) + raise OperationError(msg) + + for rule_entry in delete_rules: + document_cls, field_name = rule_entry + if document_cls._meta.get('abstract'): + continue + rule = doc._meta['delete_rules'][rule_entry] + if rule == CASCADE: + ref_q = document_cls.objects(**{field_name + '__in': self}) + ref_q_count = ref_q.count() + if (doc != document_cls and ref_q_count > 0 + or (doc == document_cls and ref_q_count > 0)): + ref_q.delete(write_concern=write_concern) + elif rule == NULLIFY: + document_cls.objects(**{field_name + '__in': self}).update( + write_concern=write_concern, **{'unset__%s' % field_name: 1}) + elif rule == PULL: + document_cls.objects(**{field_name + '__in': self}).update( + write_concern=write_concern, + **{'pull_all__%s' % field_name: self}) + + result = queryset._collection.remove(queryset._query, **write_concern) + return result["n"] + + def update(self, upsert=False, multi=True, write_concern=None, + full_result=False, **update): + """Perform an atomic update on the fields matched by the query. + + :param upsert: Any existing document with that "_id" is overwritten. + :param multi: Update multiple documents. + :param write_concern: Extra keyword arguments are passed down which + will be used as options for the resultant + ``getLastError`` command. For example, + ``save(..., write_concern={w: 2, fsync: True}, ...)`` will + wait until at least two servers have recorded the write and + will force an fsync on the primary server. + :param full_result: Return the full result rather than just the number + updated. + :param update: Django-style update keyword arguments + + .. versionadded:: 0.2 + """ + if not update and not upsert: + raise OperationError("No update parameters, would remove data") + + if write_concern is None: + write_concern = {} + + queryset = self.clone() + query = queryset._query + update = transform.update(queryset._document, **update) + + # If doing an atomic upsert on an inheritable class + # then ensure we add _cls to the update operation + if upsert and '_cls' in query: + if '$set' in update: + update["$set"]["_cls"] = queryset._document._class_name + else: + update["$set"] = {"_cls": queryset._document._class_name} + try: + result = queryset._collection.update(query, update, multi=multi, + upsert=upsert, **write_concern) + if full_result: + return result + elif result: + return result['n'] + except pymongo.errors.DuplicateKeyError, err: + raise NotUniqueError(u'Update failed (%s)' % unicode(err)) + except pymongo.errors.OperationFailure, err: + if unicode(err) == u'multi not coded yet': + message = u'update() method requires MongoDB 1.1.3+' + raise OperationError(message) + raise OperationError(u'Update failed (%s)' % unicode(err)) + + def update_one(self, upsert=False, write_concern=None, **update): + """Perform an atomic update on first field matched by the query. + + :param upsert: Any existing document with that "_id" is overwritten. + :param write_concern: Extra keyword arguments are passed down which + will be used as options for the resultant + ``getLastError`` command. For example, + ``save(..., write_concern={w: 2, fsync: True}, ...)`` will + wait until at least two servers have recorded the write and + will force an fsync on the primary server. + :param update: Django-style update keyword arguments + + .. versionadded:: 0.2 + """ + return self.update( + upsert=upsert, multi=False, write_concern=write_concern, **update) + + def modify(self, upsert=False, full_response=False, remove=False, new=False, **update): + """Update and return the updated document. + + Returns either the document before or after modification based on `new` + parameter. If no documents match the query and `upsert` is false, + returns ``None``. If upserting and `new` is false, returns ``None``. + + If the full_response parameter is ``True``, the return value will be + the entire response object from the server, including the 'ok' and + 'lastErrorObject' fields, rather than just the modified document. + This is useful mainly because the 'lastErrorObject' document holds + information about the command's execution. + + :param upsert: insert if document doesn't exist (default ``False``) + :param full_response: return the entire response object from the + server (default ``False``) + :param remove: remove rather than updating (default ``False``) + :param new: return updated rather than original document + (default ``False``) + :param update: Django-style update keyword arguments + + .. versionadded:: 0.9 + """ + + if remove and new: + raise OperationError("Conflicting parameters: remove and new") + + if not update and not upsert and not remove: + raise OperationError( + "No update parameters, must either update or remove") + + queryset = self.clone() + query = queryset._query + update = transform.update(queryset._document, **update) + sort = queryset._ordering + + try: + result = queryset._collection.find_and_modify( + query, update, upsert=upsert, sort=sort, remove=remove, new=new, + full_response=full_response, **self._cursor_args) + except pymongo.errors.DuplicateKeyError, err: + raise NotUniqueError(u"Update failed (%s)" % err) + except pymongo.errors.OperationFailure, err: + raise OperationError(u"Update failed (%s)" % err) + + if full_response: + if result["value"] is not None: + result["value"] = self._document._from_son(result["value"], only_fields=self.only_fields) + else: + if result is not None: + result = self._document._from_son(result, only_fields=self.only_fields) + + return result + + def with_id(self, object_id): + """Retrieve the object matching the id provided. Uses `object_id` only + and raises InvalidQueryError if a filter has been applied. Returns + `None` if no document exists with that id. + + :param object_id: the value for the id of the document to look up + + .. versionchanged:: 0.6 Raises InvalidQueryError if filter has been set + """ + queryset = self.clone() + if not queryset._query_obj.empty: + msg = "Cannot use a filter whilst using `with_id`" + raise InvalidQueryError(msg) + return queryset.filter(pk=object_id).first() + + def in_bulk(self, object_ids): + """Retrieve a set of documents by their ids. + + :param object_ids: a list or tuple of ``ObjectId``\ s + :rtype: dict of ObjectIds as keys and collection-specific + Document subclasses as values. + + .. versionadded:: 0.3 + """ + doc_map = {} + + docs = self._collection.find({'_id': {'$in': object_ids}}, + **self._cursor_args) + if self._scalar: + for doc in docs: + doc_map[doc['_id']] = self._get_scalar( + self._document._from_son(doc, only_fields=self.only_fields)) + elif self._as_pymongo: + for doc in docs: + doc_map[doc['_id']] = self._get_as_pymongo(doc) + else: + for doc in docs: + doc_map[doc['_id']] = self._document._from_son(doc, + only_fields=self.only_fields, + _auto_dereference=self._auto_dereference) + + return doc_map + + def none(self): + """Helper that just returns a list""" + queryset = self.clone() + queryset._none = True + return queryset + + def no_sub_classes(self): + """ + Only return instances of this document and not any inherited documents + """ + if self._document._meta.get('allow_inheritance') is True: + self._initial_query = {"_cls": self._document._class_name} + + return self + + def using(self, alias): + """This method is for controlling which database the QuerySet will be evaluated against if you are using more than one database. + + :param alias: The database alias + + .. versionadded:: 0.9 + """ + + with switch_db(self._document, alias) as cls: + collection = cls._get_collection() + + return self.clone_into(self.__class__(self._document, collection)) + + def clone(self): + """Creates a copy of the current + :class:`~mongoengine.queryset.QuerySet` + + .. versionadded:: 0.5 + """ + return self.clone_into(self.__class__(self._document, self._collection_obj)) + + def clone_into(self, cls): + """Creates a copy of the current + :class:`~mongoengine.queryset.base.BaseQuerySet` into another child class + """ + if not isinstance(cls, BaseQuerySet): + raise OperationError( + '%s is not a subclass of BaseQuerySet' % cls.__name__) + + copy_props = ('_mongo_query', '_initial_query', '_none', '_query_obj', + '_where_clause', '_loaded_fields', '_ordering', '_snapshot', + '_timeout', '_class_check', '_slave_okay', '_read_preference', + '_iter', '_scalar', '_as_pymongo', '_as_pymongo_coerce', + '_limit', '_skip', '_hint', '_auto_dereference', + '_search_text', 'only_fields', '_max_time_ms') + + for prop in copy_props: + val = getattr(self, prop) + setattr(cls, prop, copy.copy(val)) + + if self._cursor_obj: + cls._cursor_obj = self._cursor_obj.clone() + + return cls + + def select_related(self, max_depth=1): + """Handles dereferencing of :class:`~bson.dbref.DBRef` objects or + :class:`~bson.object_id.ObjectId` a maximum depth in order to cut down + the number queries to mongodb. + + .. versionadded:: 0.5 + """ + # Make select related work the same for querysets + max_depth += 1 + queryset = self.clone() + return queryset._dereference(queryset, max_depth=max_depth) + + def limit(self, n): + """Limit the number of returned documents to `n`. This may also be + achieved using array-slicing syntax (e.g. ``User.objects[:5]``). + + :param n: the maximum number of objects to return + """ + queryset = self.clone() + if n == 0: + queryset._cursor.limit(1) + else: + queryset._cursor.limit(n) + queryset._limit = n + # Return self to allow chaining + return queryset + + def skip(self, n): + """Skip `n` documents before returning the results. This may also be + achieved using array-slicing syntax (e.g. ``User.objects[5:]``). + + :param n: the number of objects to skip before returning results + """ + queryset = self.clone() + queryset._cursor.skip(n) + queryset._skip = n + return queryset + + def hint(self, index=None): + """Added 'hint' support, telling Mongo the proper index to use for the + query. + + Judicious use of hints can greatly improve query performance. When + doing a query on multiple fields (at least one of which is indexed) + pass the indexed field as a hint to the query. + + Hinting will not do anything if the corresponding index does not exist. + The last hint applied to this cursor takes precedence over all others. + + .. versionadded:: 0.5 + """ + queryset = self.clone() + queryset._cursor.hint(index) + queryset._hint = index + return queryset + + def distinct(self, field): + """Return a list of distinct values for a given field. + + :param field: the field to select distinct values from + + .. note:: This is a command and won't take ordering or limit into + account. + + .. versionadded:: 0.4 + .. versionchanged:: 0.5 - Fixed handling references + .. versionchanged:: 0.6 - Improved db_field refrence handling + """ + queryset = self.clone() + try: + field = self._fields_to_dbfields([field]).pop() + finally: + distinct = self._dereference(queryset._cursor.distinct(field), 1, + name=field, instance=self._document) + + doc_field = self._document._fields.get(field.split('.', 1)[0]) + instance = False + # We may need to cast to the correct type eg. ListField(EmbeddedDocumentField) + EmbeddedDocumentField = _import_class('EmbeddedDocumentField') + ListField = _import_class('ListField') + GenericEmbeddedDocumentField = _import_class('GenericEmbeddedDocumentField') + if isinstance(doc_field, ListField): + doc_field = getattr(doc_field, "field", doc_field) + if isinstance(doc_field, (EmbeddedDocumentField, GenericEmbeddedDocumentField)): + instance = getattr(doc_field, "document_type", False) + # handle distinct on subdocuments + if '.' in field: + for field_part in field.split('.')[1:]: + # if looping on embedded document, get the document type instance + if instance and isinstance(doc_field, (EmbeddedDocumentField, GenericEmbeddedDocumentField)): + doc_field = instance + # now get the subdocument + doc_field = getattr(doc_field, field_part, doc_field) + # We may need to cast to the correct type eg. ListField(EmbeddedDocumentField) + if isinstance(doc_field, ListField): + doc_field = getattr(doc_field, "field", doc_field) + if isinstance(doc_field, (EmbeddedDocumentField, GenericEmbeddedDocumentField)): + instance = getattr(doc_field, "document_type", False) + if instance and isinstance(doc_field, (EmbeddedDocumentField, + GenericEmbeddedDocumentField)): + distinct = [instance(**doc) for doc in distinct] + return distinct + + def only(self, *fields): + """Load only a subset of this document's fields. :: + + post = BlogPost.objects(...).only("title", "author.name") + + .. note :: `only()` is chainable and will perform a union :: + So with the following it will fetch both: `title` and `author.name`:: + + post = BlogPost.objects.only("title").only("author.name") + + :func:`~mongoengine.queryset.QuerySet.all_fields` will reset any + field filters. + + :param fields: fields to include + + .. versionadded:: 0.3 + .. versionchanged:: 0.5 - Added subfield support + """ + fields = dict([(f, QueryFieldList.ONLY) for f in fields]) + self.only_fields = fields.keys() + return self.fields(True, **fields) + + def exclude(self, *fields): + """Opposite to .only(), exclude some document's fields. :: + + post = BlogPost.objects(...).exclude("comments") + + .. note :: `exclude()` is chainable and will perform a union :: + So with the following it will exclude both: `title` and `author.name`:: + + post = BlogPost.objects.exclude("title").exclude("author.name") + + :func:`~mongoengine.queryset.QuerySet.all_fields` will reset any + field filters. + + :param fields: fields to exclude + + .. versionadded:: 0.5 + """ + fields = dict([(f, QueryFieldList.EXCLUDE) for f in fields]) + return self.fields(**fields) + + def fields(self, _only_called=False, **kwargs): + """Manipulate how you load this document's fields. Used by `.only()` + and `.exclude()` to manipulate which fields to retrieve. Fields also + allows for a greater level of control for example: + + Retrieving a Subrange of Array Elements: + + You can use the $slice operator to retrieve a subrange of elements in + an array. For example to get the first 5 comments:: + + post = BlogPost.objects(...).fields(slice__comments=5) + + :param kwargs: A dictionary identifying what to include + + .. versionadded:: 0.5 + """ + + # Check for an operator and transform to mongo-style if there is + operators = ["slice"] + cleaned_fields = [] + for key, value in kwargs.items(): + parts = key.split('__') + op = None + if parts[0] in operators: + op = parts.pop(0) + value = {'$' + op: value} + key = '.'.join(parts) + cleaned_fields.append((key, value)) + + fields = sorted(cleaned_fields, key=operator.itemgetter(1)) + queryset = self.clone() + for value, group in itertools.groupby(fields, lambda x: x[1]): + fields = [field for field, value in group] + fields = queryset._fields_to_dbfields(fields) + queryset._loaded_fields += QueryFieldList( + fields, value=value, _only_called=_only_called) + + return queryset + + def all_fields(self): + """Include all fields. Reset all previously calls of .only() or + .exclude(). :: + + post = BlogPost.objects.exclude("comments").all_fields() + + .. versionadded:: 0.5 + """ + queryset = self.clone() + queryset._loaded_fields = QueryFieldList( + always_include=queryset._loaded_fields.always_include) + return queryset + + def order_by(self, *keys): + """Order the :class:`~mongoengine.queryset.QuerySet` by the keys. The + order may be specified by prepending each of the keys by a + or a -. + Ascending order is assumed. + + :param keys: fields to order the query results by; keys may be + prefixed with **+** or **-** to determine the ordering direction + """ + queryset = self.clone() + queryset._ordering = queryset._get_order_by(keys) + return queryset + + def explain(self, format=False): + """Return an explain plan record for the + :class:`~mongoengine.queryset.QuerySet`\ 's cursor. + + :param format: format the plan before returning it + """ + plan = self._cursor.explain() + if format: + plan = pprint.pformat(plan) + return plan + + def snapshot(self, enabled): + """Enable or disable snapshot mode when querying. + + :param enabled: whether or not snapshot mode is enabled + + ..versionchanged:: 0.5 - made chainable + """ + queryset = self.clone() + queryset._snapshot = enabled + return queryset + + def timeout(self, enabled): + """Enable or disable the default mongod timeout when querying. + + :param enabled: whether or not the timeout is used + + ..versionchanged:: 0.5 - made chainable + """ + queryset = self.clone() + queryset._timeout = enabled + return queryset + + def slave_okay(self, enabled): + """Enable or disable the slave_okay when querying. + + :param enabled: whether or not the slave_okay is enabled + """ + queryset = self.clone() + queryset._slave_okay = enabled + return queryset + + def read_preference(self, read_preference): + """Change the read_preference when querying. + + :param read_preference: override ReplicaSetConnection-level + preference. + """ + validate_read_preference('read_preference', read_preference) + queryset = self.clone() + queryset._read_preference = read_preference + return queryset + + def scalar(self, *fields): + """Instead of returning Document instances, return either a specific + value or a tuple of values in order. + + Can be used along with + :func:`~mongoengine.queryset.QuerySet.no_dereference` to turn off + dereferencing. + + .. note:: This effects all results and can be unset by calling + ``scalar`` without arguments. Calls ``only`` automatically. + + :param fields: One or more fields to return instead of a Document. + """ + queryset = self.clone() + queryset._scalar = list(fields) + + if fields: + queryset = queryset.only(*fields) + else: + queryset = queryset.all_fields() + + return queryset + + def values_list(self, *fields): + """An alias for scalar""" + return self.scalar(*fields) + + def as_pymongo(self, coerce_types=False): + """Instead of returning Document instances, return raw values from + pymongo. + + :param coerce_type: Field types (if applicable) would be use to + coerce types. + """ + queryset = self.clone() + queryset._as_pymongo = True + queryset._as_pymongo_coerce = coerce_types + return queryset + + def max_time_ms(self, ms): + """Wait `ms` milliseconds before killing the query on the server + + :param ms: the number of milliseconds before killing the query on the server + """ + return self._chainable_method("max_time_ms", ms) + + # JSON Helpers + + def to_json(self, *args, **kwargs): + """Converts a queryset to JSON""" + return json_util.dumps(self.as_pymongo(), *args, **kwargs) + + def from_json(self, json_data): + """Converts json data to unsaved objects""" + son_data = json_util.loads(json_data) + return [self._document._from_son(data, only_fields=self.only_fields) for data in son_data] + + def aggregate(self, *pipeline, **kwargs): + """ + Perform a aggregate function based in your queryset params + :param pipeline: list of aggregation commands,\ + see: http://docs.mongodb.org/manual/core/aggregation-pipeline/ + + .. versionadded:: 0.9 + """ + initial_pipeline = [] + + if self._query: + initial_pipeline.append({'$match': self._query}) + + if self._ordering: + initial_pipeline.append({'$sort': dict(self._ordering)}) + + if self._limit is not None: + initial_pipeline.append({'$limit': self._limit}) + + if self._skip is not None: + initial_pipeline.append({'$skip': self._skip}) + + pipeline = initial_pipeline + list(pipeline) + + return self._collection.aggregate(pipeline, cursor={}, **kwargs) + + # JS functionality + def map_reduce(self, map_f, reduce_f, output, finalize_f=None, limit=None, + scope=None): + """Perform a map/reduce query using the current query spec + and ordering. While ``map_reduce`` respects ``QuerySet`` chaining, + it must be the last call made, as it does not return a maleable + ``QuerySet``. + + See the :meth:`~mongoengine.tests.QuerySetTest.test_map_reduce` + and :meth:`~mongoengine.tests.QuerySetTest.test_map_advanced` + tests in ``tests.queryset.QuerySetTest`` for usage examples. + + :param map_f: map function, as :class:`~bson.code.Code` or string + :param reduce_f: reduce function, as + :class:`~bson.code.Code` or string + :param output: output collection name, if set to 'inline' will try to + use :class:`~pymongo.collection.Collection.inline_map_reduce` + This can also be a dictionary containing output options + see: http://docs.mongodb.org/manual/reference/command/mapReduce/#dbcmd.mapReduce + :param finalize_f: finalize function, an optional function that + performs any post-reduction processing. + :param scope: values to insert into map/reduce global scope. Optional. + :param limit: number of objects from current query to provide + to map/reduce method + + Returns an iterator yielding + :class:`~mongoengine.document.MapReduceDocument`. + + .. note:: + + Map/Reduce changed in server version **>= 1.7.4**. The PyMongo + :meth:`~pymongo.collection.Collection.map_reduce` helper requires + PyMongo version **>= 1.11**. + + .. versionchanged:: 0.5 + - removed ``keep_temp`` keyword argument, which was only relevant + for MongoDB server versions older than 1.7.4 + + .. versionadded:: 0.3 + """ + queryset = self.clone() + + MapReduceDocument = _import_class('MapReduceDocument') + + if not hasattr(self._collection, "map_reduce"): + raise NotImplementedError("Requires MongoDB >= 1.7.1") + + map_f_scope = {} + if isinstance(map_f, Code): + map_f_scope = map_f.scope + map_f = unicode(map_f) + map_f = Code(queryset._sub_js_fields(map_f), map_f_scope) + + reduce_f_scope = {} + if isinstance(reduce_f, Code): + reduce_f_scope = reduce_f.scope + reduce_f = unicode(reduce_f) + reduce_f_code = queryset._sub_js_fields(reduce_f) + reduce_f = Code(reduce_f_code, reduce_f_scope) + + mr_args = {'query': queryset._query} + + if finalize_f: + finalize_f_scope = {} + if isinstance(finalize_f, Code): + finalize_f_scope = finalize_f.scope + finalize_f = unicode(finalize_f) + finalize_f_code = queryset._sub_js_fields(finalize_f) + finalize_f = Code(finalize_f_code, finalize_f_scope) + mr_args['finalize'] = finalize_f + + if scope: + mr_args['scope'] = scope + + if limit: + mr_args['limit'] = limit + + if output == 'inline' and not queryset._ordering: + map_reduce_function = 'inline_map_reduce' + else: + map_reduce_function = 'map_reduce' + + if isinstance(output, basestring): + mr_args['out'] = output + + elif isinstance(output, dict): + ordered_output = [] + + for part in ('replace', 'merge', 'reduce'): + value = output.get(part) + if value: + ordered_output.append((part, value)) + break + + else: + raise OperationError("actionData not specified for output") + + db_alias = output.get('db_alias') + remaing_args = ['db', 'sharded', 'nonAtomic'] + + if db_alias: + ordered_output.append(('db', get_db(db_alias).name)) + del remaing_args[0] + + for part in remaing_args: + value = output.get(part) + if value: + ordered_output.append((part, value)) + + mr_args['out'] = SON(ordered_output) + + results = getattr(queryset._collection, map_reduce_function)( + map_f, reduce_f, **mr_args) + + if map_reduce_function == 'map_reduce': + results = results.find() + + if queryset._ordering: + results = results.sort(queryset._ordering) + + for doc in results: + yield MapReduceDocument(queryset._document, queryset._collection, + doc['_id'], doc['value']) + + def exec_js(self, code, *fields, **options): + """Execute a Javascript function on the server. A list of fields may be + provided, which will be translated to their correct names and supplied + as the arguments to the function. A few extra variables are added to + the function's scope: ``collection``, which is the name of the + collection in use; ``query``, which is an object representing the + current query; and ``options``, which is an object containing any + options specified as keyword arguments. + + As fields in MongoEngine may use different names in the database (set + using the :attr:`db_field` keyword argument to a :class:`Field` + constructor), a mechanism exists for replacing MongoEngine field names + with the database field names in Javascript code. When accessing a + field, use square-bracket notation, and prefix the MongoEngine field + name with a tilde (~). + + :param code: a string of Javascript code to execute + :param fields: fields that you will be using in your function, which + will be passed in to your function as arguments + :param options: options that you want available to the function + (accessed in Javascript through the ``options`` object) + """ + queryset = self.clone() + + code = queryset._sub_js_fields(code) + + fields = [queryset._document._translate_field_name(f) for f in fields] + collection = queryset._document._get_collection_name() + + scope = { + 'collection': collection, + 'options': options or {}, + } + + query = queryset._query + if queryset._where_clause: + query['$where'] = queryset._where_clause + + scope['query'] = query + code = Code(code, scope=scope) + + db = queryset._document._get_db() + return db.eval(code, *fields) + + def where(self, where_clause): + """Filter ``QuerySet`` results with a ``$where`` clause (a Javascript + expression). Performs automatic field name substitution like + :meth:`mongoengine.queryset.Queryset.exec_js`. + + .. note:: When using this mode of query, the database will call your + function, or evaluate your predicate clause, for each object + in the collection. + + .. versionadded:: 0.5 + """ + queryset = self.clone() + where_clause = queryset._sub_js_fields(where_clause) + queryset._where_clause = where_clause + return queryset + + def sum(self, field): + """Sum over the values of the specified field. + + :param field: the field to sum over; use dot-notation to refer to + embedded document fields + + .. versionchanged:: 0.5 - updated to map_reduce as db.eval doesnt work + with sharding. + """ + map_func = """ + function() { + var path = '{{~%(field)s}}'.split('.'), + field = this; + + for (p in path) { + if (typeof field != 'undefined') + field = field[path[p]]; + else + break; + } + + if (field && field.constructor == Array) { + field.forEach(function(item) { + emit(1, item||0); + }); + } else if (typeof field != 'undefined') { + emit(1, field||0); + } + } + """ % dict(field=field) + + reduce_func = Code(""" + function(key, values) { + var sum = 0; + for (var i in values) { + sum += values[i]; + } + return sum; + } + """) + + for result in self.map_reduce(map_func, reduce_func, output='inline'): + return result.value + else: + return 0 + + def average(self, field): + """Average over the values of the specified field. + + :param field: the field to average over; use dot-notation to refer to + embedded document fields + + .. versionchanged:: 0.5 - updated to map_reduce as db.eval doesnt work + with sharding. + """ + map_func = """ + function() { + var path = '{{~%(field)s}}'.split('.'), + field = this; + + for (p in path) { + if (typeof field != 'undefined') + field = field[path[p]]; + else + break; + } + + if (field && field.constructor == Array) { + field.forEach(function(item) { + emit(1, {t: item||0, c: 1}); + }); + } else if (typeof field != 'undefined') { + emit(1, {t: field||0, c: 1}); + } + } + """ % dict(field=field) + + reduce_func = Code(""" + function(key, values) { + var out = {t: 0, c: 0}; + for (var i in values) { + var value = values[i]; + out.t += value.t; + out.c += value.c; + } + return out; + } + """) + + finalize_func = Code(""" + function(key, value) { + return value.t / value.c; + } + """) + + for result in self.map_reduce(map_func, reduce_func, + finalize_f=finalize_func, output='inline'): + return result.value + else: + return 0 + + def item_frequencies(self, field, normalize=False, map_reduce=True): + """Returns a dictionary of all items present in a field across + the whole queried set of documents, and their corresponding frequency. + This is useful for generating tag clouds, or searching documents. + + .. note:: + + Can only do direct simple mappings and cannot map across + :class:`~mongoengine.fields.ReferenceField` or + :class:`~mongoengine.fields.GenericReferenceField` for more complex + counting a manual map reduce call would is required. + + If the field is a :class:`~mongoengine.fields.ListField`, the items within + each list will be counted individually. + + :param field: the field to use + :param normalize: normalize the results so they add to 1.0 + :param map_reduce: Use map_reduce over exec_js + + .. versionchanged:: 0.5 defaults to map_reduce and can handle embedded + document lookups + """ + if map_reduce: + return self._item_frequencies_map_reduce(field, + normalize=normalize) + return self._item_frequencies_exec_js(field, normalize=normalize) + + # Iterator helpers + + def next(self): + """Wrap the result in a :class:`~mongoengine.Document` object. + """ + if self._limit == 0 or self._none: + raise StopIteration + + raw_doc = self._cursor.next() + if self._as_pymongo: + return self._get_as_pymongo(raw_doc) + doc = self._document._from_son(raw_doc, + _auto_dereference=self._auto_dereference, only_fields=self.only_fields) + + if self._scalar: + return self._get_scalar(doc) + + return doc + + def rewind(self): + """Rewind the cursor to its unevaluated state. + + + .. versionadded:: 0.3 + """ + self._iter = False + self._cursor.rewind() + + # Properties + + @property + def _collection(self): + """Property that returns the collection object. This allows us to + perform operations only if the collection is accessed. + """ + return self._collection_obj + + @property + def _cursor_args(self): + cursor_args = { + 'snapshot': self._snapshot, + 'timeout': self._timeout + } + if self._read_preference is not None: + cursor_args['read_preference'] = self._read_preference + else: + cursor_args['slave_okay'] = self._slave_okay + if self._loaded_fields: + cursor_args['fields'] = self._loaded_fields.as_dict() + + if self._search_text: + if 'fields' not in cursor_args: + cursor_args['fields'] = {} + + cursor_args['fields']['_text_score'] = {'$meta': "textScore"} + + return cursor_args + + @property + def _cursor(self): + if self._cursor_obj is None: + + self._cursor_obj = self._collection.find(self._query, + **self._cursor_args) + # Apply where clauses to cursor + if self._where_clause: + where_clause = self._sub_js_fields(self._where_clause) + self._cursor_obj.where(where_clause) + + if self._ordering: + # Apply query ordering + self._cursor_obj.sort(self._ordering) + elif self._ordering is None and self._document._meta['ordering']: + # Otherwise, apply the ordering from the document model, unless + # it's been explicitly cleared via order_by with no arguments + order = self._get_order_by(self._document._meta['ordering']) + self._cursor_obj.sort(order) + + if self._limit is not None: + self._cursor_obj.limit(self._limit) + + if self._skip is not None: + self._cursor_obj.skip(self._skip) + + if self._hint != -1: + self._cursor_obj.hint(self._hint) + + return self._cursor_obj + + def __deepcopy__(self, memo): + """Essential for chained queries with ReferenceFields involved""" + return self.clone() + + @property + def _query(self): + if self._mongo_query is None: + self._mongo_query = self._query_obj.to_query(self._document) + if self._class_check and self._initial_query: + if "_cls" in self._mongo_query: + self._mongo_query = {"$and": [self._initial_query, self._mongo_query]} + else: + self._mongo_query.update(self._initial_query) + return self._mongo_query + + @property + def _dereference(self): + if not self.__dereference: + self.__dereference = _import_class('DeReference')() + return self.__dereference + + def no_dereference(self): + """Turn off any dereferencing for the results of this queryset. + """ + queryset = self.clone() + queryset._auto_dereference = False + return queryset + + # Helper Functions + + def _item_frequencies_map_reduce(self, field, normalize=False): + map_func = """ + function() { + var path = '{{~%(field)s}}'.split('.'); + var field = this; + + for (p in path) { + if (typeof field != 'undefined') + field = field[path[p]]; + else + break; + } + if (field && field.constructor == Array) { + field.forEach(function(item) { + emit(item, 1); + }); + } else if (typeof field != 'undefined') { + emit(field, 1); + } else { + emit(null, 1); + } + } + """ % dict(field=field) + reduce_func = """ + function(key, values) { + var total = 0; + var valuesSize = values.length; + for (var i=0; i < valuesSize; i++) { + total += parseInt(values[i], 10); + } + return total; + } + """ + values = self.map_reduce(map_func, reduce_func, 'inline') + frequencies = {} + for f in values: + key = f.key + if isinstance(key, float): + if int(key) == key: + key = int(key) + frequencies[key] = int(f.value) + + if normalize: + count = sum(frequencies.values()) + frequencies = dict([(k, float(v) / count) + for k, v in frequencies.items()]) + + return frequencies + + def _item_frequencies_exec_js(self, field, normalize=False): + """Uses exec_js to execute""" + freq_func = """ + function(path) { + var path = path.split('.'); + + var total = 0.0; + db[collection].find(query).forEach(function(doc) { + var field = doc; + for (p in path) { + if (field) + field = field[path[p]]; + else + break; + } + if (field && field.constructor == Array) { + total += field.length; + } else { + total++; + } + }); + + var frequencies = {}; + var types = {}; + var inc = 1.0; + + db[collection].find(query).forEach(function(doc) { + field = doc; + for (p in path) { + if (field) + field = field[path[p]]; + else + break; + } + if (field && field.constructor == Array) { + field.forEach(function(item) { + frequencies[item] = inc + (isNaN(frequencies[item]) ? 0: frequencies[item]); + }); + } else { + var item = field; + types[item] = item; + frequencies[item] = inc + (isNaN(frequencies[item]) ? 0: frequencies[item]); + } + }); + return [total, frequencies, types]; + } + """ + total, data, types = self.exec_js(freq_func, field) + values = dict([(types.get(k), int(v)) for k, v in data.iteritems()]) + + if normalize: + values = dict([(k, float(v) / total) for k, v in values.items()]) + + frequencies = {} + for k, v in values.iteritems(): + if isinstance(k, float): + if int(k) == k: + k = int(k) + + frequencies[k] = v + + return frequencies + + def _fields_to_dbfields(self, fields, subdoc=False): + """Translate fields paths to its db equivalents""" + ret = [] + subclasses = [] + document = self._document + if document._meta['allow_inheritance']: + subclasses = [get_document(x) + for x in document._subclasses][1:] + for field in fields: + try: + field = ".".join(f.db_field for f in + document._lookup_field(field.split('.'))) + ret.append(field) + except LookUpError, err: + found = False + for subdoc in subclasses: + try: + subfield = ".".join(f.db_field for f in + subdoc._lookup_field(field.split('.'))) + ret.append(subfield) + found = True + break + except LookUpError, e: + pass + + if not found: + raise err + return ret + + def _get_order_by(self, keys): + """Creates a list of order by fields + """ + key_list = [] + for key in keys: + if not key: + continue + + if key == '$text_score': + key_list.append(('_text_score', {'$meta': "textScore"})) + continue + + direction = pymongo.ASCENDING + if key[0] == '-': + direction = pymongo.DESCENDING + if key[0] in ('-', '+'): + key = key[1:] + key = key.replace('__', '.') + try: + key = self._document._translate_field_name(key) + except: + pass + key_list.append((key, direction)) + + if self._cursor_obj and key_list: + self._cursor_obj.sort(key_list) + return key_list + + def _get_scalar(self, doc): + + def lookup(obj, name): + chunks = name.split('__') + for chunk in chunks: + obj = getattr(obj, chunk) + return obj + + data = [lookup(doc, n) for n in self._scalar] + if len(data) == 1: + return data[0] + + return tuple(data) + + def _get_as_pymongo(self, row): + # Extract which fields paths we should follow if .fields(...) was + # used. If not, handle all fields. + if not getattr(self, '__as_pymongo_fields', None): + self.__as_pymongo_fields = [] + + for field in self._loaded_fields.fields - set(['_cls']): + self.__as_pymongo_fields.append(field) + while '.' in field: + field, _ = field.rsplit('.', 1) + self.__as_pymongo_fields.append(field) + + all_fields = not self.__as_pymongo_fields + + def clean(data, path=None): + path = path or '' + + if isinstance(data, dict): + new_data = {} + for key, value in data.iteritems(): + new_path = '%s.%s' % (path, key) if path else key + + if all_fields: + include_field = True + elif self._loaded_fields.value == QueryFieldList.ONLY: + include_field = new_path in self.__as_pymongo_fields + else: + include_field = new_path not in self.__as_pymongo_fields + + if include_field: + new_data[key] = clean(value, path=new_path) + data = new_data + elif isinstance(data, list): + data = [clean(d, path=path) for d in data] + else: + if self._as_pymongo_coerce: + # If we need to coerce types, we need to determine the + # type of this field and use the corresponding + # .to_python(...) + from mongoengine.fields import EmbeddedDocumentField + + obj = self._document + for chunk in path.split('.'): + obj = getattr(obj, chunk, None) + if obj is None: + break + elif isinstance(obj, EmbeddedDocumentField): + obj = obj.document_type + if obj and data is not None: + data = obj.to_python(data) + return data + + return clean(row) + + def _sub_js_fields(self, code): + """When fields are specified with [~fieldname] syntax, where + *fieldname* is the Python name of a field, *fieldname* will be + substituted for the MongoDB name of the field (specified using the + :attr:`name` keyword argument in a field's constructor). + """ + + def field_sub(match): + # Extract just the field name, and look up the field objects + field_name = match.group(1).split('.') + fields = self._document._lookup_field(field_name) + # Substitute the correct name for the field into the javascript + return u'["%s"]' % fields[-1].db_field + + def field_path_sub(match): + # Extract just the field name, and look up the field objects + field_name = match.group(1).split('.') + fields = self._document._lookup_field(field_name) + # Substitute the correct name for the field into the javascript + return ".".join([f.db_field for f in fields]) + + code = re.sub(u'\[\s*~([A-z_][A-z_0-9.]+?)\s*\]', field_sub, code) + code = re.sub(u'\{\{\s*~([A-z_][A-z_0-9.]+?)\s*\}\}', field_path_sub, + code) + return code + + def _chainable_method(self, method_name, val): + queryset = self.clone() + method = getattr(queryset._cursor, method_name) + method(val) + setattr(queryset, "_" + method_name, val) + return queryset + + # Deprecated + def ensure_index(self, **kwargs): + """Deprecated use :func:`Document.ensure_index`""" + msg = ("Doc.objects()._ensure_index() is deprecated. " + "Use Doc.ensure_index() instead.") + warnings.warn(msg, DeprecationWarning) + self._document.__class__.ensure_index(**kwargs) + return self + + def _ensure_indexes(self): + """Deprecated use :func:`~Document.ensure_indexes`""" + msg = ("Doc.objects()._ensure_indexes() is deprecated. " + "Use Doc.ensure_indexes() instead.") + warnings.warn(msg, DeprecationWarning) + self._document.__class__.ensure_indexes() diff --git a/awx/lib/site-packages/mongoengine/queryset/field_list.py b/awx/lib/site-packages/mongoengine/queryset/field_list.py new file mode 100644 index 0000000000..140a71e051 --- /dev/null +++ b/awx/lib/site-packages/mongoengine/queryset/field_list.py @@ -0,0 +1,86 @@ + +__all__ = ('QueryFieldList',) + + +class QueryFieldList(object): + """Object that handles combinations of .only() and .exclude() calls""" + ONLY = 1 + EXCLUDE = 0 + + def __init__(self, fields=None, value=ONLY, always_include=None, _only_called=False): + """The QueryFieldList builder + + :param fields: A list of fields used in `.only()` or `.exclude()` + :param value: How to handle the fields; either `ONLY` or `EXCLUDE` + :param always_include: Any fields to always_include eg `_cls` + :param _only_called: Has `.only()` been called? If so its a set of fields + otherwise it performs a union. + """ + self.value = value + self.fields = set(fields or []) + self.always_include = set(always_include or []) + self._id = None + self._only_called = _only_called + self.slice = {} + + def __add__(self, f): + if isinstance(f.value, dict): + for field in f.fields: + self.slice[field] = f.value + if not self.fields: + self.fields = f.fields + elif not self.fields: + self.fields = f.fields + self.value = f.value + self.slice = {} + elif self.value is self.ONLY and f.value is self.ONLY: + self._clean_slice() + if self._only_called: + self.fields = self.fields.union(f.fields) + else: + self.fields = f.fields + elif self.value is self.EXCLUDE and f.value is self.EXCLUDE: + self.fields = self.fields.union(f.fields) + self._clean_slice() + elif self.value is self.ONLY and f.value is self.EXCLUDE: + self.fields -= f.fields + self._clean_slice() + elif self.value is self.EXCLUDE and f.value is self.ONLY: + self.value = self.ONLY + self.fields = f.fields - self.fields + self._clean_slice() + + if '_id' in f.fields: + self._id = f.value + + if self.always_include: + if self.value is self.ONLY and self.fields: + if sorted(self.slice.keys()) != sorted(self.fields): + self.fields = self.fields.union(self.always_include) + else: + self.fields -= self.always_include + + if getattr(f, '_only_called', False): + self._only_called = True + return self + + def __nonzero__(self): + return bool(self.fields) + + def as_dict(self): + field_list = dict((field, self.value) for field in self.fields) + if self.slice: + field_list.update(self.slice) + if self._id is not None: + field_list['_id'] = self._id + return field_list + + def reset(self): + self.fields = set([]) + self.slice = {} + self.value = self.ONLY + + def _clean_slice(self): + if self.slice: + for field in set(self.slice.keys()) - self.fields: + del self.slice[field] diff --git a/awx/lib/site-packages/mongoengine/queryset/manager.py b/awx/lib/site-packages/mongoengine/queryset/manager.py new file mode 100644 index 0000000000..47c2143dac --- /dev/null +++ b/awx/lib/site-packages/mongoengine/queryset/manager.py @@ -0,0 +1,57 @@ +from functools import partial +from mongoengine.queryset.queryset import QuerySet + +__all__ = ('queryset_manager', 'QuerySetManager') + + +class QuerySetManager(object): + """ + The default QuerySet Manager. + + Custom QuerySet Manager functions can extend this class and users can + add extra queryset functionality. Any custom manager methods must accept a + :class:`~mongoengine.Document` class as its first argument, and a + :class:`~mongoengine.queryset.QuerySet` as its second argument. + + The method function should return a :class:`~mongoengine.queryset.QuerySet` + , probably the same one that was passed in, but modified in some way. + """ + + get_queryset = None + default = QuerySet + + def __init__(self, queryset_func=None): + if queryset_func: + self.get_queryset = queryset_func + + def __get__(self, instance, owner): + """Descriptor for instantiating a new QuerySet object when + Document.objects is accessed. + """ + if instance is not None: + # Document class being used rather than a document object + return self + + # owner is the document that contains the QuerySetManager + queryset_class = owner._meta.get('queryset_class', self.default) + queryset = queryset_class(owner, owner._get_collection()) + if self.get_queryset: + arg_count = self.get_queryset.func_code.co_argcount + if arg_count == 1: + queryset = self.get_queryset(queryset) + elif arg_count == 2: + queryset = self.get_queryset(owner, queryset) + else: + queryset = partial(self.get_queryset, owner, queryset) + return queryset + + +def queryset_manager(func): + """Decorator that allows you to define custom QuerySet managers on + :class:`~mongoengine.Document` classes. The manager must be a function that + accepts a :class:`~mongoengine.Document` class as its first argument, and a + :class:`~mongoengine.queryset.QuerySet` as its second argument. The method + function should return a :class:`~mongoengine.queryset.QuerySet`, probably + the same one that was passed in, but modified in some way. + """ + return QuerySetManager(func) diff --git a/awx/lib/site-packages/mongoengine/queryset/queryset.py b/awx/lib/site-packages/mongoengine/queryset/queryset.py new file mode 100644 index 0000000000..e8bd66ae0a --- /dev/null +++ b/awx/lib/site-packages/mongoengine/queryset/queryset.py @@ -0,0 +1,164 @@ +from mongoengine.errors import OperationError +from mongoengine.queryset.base import (BaseQuerySet, DO_NOTHING, NULLIFY, + CASCADE, DENY, PULL) + +__all__ = ('QuerySet', 'QuerySetNoCache', 'DO_NOTHING', 'NULLIFY', 'CASCADE', + 'DENY', 'PULL') + +# The maximum number of items to display in a QuerySet.__repr__ +REPR_OUTPUT_SIZE = 20 +ITER_CHUNK_SIZE = 100 + + +class QuerySet(BaseQuerySet): + """The default queryset, that builds queries and handles a set of results + returned from a query. + + Wraps a MongoDB cursor, providing :class:`~mongoengine.Document` objects as + the results. + """ + + _has_more = True + _len = None + _result_cache = None + + def __iter__(self): + """Iteration utilises a results cache which iterates the cursor + in batches of ``ITER_CHUNK_SIZE``. + + If ``self._has_more`` the cursor hasn't been exhausted so cache then + batch. Otherwise iterate the result_cache. + """ + self._iter = True + if self._has_more: + return self._iter_results() + + # iterating over the cache. + return iter(self._result_cache) + + def __len__(self): + """Since __len__ is called quite frequently (for example, as part of + list(qs) we populate the result cache and cache the length. + """ + if self._len is not None: + return self._len + if self._has_more: + # populate the cache + list(self._iter_results()) + + self._len = len(self._result_cache) + return self._len + + def __repr__(self): + """Provides the string representation of the QuerySet + """ + if self._iter: + return '.. queryset mid-iteration ..' + + self._populate_cache() + data = self._result_cache[:REPR_OUTPUT_SIZE + 1] + if len(data) > REPR_OUTPUT_SIZE: + data[-1] = "...(remaining elements truncated)..." + return repr(data) + + + def _iter_results(self): + """A generator for iterating over the result cache. + + Also populates the cache if there are more possible results to yield. + Raises StopIteration when there are no more results""" + if self._result_cache is None: + self._result_cache = [] + pos = 0 + while True: + upper = len(self._result_cache) + while pos < upper: + yield self._result_cache[pos] + pos = pos + 1 + if not self._has_more: + raise StopIteration + if len(self._result_cache) <= pos: + self._populate_cache() + + def _populate_cache(self): + """ + Populates the result cache with ``ITER_CHUNK_SIZE`` more entries + (until the cursor is exhausted). + """ + if self._result_cache is None: + self._result_cache = [] + if self._has_more: + try: + for i in xrange(ITER_CHUNK_SIZE): + self._result_cache.append(self.next()) + except StopIteration: + self._has_more = False + + def count(self, with_limit_and_skip=False): + """Count the selected elements in the query. + + :param with_limit_and_skip (optional): take any :meth:`limit` or + :meth:`skip` that has been applied to this cursor into account when + getting the count + """ + if with_limit_and_skip is False: + return super(QuerySet, self).count(with_limit_and_skip) + + if self._len is None: + self._len = super(QuerySet, self).count(with_limit_and_skip) + + return self._len + + def no_cache(self): + """Convert to a non_caching queryset + + .. versionadded:: 0.8.3 Convert to non caching queryset + """ + if self._result_cache is not None: + raise OperationError("QuerySet already cached") + return self.clone_into(QuerySetNoCache(self._document, self._collection)) + + +class QuerySetNoCache(BaseQuerySet): + """A non caching QuerySet""" + + def cache(self): + """Convert to a caching queryset + + .. versionadded:: 0.8.3 Convert to caching queryset + """ + return self.clone_into(QuerySet(self._document, self._collection)) + + def __repr__(self): + """Provides the string representation of the QuerySet + + .. versionchanged:: 0.6.13 Now doesnt modify the cursor + """ + if self._iter: + return '.. queryset mid-iteration ..' + + data = [] + for i in xrange(REPR_OUTPUT_SIZE + 1): + try: + data.append(self.next()) + except StopIteration: + break + if len(data) > REPR_OUTPUT_SIZE: + data[-1] = "...(remaining elements truncated)..." + + self.rewind() + return repr(data) + + def __iter__(self): + queryset = self + if queryset._iter: + queryset = self.clone() + queryset.rewind() + return queryset + + +class QuerySetNoDeRef(QuerySet): + """Special no_dereference QuerySet""" + + def __dereference(items, max_depth=1, instance=None, name=None): + return items \ No newline at end of file diff --git a/awx/lib/site-packages/mongoengine/queryset/transform.py b/awx/lib/site-packages/mongoengine/queryset/transform.py new file mode 100644 index 0000000000..03a09dc516 --- /dev/null +++ b/awx/lib/site-packages/mongoengine/queryset/transform.py @@ -0,0 +1,372 @@ +from collections import defaultdict + +import pymongo +from bson import SON + +from mongoengine.connection import get_connection +from mongoengine.common import _import_class +from mongoengine.errors import InvalidQueryError, LookUpError + +__all__ = ('query', 'update') + + +COMPARISON_OPERATORS = ('ne', 'gt', 'gte', 'lt', 'lte', 'in', 'nin', 'mod', + 'all', 'size', 'exists', 'not', 'elemMatch', 'type') +GEO_OPERATORS = ('within_distance', 'within_spherical_distance', + 'within_box', 'within_polygon', 'near', 'near_sphere', + 'max_distance', 'geo_within', 'geo_within_box', + 'geo_within_polygon', 'geo_within_center', + 'geo_within_sphere', 'geo_intersects') +STRING_OPERATORS = ('contains', 'icontains', 'startswith', + 'istartswith', 'endswith', 'iendswith', + 'exact', 'iexact') +CUSTOM_OPERATORS = ('match',) +MATCH_OPERATORS = (COMPARISON_OPERATORS + GEO_OPERATORS + + STRING_OPERATORS + CUSTOM_OPERATORS) + +UPDATE_OPERATORS = ('set', 'unset', 'inc', 'dec', 'pop', 'push', + 'push_all', 'pull', 'pull_all', 'add_to_set', + 'set_on_insert', 'min', 'max') + + +def query(_doc_cls=None, _field_operation=False, **query): + """Transform a query from Django-style format to Mongo format. + """ + mongo_query = {} + merge_query = defaultdict(list) + for key, value in sorted(query.items()): + if key == "__raw__": + mongo_query.update(value) + continue + + parts = key.rsplit('__') + indices = [(i, p) for i, p in enumerate(parts) if p.isdigit()] + parts = [part for part in parts if not part.isdigit()] + # Check for an operator and transform to mongo-style if there is + op = None + if len(parts) > 1 and parts[-1] in MATCH_OPERATORS: + op = parts.pop() + + negate = False + if len(parts) > 1 and parts[-1] == 'not': + parts.pop() + negate = True + + if _doc_cls: + # Switch field names to proper names [set in Field(name='foo')] + try: + fields = _doc_cls._lookup_field(parts) + except Exception, e: + raise InvalidQueryError(e) + parts = [] + + CachedReferenceField = _import_class('CachedReferenceField') + + cleaned_fields = [] + for field in fields: + append_field = True + if isinstance(field, basestring): + parts.append(field) + append_field = False + # is last and CachedReferenceField + elif isinstance(field, CachedReferenceField) and fields[-1] == field: + parts.append('%s._id' % field.db_field) + else: + parts.append(field.db_field) + + if append_field: + cleaned_fields.append(field) + + # Convert value to proper value + field = cleaned_fields[-1] + + singular_ops = [None, 'ne', 'gt', 'gte', 'lt', 'lte', 'not'] + singular_ops += STRING_OPERATORS + if op in singular_ops: + if isinstance(field, basestring): + if (op in STRING_OPERATORS and + isinstance(value, basestring)): + StringField = _import_class('StringField') + value = StringField.prepare_query_value(op, value) + else: + value = field + else: + value = field.prepare_query_value(op, value) + + if isinstance(field, CachedReferenceField) and value: + value = value['_id'] + + elif op in ('in', 'nin', 'all', 'near') and not isinstance(value, dict): + # 'in', 'nin' and 'all' require a list of values + value = [field.prepare_query_value(op, v) for v in value] + + # if op and op not in COMPARISON_OPERATORS: + if op: + if op in GEO_OPERATORS: + value = _geo_operator(field, op, value) + elif op in CUSTOM_OPERATORS: + if op in ('elem_match', 'match'): + value = field.prepare_query_value(op, value) + value = {"$elemMatch": value} + else: + NotImplementedError("Custom method '%s' has not " + "been implemented" % op) + elif op not in STRING_OPERATORS: + value = {'$' + op: value} + + if negate: + value = {'$not': value} + + for i, part in indices: + parts.insert(i, part) + key = '.'.join(parts) + if op is None or key not in mongo_query: + mongo_query[key] = value + elif key in mongo_query: + if key in mongo_query and isinstance(mongo_query[key], dict): + mongo_query[key].update(value) + # $maxDistance needs to come last - convert to SON + value_dict = mongo_query[key] + if ('$maxDistance' in value_dict and '$near' in value_dict): + value_son = SON() + if isinstance(value_dict['$near'], dict): + for k, v in value_dict.iteritems(): + if k == '$maxDistance': + continue + value_son[k] = v + if (get_connection().max_wire_version <= 1): + value_son['$maxDistance'] = value_dict[ + '$maxDistance'] + else: + value_son['$near'] = SON(value_son['$near']) + value_son['$near'][ + '$maxDistance'] = value_dict['$maxDistance'] + else: + for k, v in value_dict.iteritems(): + if k == '$maxDistance': + continue + value_son[k] = v + value_son['$maxDistance'] = value_dict['$maxDistance'] + + mongo_query[key] = value_son + else: + # Store for manually merging later + merge_query[key].append(value) + + # The queryset has been filter in such a way we must manually merge + for k, v in merge_query.items(): + merge_query[k].append(mongo_query[k]) + del mongo_query[k] + if isinstance(v, list): + value = [{k: val} for val in v] + if '$and' in mongo_query.keys(): + mongo_query['$and'].extend(value) + else: + mongo_query['$and'] = value + + return mongo_query + + +def update(_doc_cls=None, **update): + """Transform an update spec from Django-style format to Mongo format. + """ + mongo_update = {} + for key, value in update.items(): + if key == "__raw__": + mongo_update.update(value) + continue + parts = key.split('__') + # if there is no operator, default to "set" + if len(parts) < 3 and parts[0] not in UPDATE_OPERATORS: + parts.insert(0, 'set') + # Check for an operator and transform to mongo-style if there is + op = None + if parts[0] in UPDATE_OPERATORS: + op = parts.pop(0) + # Convert Pythonic names to Mongo equivalents + if op in ('push_all', 'pull_all'): + op = op.replace('_all', 'All') + elif op == 'dec': + # Support decrement by flipping a positive value's sign + # and using 'inc' + op = 'inc' + if value > 0: + value = -value + elif op == 'add_to_set': + op = 'addToSet' + elif op == 'set_on_insert': + op = "setOnInsert" + + match = None + if parts[-1] in COMPARISON_OPERATORS: + match = parts.pop() + + if _doc_cls: + # Switch field names to proper names [set in Field(name='foo')] + try: + fields = _doc_cls._lookup_field(parts) + except Exception, e: + raise InvalidQueryError(e) + parts = [] + + cleaned_fields = [] + appended_sub_field = False + for field in fields: + append_field = True + if isinstance(field, basestring): + # Convert the S operator to $ + if field == 'S': + field = '$' + parts.append(field) + append_field = False + else: + parts.append(field.db_field) + if append_field: + appended_sub_field = False + cleaned_fields.append(field) + if hasattr(field, 'field'): + cleaned_fields.append(field.field) + appended_sub_field = True + + # Convert value to proper value + if appended_sub_field: + field = cleaned_fields[-2] + else: + field = cleaned_fields[-1] + + GeoJsonBaseField = _import_class("GeoJsonBaseField") + if isinstance(field, GeoJsonBaseField): + value = field.to_mongo(value) + + if op in (None, 'set', 'push', 'pull'): + if field.required or value is not None: + value = field.prepare_query_value(op, value) + elif op in ('pushAll', 'pullAll'): + value = [field.prepare_query_value(op, v) for v in value] + elif op in ('addToSet', 'setOnInsert'): + if isinstance(value, (list, tuple, set)): + value = [field.prepare_query_value(op, v) for v in value] + elif field.required or value is not None: + value = field.prepare_query_value(op, value) + elif op == "unset": + value = 1 + + if match: + match = '$' + match + value = {match: value} + + 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 + # Otherwise it uses nested dict syntax + if op == 'pullAll': + raise InvalidQueryError("pullAll operations only support " + "a single field depth") + + # Look for the last list field and use dot notation until there + field_classes = [c.__class__ for c in cleaned_fields] + field_classes.reverse() + ListField = _import_class('ListField') + if ListField in field_classes: + # Join all fields via dot notation to the last ListField + # Then process as normal + last_listField = len( + cleaned_fields) - field_classes.index(ListField) + key = ".".join(parts[:last_listField]) + parts = parts[last_listField:] + parts.insert(0, key) + + parts.reverse() + for key in parts: + value = {key: value} + elif op == 'addToSet' and isinstance(value, list): + value = {key: {"$each": value}} + else: + value = {key: value} + key = '$' + op + + if key not in mongo_update: + mongo_update[key] = value + elif key in mongo_update and isinstance(mongo_update[key], dict): + mongo_update[key].update(value) + + return mongo_update + + +def _geo_operator(field, op, value): + """Helper to return the query for a given geo query""" + if field._geo_index == pymongo.GEO2D: + if op == "within_distance": + value = {'$within': {'$center': value}} + elif op == "within_spherical_distance": + value = {'$within': {'$centerSphere': value}} + elif op == "within_polygon": + value = {'$within': {'$polygon': value}} + elif op == "near": + value = {'$near': value} + elif op == "near_sphere": + value = {'$nearSphere': value} + elif op == 'within_box': + value = {'$within': {'$box': value}} + elif op == "max_distance": + value = {'$maxDistance': value} + else: + raise NotImplementedError("Geo method '%s' has not " + "been implemented for a GeoPointField" % op) + else: + if op == "geo_within": + value = {"$geoWithin": _infer_geometry(value)} + elif op == "geo_within_box": + value = {"$geoWithin": {"$box": value}} + elif op == "geo_within_polygon": + value = {"$geoWithin": {"$polygon": value}} + elif op == "geo_within_center": + value = {"$geoWithin": {"$center": value}} + elif op == "geo_within_sphere": + value = {"$geoWithin": {"$centerSphere": value}} + elif op == "geo_intersects": + value = {"$geoIntersects": _infer_geometry(value)} + elif op == "near": + value = {'$near': _infer_geometry(value)} + elif op == "max_distance": + value = {'$maxDistance': value} + else: + raise NotImplementedError("Geo method '%s' has not " + "been implemented for a %s " % (op, field._name)) + return value + + +def _infer_geometry(value): + """Helper method that tries to infer the $geometry shape for a given value""" + if isinstance(value, dict): + if "$geometry" in value: + return value + elif 'coordinates' in value and 'type' in value: + return {"$geometry": value} + raise InvalidQueryError("Invalid $geometry dictionary should have " + "type and coordinates keys") + elif isinstance(value, (list, set)): + try: + value[0][0][0] + return {"$geometry": {"type": "Polygon", "coordinates": value}} + except: + pass + try: + value[0][0] + return {"$geometry": {"type": "LineString", "coordinates": value}} + except: + pass + try: + value[0] + return {"$geometry": {"type": "Point", "coordinates": value}} + except: + pass + + raise InvalidQueryError("Invalid $geometry data. Can be either a dictionary " + "or (nested) lists of coordinate(s)") diff --git a/awx/lib/site-packages/mongoengine/queryset/visitor.py b/awx/lib/site-packages/mongoengine/queryset/visitor.py new file mode 100644 index 0000000000..e5d2e6152b --- /dev/null +++ b/awx/lib/site-packages/mongoengine/queryset/visitor.py @@ -0,0 +1,162 @@ +import copy + +from itertools import product +from functools import reduce + +from mongoengine.errors import InvalidQueryError +from mongoengine.queryset import transform + +__all__ = ('Q',) + + +class QNodeVisitor(object): + """Base visitor class for visiting Q-object nodes in a query tree. + """ + + def visit_combination(self, combination): + """Called by QCombination objects. + """ + return combination + + def visit_query(self, query): + """Called by (New)Q objects. + """ + return query + + +class DuplicateQueryConditionsError(InvalidQueryError): + pass + + +class SimplificationVisitor(QNodeVisitor): + """Simplifies query trees by combining unnecessary 'and' connection nodes + into a single Q-object. + """ + + def visit_combination(self, combination): + if combination.operation == combination.AND: + # The simplification only applies to 'simple' queries + if all(isinstance(node, Q) for node in combination.children): + queries = [n.query for n in combination.children] + try: + return Q(**self._query_conjunction(queries)) + except DuplicateQueryConditionsError: + # Cannot be simplified + pass + return combination + + def _query_conjunction(self, queries): + """Merges query dicts - effectively &ing them together. + """ + query_ops = set() + combined_query = {} + for query in queries: + ops = set(query.keys()) + # Make sure that the same operation isn't applied more than once + # to a single field + intersection = ops.intersection(query_ops) + if intersection: + raise DuplicateQueryConditionsError() + + query_ops.update(ops) + combined_query.update(copy.deepcopy(query)) + return combined_query + + +class QueryCompilerVisitor(QNodeVisitor): + """Compiles the nodes in a query tree to a PyMongo-compatible query + dictionary. + """ + + def __init__(self, document): + self.document = document + + def visit_combination(self, combination): + operator = "$and" + if combination.operation == combination.OR: + operator = "$or" + return {operator: combination.children} + + def visit_query(self, query): + return transform.query(self.document, **query.query) + + +class QNode(object): + """Base class for nodes in query trees. + """ + + AND = 0 + OR = 1 + + def to_query(self, document): + query = self.accept(SimplificationVisitor()) + query = query.accept(QueryCompilerVisitor(document)) + return query + + def accept(self, visitor): + raise NotImplementedError + + def _combine(self, other, operation): + """Combine this node with another node into a QCombination object. + """ + if getattr(other, 'empty', True): + return self + + if self.empty: + return other + + return QCombination(operation, [self, other]) + + @property + def empty(self): + return False + + def __or__(self, other): + return self._combine(other, self.OR) + + def __and__(self, other): + return self._combine(other, self.AND) + + +class QCombination(QNode): + """Represents the combination of several conditions by a given logical + operator. + """ + + def __init__(self, operation, children): + self.operation = operation + self.children = [] + for node in children: + # If the child is a combination of the same type, we can merge its + # children directly into this combinations children + if isinstance(node, QCombination) and node.operation == operation: + self.children += node.children + else: + self.children.append(node) + + def accept(self, visitor): + for i in range(len(self.children)): + if isinstance(self.children[i], QNode): + self.children[i] = self.children[i].accept(visitor) + + return visitor.visit_combination(self) + + @property + def empty(self): + return not bool(self.children) + + +class Q(QNode): + """A simple query object, used in a query tree to build up more complex + query structures. + """ + + def __init__(self, **query): + self.query = query + + def accept(self, visitor): + return visitor.visit_query(self) + + @property + def empty(self): + return not bool(self.query) diff --git a/awx/lib/site-packages/mongoengine/signals.py b/awx/lib/site-packages/mongoengine/signals.py new file mode 100644 index 0000000000..06fb8b4f11 --- /dev/null +++ b/awx/lib/site-packages/mongoengine/signals.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- + +__all__ = ['pre_init', 'post_init', 'pre_save', 'pre_save_post_validation', + 'post_save', 'pre_delete', 'post_delete'] + +signals_available = False +try: + from blinker import Namespace + signals_available = True +except ImportError: + class Namespace(object): + def signal(self, name, doc=None): + return _FakeSignal(name, doc) + + class _FakeSignal(object): + """If blinker is unavailable, create a fake class with the same + interface that allows sending of signals but will fail with an + error on anything else. Instead of doing anything on send, it + will just ignore the arguments and do nothing instead. + """ + + def __init__(self, name, doc=None): + self.name = name + self.__doc__ = doc + + def _fail(self, *args, **kwargs): + raise RuntimeError('signalling support is unavailable ' + 'because the blinker library is ' + 'not installed.') + send = lambda *a, **kw: None + connect = disconnect = has_receivers_for = receivers_for = \ + temporarily_connected_to = _fail + del _fail + +# the namespace for code signals. If you are not mongoengine code, do +# not put signals in here. Create your own namespace instead. +_signals = Namespace() + +pre_init = _signals.signal('pre_init') +post_init = _signals.signal('post_init') +pre_save = _signals.signal('pre_save') +pre_save_post_validation = _signals.signal('pre_save_post_validation') +post_save = _signals.signal('post_save') +pre_delete = _signals.signal('pre_delete') +post_delete = _signals.signal('post_delete') +pre_bulk_insert = _signals.signal('pre_bulk_insert') +post_bulk_insert = _signals.signal('post_bulk_insert') diff --git a/requirements/dev.txt b/requirements/dev.txt index 5f92477cab..bd08f016cf 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,10 +1,11 @@ # PIP requirements for AWX development/build environment (downloaded from -# PyPI). Install using "pip -r dev.txt". +# PyPI). Install using "pip install -r dev.txt". -U distribute # Packages used for both development and production: Django>=1.6.7,<1.7 +pymongo>=2.8 # The following packages and their dependencies are bundled with AWX # (in awx/lib/site-packages): @@ -25,6 +26,7 @@ Django>=1.6.7,<1.7 #redis #requests #South>=0.8,<2.0 + #mongoengine>=0.9.0 # Development-only packages: django-debug-toolbar diff --git a/requirements/dev_local.txt b/requirements/dev_local.txt index 82968bc54d..7579a37993 100644 --- a/requirements/dev_local.txt +++ b/requirements/dev_local.txt @@ -1,10 +1,11 @@ # PIP requirements for AWX development/build environment (using only local -# packages). Install using "pip --no-index -r dev_local.txt". +# packages). Install using "pip install --no-index -r dev_local.txt". # May need to install these packages separately the first time: setuptools-12.0.5.tar.gz distribute-0.7.3.zip Django-1.6.7.tar.gz +mongo-python-driver-2.8.tar.gz # The following packages are bundled with AWX (in awx/lib/site-packages): # For Python2.6 support: @@ -74,6 +75,7 @@ Django-1.6.7.tar.gz #pyrax-1.7.2.tar.gz #redis-2.10.3.tar.gz #South-0.8.4.tar.gz + #mongoengine-0.9.0.tar.gz # Dev-only packages: # Needed by django-debug-toolbar: @@ -102,3 +104,7 @@ ipython-1.2.1.tar.gz # - readline-6.2.4.1.tar.gz (for the ipython shell) # - python-zmq (for using the job callback receiver) # - python-memcached (for host details caching) +# - pycrypto (via pip install pycrypto) +# - pyaml (via pip install pyaml) +# - python-ldap (via pip install python-ldap) +# - pyzmq (via pip install pyzmq) diff --git a/requirements/mongo-python-driver-2.8.tar.gz b/requirements/mongo-python-driver-2.8.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..fb21a3dcf1766cca90a553da541d760486259830 GIT binary patch literal 401164 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%0DZV!(qR{-~Tgtv!zq_`I9 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 GP#yrz-W_KE literal 0 HcmV?d00001 diff --git a/requirements/mongoengine-0.9.0.tar.gz b/requirements/mongoengine-0.9.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..dc71b3425814e81d4326897e0afba02b3d44e091 GIT binary patch literal 466782 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
    a6$H^y0e1QUQoo@H}M?UrGX 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

    Y3Y~@BhrrgO@GXecj>5&)E@K&VBNL@12qR%>DbO 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%0DONQ*_GKX2q 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.4 +pymongo>=2.8 # The following packages and their dependencies are bundled with AWX # (in awx/lib/site-packages): @@ -23,6 +24,7 @@ Django>=1.4 #redis #requests #South>=0.8,<2.0 + #mongoengine>=0.9.0 # You may also need to install the following extra packages using the OS # package manager, or pip if you're running inside a virtualenv. diff --git a/requirements/prod_local.txt b/requirements/prod_local.txt index c387f53c0f..1f52392b5e 100644 --- a/requirements/prod_local.txt +++ b/requirements/prod_local.txt @@ -1,8 +1,9 @@ # PIP requirements for AWX production environment (using only local packages). -# Install using "pip --no-index -r prod_local.txt". +# Install using "pip install --no-index -r prod_local.txt". # May need to install this package separately the first time: Django-1.5.5.tar.gz +mongo-python-driver-2.8.tar.gz # The following packages are bundled with AWX (in awx/lib/site-packages): # For Python2.6 support: @@ -72,6 +73,7 @@ Django-1.5.5.tar.gz #pyrax-1.7.2.tar.gz #redis-2.10.3.tar.gz #South-0.8.4.tar.gz + #mongoengine-0.9.0.tar.gz # You may also need to install the following extra packages using the OS # package manager, or pip if you're running inside a virtualenv.