From f69773c2f693da03eeb3334d2b0289d738873c63 Mon Sep 17 00:00:00 2001 From: Jeremy Kerr Date: Wed, 10 Sep 2008 13:20:29 +1000 Subject: [PATCH] Simplify hashlib behaviour in HashField We only need to keep the size of the field required, not the whole hashlib constructor Signed-off-by: Jeremy Kerr --- apps/patchwork/models.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/apps/patchwork/models.py b/apps/patchwork/models.py index e2b636e..62ce592 100644 --- a/apps/patchwork/models.py +++ b/apps/patchwork/models.py @@ -177,29 +177,24 @@ class HashField(models.CharField): try: import hashlib self.hashlib = True - n_bytes = len(hashlib.new(self.algorithm).hexdigest()) + self.n_bytes = len(hashlib.new(self.algorithm).hexdigest()) except ImportError: self.hashlib = False if algorithm == 'sha1': import sha - self.hash_constructor = sha.new + hash_constructor = sha.new elif algorithm == 'md5': import md5 - self.hash_constructor = md5.new + hash_constructor = md5.new else: raise NameError("Unknown algorithm '%s'" % algorithm) - n_bytes = len(self.hash_constructor().hexdigest()) + self.n_bytes = len(hash_constructor().hexdigest()) - kwargs['max_length'] = n_bytes + kwargs['max_length'] = self.n_bytes super(HashField, self).__init__(*args, **kwargs) def db_type(self): - if self.hashlib: - import hashlib - n_bytes = len(hashlib.new(self.algorithm).hexdigest()) - else: - n_bytes = len(self.hash_constructor().hexdigest()) - return 'char(%d)' % n_bytes + return 'char(%d)' % self.n_bytes class Patch(models.Model): project = models.ForeignKey(Project) -- 2.39.2