]> git.ozlabs.org Git - patchwork/commitdiff
Simplify hashlib behaviour in HashField
authorJeremy Kerr <jk@ozlabs.org>
Wed, 10 Sep 2008 03:20:29 +0000 (13:20 +1000)
committerJeremy Kerr <jk@ozlabs.org>
Wed, 10 Sep 2008 03:20:29 +0000 (13:20 +1000)
We only need to keep the size of the field required, not the
whole hashlib constructor

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
apps/patchwork/models.py

index e2b636ead6208c8a62f9d02f40f9a60d704c581c..62ce59266b8a445a5c3a1516dd1fd4d83335b451 100644 (file)
@@ -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)