From b69e1c600dc7ff7fb20391f15256b04569fd4a3c Mon Sep 17 00:00:00 2001 From: Zooko O'Whielacronx Date: Mon, 14 Dec 2009 13:27:03 -0800 Subject: [PATCH] use hashlib module if available, thus avoiding a DeprecationWarning for importing the old sha module; fixes #859 --- src/allmydata/storage_client.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/allmydata/storage_client.py b/src/allmydata/storage_client.py index 69161924..d12cb8b7 100644 --- a/src/allmydata/storage_client.py +++ b/src/allmydata/storage_client.py @@ -28,7 +28,15 @@ the foolscap-based server implemented in src/allmydata/storage/*.py . # # 6: implement other sorts of IStorageClient classes: S3, etc -import sha, time +try: + from hashlib import sha1 +except ImportError: + # hashlib was added in Python 2.5 + import sha + def sha1(x): + return sha.new(x) + +import time from zope.interface import implements, Interface from foolscap.api import eventually from allmydata.interfaces import IStorageBroker @@ -119,7 +127,7 @@ class StorageFarmBroker: assert self.permute_peers == True servers = self.get_all_servers() key = peer_selection_index - return sorted(servers, key=lambda x: sha.new(key+x[0]).digest()) + return sorted(servers, key=lambda x: sha1(key+x[0]).digest()) def get_all_servers(self): # return a frozenset of (peerid, versioned-rref) tuples -- 2.45.2