@@ -32,7 +32,7 @@ class MasterSlaveConnection(BaseObject):
3232 """A master-slave connection to Mongo.
3333 """
3434
35- def __init__ (self , master , slaves = [], tz_aware = False ):
35+ def __init__ (self , master , slaves = [], document_class = dict , tz_aware = False ):
3636 """Create a new Master-Slave connection.
3737
3838 The resultant connection should be interacted with using the same
@@ -50,6 +50,8 @@ def __init__(self, master, slaves=[], tz_aware=False):
5050 - `master`: `Connection` instance for the writable Master
5151 - `slaves` (optional): list of `Connection` instances for the
5252 read-only slaves
53+ - `document_class` (optional): default class to use for
54+ documents returned from queries on this connection
5355 - `tz_aware` (optional): if ``True``,
5456 :class:`~datetime.datetime` instances returned as values
5557 in a document by this :class:`MasterSlaveConnection` will be timezone
@@ -73,6 +75,7 @@ def __init__(self, master, slaves=[], tz_aware=False):
7375 self .__in_request = False
7476 self .__master = master
7577 self .__slaves = slaves
78+ self .__document_class = document_class
7679 self .__tz_aware = tz_aware
7780
7881 @property
@@ -83,10 +86,15 @@ def master(self):
8386 def slaves (self ):
8487 return self .__slaves
8588
86- # TODO this is a temporary hack PYTHON-136 is the right solution for this
87- @property
88- def document_class (self ):
89- return dict
89+ def get_document_class (self ):
90+ return self .__document_class
91+
92+ def set_document_class (self , klass ):
93+ self .__document_class = klass
94+
95+ document_class = property (get_document_class , set_document_class ,
96+ doc = """Default class to use for documents
97+ returned on this connection.""" )
9098
9199 @property
92100 def tz_aware (self ):
0 commit comments