Re: [Autotest] [PATCH] Fixing sha/md5 deprecation messages from autotest
On Fri, 2010-01-29 at 07:27 -0800, John Admanski wrote: > Assuming you do this, it also might make more sense to call them > md5_digest and sha1_digest, or something a little less ambiguous than > just md5 and sha1; clashing with the stdlib module name is probably a > bad idea. Yes, this makes sense, will do as you said! Thanks, Lucas -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [Autotest] [PATCH] Fixing sha/md5 deprecation messages from autotest
Assuming you do this, it also might make more sense to call them md5_digest and sha1_digest, or something a little less ambiguous than just md5 and sha1; clashing with the stdlib module name is probably a bad idea. -- John On Fri, Jan 29, 2010 at 7:25 AM, John Admanski wrote: > Instead of wrapping all the calls in try-except blocks, maybe it would > make more sense to add a couple of utility functions to the common_lib > utils.py that do it for you? I'm just picturing something like: > > def md5(bytes): > try: > import hashlib > return hashlib.md5(bytes).hexdigest() > except ImportError: > import md5 > return md5.new(bytes).hexdigest() > > and then something similar for sha1. This would keep all the > complexity in one place. > > I'm just picturing a code review in the future where I have to explain > to someone that they have to wrap their import and digest in > try-excepts...it would be a lot easier to just tell them to use the > functions in utils.py instead. :) > > -- John > > On Thu, Jan 28, 2010 at 9:36 PM, Lucas Meneghel Rodrigues > wrote: >> When using python > 2.4, use the recommended hashlib. >> When using python 2.4, fall back to the md5 and sha >> modules. >> >> Signed-off-by: Lucas Meneghel Rodrigues >> --- >> tko/models.py | 12 ++-- >> tko/parsers/version_1_unittest.py | 16 +--- >> utils/build_externals.py | 11 +-- >> 3 files changed, 32 insertions(+), 7 deletions(-) >> >> diff --git a/tko/models.py b/tko/models.py >> index bc70074..2dc6724 100644 >> --- a/tko/models.py >> +++ b/tko/models.py >> @@ -1,4 +1,8 @@ >> -import os, md5 >> +import os >> +try: >> + import hashlib >> +except ImportError: >> + import md5 >> >> from autotest_lib.client.common_lib import utils >> from autotest_lib.tko import utils as tko_utils >> @@ -63,7 +67,11 @@ class kernel(object): >> @staticmethod >> def compute_hash(base, hashes): >> key_string = ','.join([base] + hashes) >> - return md5.new(key_string).hexdigest() >> + try: >> + hash = hashlib.md5(key_string).hexdigest() >> + except NameError: >> + hash = md5.new(key_string).hexdigest() >> + return hash >> >> >> class test(object): >> diff --git a/tko/parsers/version_1_unittest.py >> b/tko/parsers/version_1_unittest.py >> index 5110fe8..a6e87e4 100755 >> --- a/tko/parsers/version_1_unittest.py >> +++ b/tko/parsers/version_1_unittest.py >> @@ -1,6 +1,10 @@ >> #!/usr/bin/python >> >> -import unittest, datetime, time, md5 >> +import unittest, datetime, time >> +try: >> + import hashlib >> +except ImportError: >> + import md5 >> >> import common >> from autotest_lib.tko.parsers import version_1 >> @@ -163,7 +167,10 @@ class test_status_line(unittest.TestCase): >> "patch0": "first_patch 0 0", >> "patch1": "another_patch 0 0"}) >> kern = line.get_kernel() >> - kernel_hash = md5.new("2.6.24-rc40,0,0").hexdigest() >> + try: >> + kernel_hash = hashlib.md5("2.6.24-rc40,0,0").hexdigest() >> + except NameError: >> + kernel_hash = md5.new("2.6.24-rc40,0,0").hexdigest() >> self.assertEquals(kern.base, "2.6.24-rc40") >> self.assertEquals(kern.patches[0].spec, "first_patch") >> self.assertEquals(kern.patches[1].spec, "another_patch") >> @@ -178,7 +185,10 @@ class test_status_line(unittest.TestCase): >> "patch0": "first_patch 0 0", >> "patch2": "another_patch 0 0"}) >> kern = line.get_kernel() >> - kernel_hash = md5.new("2.6.24-rc40,0").hexdigest() >> + try: >> + kernel_hash = hashlib.md5("2.6.24-rc40,0").hexdigest() >> + except: >> + kernel_hash = md5.new("2.6.24-rc40,0").hexdigest() >> self.assertEquals(kern.base, "2.6.24-rc40") >> self.assertEquals(kern.patches[0].spec, "first_patch") >> self.assertEquals(len(kern.patches), 1) >> diff --git a/utils/build_externals.py b/utils/build_externals.py >> index d58975e..8993249 100755 >> --- a/utils/build_externals.py >> +++ b/utils/build_externals.py >> @@ -12,7 +12,11 @@ Usage? Just run it. >> utils/build_externals.py >> """ >> >> -import compileall, logging, os, sha, shutil, sys, tempfile, time, urllib2 >> +import compileall, logging, os, shutil, sys, tempfile, time, urllib2 >> +try: >> + import hashlib >> +except ImportError: >> + import sha >> import subprocess, re >> import common >> from autotest_lib.client.common_lib import logging_config, logging_manager >> @@ -152,7 +156,10 @@ def _checksum_file(full_path): >> """@returns The hex checksum of a file given its pathname.""" >> inputfile = open(full_path, 'rb') >> try: >> - hex_sum = sha.sha(inputfile.read()).hexdigest() >> + try: >> + hex_sum =
Re: [Autotest] [PATCH] Fixing sha/md5 deprecation messages from autotest
Instead of wrapping all the calls in try-except blocks, maybe it would make more sense to add a couple of utility functions to the common_lib utils.py that do it for you? I'm just picturing something like: def md5(bytes): try: import hashlib return hashlib.md5(bytes).hexdigest() except ImportError: import md5 return md5.new(bytes).hexdigest() and then something similar for sha1. This would keep all the complexity in one place. I'm just picturing a code review in the future where I have to explain to someone that they have to wrap their import and digest in try-excepts...it would be a lot easier to just tell them to use the functions in utils.py instead. :) -- John On Thu, Jan 28, 2010 at 9:36 PM, Lucas Meneghel Rodrigues wrote: > When using python > 2.4, use the recommended hashlib. > When using python 2.4, fall back to the md5 and sha > modules. > > Signed-off-by: Lucas Meneghel Rodrigues > --- > tko/models.py | 12 ++-- > tko/parsers/version_1_unittest.py | 16 +--- > utils/build_externals.py | 11 +-- > 3 files changed, 32 insertions(+), 7 deletions(-) > > diff --git a/tko/models.py b/tko/models.py > index bc70074..2dc6724 100644 > --- a/tko/models.py > +++ b/tko/models.py > @@ -1,4 +1,8 @@ > -import os, md5 > +import os > +try: > + import hashlib > +except ImportError: > + import md5 > > from autotest_lib.client.common_lib import utils > from autotest_lib.tko import utils as tko_utils > @@ -63,7 +67,11 @@ class kernel(object): > @staticmethod > def compute_hash(base, hashes): > key_string = ','.join([base] + hashes) > - return md5.new(key_string).hexdigest() > + try: > + hash = hashlib.md5(key_string).hexdigest() > + except NameError: > + hash = md5.new(key_string).hexdigest() > + return hash > > > class test(object): > diff --git a/tko/parsers/version_1_unittest.py > b/tko/parsers/version_1_unittest.py > index 5110fe8..a6e87e4 100755 > --- a/tko/parsers/version_1_unittest.py > +++ b/tko/parsers/version_1_unittest.py > @@ -1,6 +1,10 @@ > #!/usr/bin/python > > -import unittest, datetime, time, md5 > +import unittest, datetime, time > +try: > + import hashlib > +except ImportError: > + import md5 > > import common > from autotest_lib.tko.parsers import version_1 > @@ -163,7 +167,10 @@ class test_status_line(unittest.TestCase): > "patch0": "first_patch 0 0", > "patch1": "another_patch 0 0"}) > kern = line.get_kernel() > - kernel_hash = md5.new("2.6.24-rc40,0,0").hexdigest() > + try: > + kernel_hash = hashlib.md5("2.6.24-rc40,0,0").hexdigest() > + except NameError: > + kernel_hash = md5.new("2.6.24-rc40,0,0").hexdigest() > self.assertEquals(kern.base, "2.6.24-rc40") > self.assertEquals(kern.patches[0].spec, "first_patch") > self.assertEquals(kern.patches[1].spec, "another_patch") > @@ -178,7 +185,10 @@ class test_status_line(unittest.TestCase): > "patch0": "first_patch 0 0", > "patch2": "another_patch 0 0"}) > kern = line.get_kernel() > - kernel_hash = md5.new("2.6.24-rc40,0").hexdigest() > + try: > + kernel_hash = hashlib.md5("2.6.24-rc40,0").hexdigest() > + except: > + kernel_hash = md5.new("2.6.24-rc40,0").hexdigest() > self.assertEquals(kern.base, "2.6.24-rc40") > self.assertEquals(kern.patches[0].spec, "first_patch") > self.assertEquals(len(kern.patches), 1) > diff --git a/utils/build_externals.py b/utils/build_externals.py > index d58975e..8993249 100755 > --- a/utils/build_externals.py > +++ b/utils/build_externals.py > @@ -12,7 +12,11 @@ Usage? Just run it. > utils/build_externals.py > """ > > -import compileall, logging, os, sha, shutil, sys, tempfile, time, urllib2 > +import compileall, logging, os, shutil, sys, tempfile, time, urllib2 > +try: > + import hashlib > +except ImportError: > + import sha > import subprocess, re > import common > from autotest_lib.client.common_lib import logging_config, logging_manager > @@ -152,7 +156,10 @@ def _checksum_file(full_path): > """@returns The hex checksum of a file given its pathname.""" > inputfile = open(full_path, 'rb') > try: > - hex_sum = sha.sha(inputfile.read()).hexdigest() > + try: > + hex_sum = hashlib.sha1(inputfile.read()).hexdigest() > + except NameError: > + hex_sum = sha.sha(inputfile.read()).hexdigest() > finally: > inputfile.close() > return hex_sum > -- > 1.6.6 > > ___ > Autotest mailing list > autot...@test.kernel.org > http://test.kernel.org/cgi-bin/mailman/listinfo/autotest > -- To unsubscribe from this list: send the