Skip to content

Use bsddb3 instead of dbhash #44

Description

@Arfrever

dbhash module is deprecated:
https://docs.python.org/2.7/library/dbhash.html

This functionality still exists in bsddb3 (outside of standard library).
bsddb3 also supports Python 3.

--- planet/idindex.py
+++ planet/idindex.py
@@ -13,8 +13,8 @@
         cache = config.cache_directory()
         index=os.path.join(cache,'index')
         if not os.path.exists(index): return None
-        import dbhash
-        return dbhash.open(filename(index, 'id'),'w')
+        import bsddb3
+        return bsddb3.hashopen(filename(index, 'id'),'w')
     except Exception, e:
         if e.__class__.__name__ == 'DBError': e = e.args[-1]
         from planet import logger as log
@@ -35,8 +35,8 @@
     cache = config.cache_directory()
     index=os.path.join(cache,'index')
     if not os.path.exists(index): os.makedirs(index)
-    import dbhash
-    index = dbhash.open(filename(index, 'id'),'c')
+    import bsddb3
+    index = bsddb3.hashopen(filename(index, 'id'),'c')
 
     try:
         import libxml2
--- tests/test_idindex.py
+++ tests/test_idindex.py
@@ -67,8 +67,8 @@
         self.assertEqual(12,len(doc.getElementsByTagName('planet:name')))
 
 try:
-    module = 'dbhash'
+    import bsddb3
 except ImportError:
-    planet.logger.warn("dbhash is not available => can't test id index")
+    planet.logger.warn("bsddb3 is not available => can't test id index")
     for method in dir(idIndexTest):
         if method.startswith('test_'):  delattr(idIndexTest,method)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions