Open Arfrever opened 7 years ago
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)
A better idea might be to use anydbm instead.
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.