DeReference is now used in a thread safe manner
No global / module instance is needed Fixes #399
This commit is contained in:
		| @@ -234,8 +234,8 @@ class ComplexBaseField(BaseField): | ||||
|             return self | ||||
|  | ||||
|         if not self._dereference and instance._initialised: | ||||
|             from dereference import dereference | ||||
|             self._dereference = dereference  # Cached | ||||
|             from dereference import DeReference | ||||
|             self._dereference = DeReference()  # Cached | ||||
|             instance._data[self.name] = self._dereference( | ||||
|                 instance._data.get(self.name), max_depth=1, instance=instance, | ||||
|                 name=self.name | ||||
|   | ||||
| @@ -186,5 +186,3 @@ class DeReference(object): | ||||
|             return BaseDict(data, instance, name) | ||||
|         depth += 1 | ||||
|         return data | ||||
|  | ||||
| dereference = DeReference() | ||||
|   | ||||
| @@ -277,8 +277,8 @@ class Document(BaseDocument): | ||||
|  | ||||
|         .. versionadded:: 0.5 | ||||
|         """ | ||||
|         from dereference import dereference | ||||
|         self._data = dereference(self._data, max_depth) | ||||
|         from dereference import DeReference | ||||
|         self._data = DeReference()(self._data, max_depth) | ||||
|         return self | ||||
|  | ||||
|     def reload(self, max_depth=1): | ||||
|   | ||||
| @@ -1095,8 +1095,8 @@ class QuerySet(object): | ||||
|         .. versionadded:: 0.4 | ||||
|         .. versionchanged:: 0.5 - Fixed handling references | ||||
|         """ | ||||
|         from dereference import dereference | ||||
|         return dereference(self._cursor.distinct(field), 1) | ||||
|         from dereference import DeReference | ||||
|         return DeReference()(self._cursor.distinct(field), 1) | ||||
|  | ||||
|     def only(self, *fields): | ||||
|         """Load only a subset of this document's fields. :: | ||||
| @@ -1747,10 +1747,10 @@ class QuerySet(object): | ||||
|  | ||||
|         .. versionadded:: 0.5 | ||||
|         """ | ||||
|         from dereference import dereference | ||||
|         from dereference import DeReference | ||||
|         # Make select related work the same for querysets | ||||
|         max_depth += 1 | ||||
|         return dereference(self, max_depth=max_depth) | ||||
|         return DeReference()(self, max_depth=max_depth) | ||||
|  | ||||
|  | ||||
| class QuerySetManager(object): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user