Skip to content

Commit 9af3601

Browse files
author
Johannes Otepka
committed
support of pymongo 4.x added
1 parent 0c3b35f commit 9af3601

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

ipyparallel/controller/mongodb.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@
1515

1616
from .dictdb import BaseDB
1717

18+
# we need to determine the pymongo version because of API changes. see
19+
# https://pymongo.readthedocs.io/en/stable/migrate-to-pymongo4.html
20+
from importlib.metadata import version
21+
MongoClientVersion = version('pymongo')
22+
pymongo_version_major = int(MongoClientVersion.split('.')[0])
23+
pymongo_version_minor = int(MongoClientVersion.split('.')[1])
24+
1825
# -----------------------------------------------------------------------------
1926
# MongoDB class
2027
# -----------------------------------------------------------------------------
@@ -56,6 +63,13 @@ def __init__(self, **kwargs):
5663
self.database = self.session
5764
self._db = self._connection[self.database]
5865
self._records = self._db['task_records']
66+
if pymongo_version_major >= 4:
67+
# mimic the old API 3.x
68+
self._records.insert = self._records.insert_one
69+
self._records.update = self._records.update_one
70+
self._records.ensure_index = self._records.create_index
71+
self._records.remove = self._records.delete_many
72+
5973
self._records.ensure_index('msg_id', unique=True)
6074
self._records.ensure_index('submitted') # for sorting history
6175
# for rec in self._records.find

0 commit comments

Comments
 (0)