Skip to content

Commit 361df71

Browse files
committed
cosmetic edits
1 parent bea8258 commit 361df71

File tree

2 files changed

+20
-28
lines changed

2 files changed

+20
-28
lines changed

django_mongodb_backend/cache.py

+18-26
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ def loads(self, data):
2727

2828

2929
class MongoDBCache(BaseCache):
30-
# This class uses collection provided by the database connection.
31-
3230
pickle_protocol = pickle.HIGHEST_PROTOCOL
3331

3432
def __init__(self, collection_name, params):
@@ -43,27 +41,21 @@ class CacheEntry:
4341
def create_indexes(self):
4442
expires_index = IndexModel("expires_at", expireAfterSeconds=0)
4543
key_index = IndexModel("key", unique=True)
46-
self.collection_to_write.create_indexes([expires_index, key_index])
44+
self.collection_for_write.create_indexes([expires_index, key_index])
4745

4846
@cached_property
4947
def serializer(self):
5048
return MongoSerializer(self.pickle_protocol)
5149

5250
@property
53-
def _db_to_read(self):
54-
return connections[router.db_for_read(self.cache_model_class)]
55-
56-
@property
57-
def collection_to_read(self):
58-
return self._db_to_read.get_collection(self._collection_name)
59-
60-
@property
61-
def _db_to_write(self):
62-
return connections[router.db_for_write(self.cache_model_class)]
51+
def collection_for_read(self):
52+
db = router.db_for_read(self.cache_model_class)
53+
return connections[db].get_collection(self._collection_name)
6354

6455
@property
65-
def collection_to_write(self):
66-
return self._db_to_read.get_collection(self._collection_name)
56+
def collection_for_write(self):
57+
db = router.db_for_write(self.cache_model_class)
58+
return connections[db].get_collection(self._collection_name)
6759

6860
def get(self, key, default=None, version=None):
6961
result = self.get_many([key], version)
@@ -80,18 +72,18 @@ def get_many(self, keys, version=None):
8072
if not keys:
8173
return {}
8274
keys_map = {self.make_and_validate_key(key, version=version): key for key in keys}
83-
with self.collection_to_read.find(
75+
with self.collection_for_read.find(
8476
{"key": {"$in": tuple(keys_map)}, **self._filter_expired(expired=False)}
8577
) as cursor:
8678
return {keys_map[row["key"]]: self.serializer.loads(row["value"]) for row in cursor}
8779

8880
def set(self, key, value, timeout=DEFAULT_TIMEOUT, version=None):
8981
key = self.make_and_validate_key(key, version=version)
9082
serialized_data = self.serializer.dumps(value)
91-
num = self.collection_to_write.count_documents({}, hint="_id_")
83+
num = self.collection_for_write.count_documents({}, hint="_id_")
9284
if num >= self._max_entries:
9385
self._cull(num)
94-
return self.collection_to_write.update_one(
86+
return self.collection_for_write.update_one(
9587
{"key": key},
9688
{
9789
"$set": {
@@ -106,11 +98,11 @@ def set(self, key, value, timeout=DEFAULT_TIMEOUT, version=None):
10698
def add(self, key, value, timeout=DEFAULT_TIMEOUT, version=None):
10799
key = self.make_and_validate_key(key, version=version)
108100
serialized_data = self.serializer.dumps(value)
109-
num = self.collection_to_write.count_documents({}, hint="_id_")
101+
num = self.collection_for_write.count_documents({}, hint="_id_")
110102
if num >= self._max_entries:
111103
self._cull(num)
112104
try:
113-
self.collection_to_write.update_one(
105+
self.collection_for_write.update_one(
114106
{"key": key, **self._filter_expired(expired=True)},
115107
{
116108
"$set": {
@@ -133,7 +125,7 @@ def _cull(self, num):
133125
try:
134126
# Delete the first expiration date.
135127
deleted_from = next(
136-
self.collection_to_write.aggregate(
128+
self.collection_for_write.aggregate(
137129
[
138130
{"$sort": {"expires_at": -1, "key": 1}},
139131
{"$skip": keep_num},
@@ -145,7 +137,7 @@ def _cull(self, num):
145137
except StopIteration:
146138
pass
147139
else:
148-
self.collection_to_write.delete_many(
140+
self.collection_for_write.delete_many(
149141
{
150142
"$or": [
151143
{"expires_at": {"$lt": deleted_from["expires_at"]}},
@@ -161,7 +153,7 @@ def _cull(self, num):
161153

162154
def touch(self, key, timeout=DEFAULT_TIMEOUT, version=None):
163155
key = self.make_and_validate_key(key, version=version)
164-
res = self.collection_to_write.update_one(
156+
res = self.collection_for_write.update_one(
165157
{"key": key}, {"$set": {"expires_at": self._get_expiration_time(timeout)}}
166158
)
167159
return res.matched_count > 0
@@ -182,16 +174,16 @@ def _delete_many(self, keys, version=None):
182174
if not keys:
183175
return False
184176
keys = tuple(self.make_and_validate_key(key, version=version) for key in keys)
185-
return bool(self.collection_to_write.delete_many({"key": {"$in": keys}}).deleted_count)
177+
return bool(self.collection_for_write.delete_many({"key": {"$in": keys}}).deleted_count)
186178

187179
def has_key(self, key, version=None):
188180
key = self.make_and_validate_key(key, version=version)
189181
return (
190-
self.collection_to_read.count_documents(
182+
self.collection_for_read.count_documents(
191183
{"key": key, **self._filter_expired(expired=False)}
192184
)
193185
> 0
194186
)
195187

196188
def clear(self):
197-
self.collection_to_write.delete_many({})
189+
self.collection_for_write.delete_many({})

tests/cache_/tests.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -929,7 +929,7 @@ def test_get_or_set_racing(self):
929929
self.assertEqual(cache.get_or_set("key", "default"), "default")
930930

931931
def test_collection_has_indexes(self):
932-
indexes = list(cache.collection_to_read.list_indexes())
932+
indexes = list(cache.collection_for_read.list_indexes())
933933
self.assertTrue(
934934
any(
935935
index["key"] == SON([("expires_at", 1)]) and index.get("expireAfterSeconds") == 0
@@ -962,7 +962,7 @@ def setUp(self):
962962
self.addCleanup(self.drop_collection)
963963

964964
def drop_collection(self):
965-
cache.collection_to_write.drop()
965+
cache.collection_for_write.drop()
966966

967967
def create_cache_collection(self):
968968
management.call_command("createcachecollection", verbosity=0)

0 commit comments

Comments
 (0)