Started work on performance

Added an initial benchmark.py
Much more performant than 0.5.2 but still work todo.
This commit is contained in:
Ross Lawley
2011-12-16 12:41:42 +00:00
parent 7614b92197
commit 6d9bfff19c
5 changed files with 274 additions and 81 deletions

View File

@@ -1,7 +1,6 @@
import pymongo
from base import (BaseDict, BaseList, DataObserver,
TopLevelDocumentMetaclass, get_document)
from base import (BaseDict, BaseList, TopLevelDocumentMetaclass, get_document)
from fields import ReferenceField
from connection import get_db
from queryset import QuerySet
@@ -134,11 +133,10 @@ class DeReference(object):
return items
if instance:
observer = DataObserver(instance, name)
if isinstance(items, dict):
return BaseDict(items, observer)
return BaseDict(items, instance, name)
else:
return BaseList(items, observer)
return BaseList(items, instance, name)
if isinstance(items, (dict, pymongo.son.SON)):
if '_ref' in items:
@@ -183,10 +181,9 @@ class DeReference(object):
data[k] = self.object_map.get(v.id, v)
if instance and name:
observer = DataObserver(instance, name)
if is_list:
return BaseList(data, observer)
return BaseDict(data, observer)
return BaseList(data, instance, name)
return BaseDict(data, instance, name)
depth += 1
return data