diff options
Diffstat (limited to 'src/engine/SCons/Sig/MD5.py')
-rw-r--r-- | src/engine/SCons/Sig/MD5.py | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/src/engine/SCons/Sig/MD5.py b/src/engine/SCons/Sig/MD5.py deleted file mode 100644 index f8f349f..0000000 --- a/src/engine/SCons/Sig/MD5.py +++ /dev/null @@ -1,104 +0,0 @@ -"""SCons.Sig.MD5 - -The MD5 signature package for the SCons software construction -utility. - -""" - -# -# __COPYRIGHT__ -# -# Permission is hereby granted, free of charge, to any person obtaining -# a copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, -# distribute, sublicense, and/or sell copies of the Software, and to -# permit persons to whom the Software is furnished to do so, subject to -# the following conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY -# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# - -__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" - -import imp -import string - -# Force Python to load the builtin "md5" module. If we do this with a -# normal import statement, then case-insensitive systems (Windows) get -# confused and thinks there's a case mismatch with *this* MD5.py module. -file, name, desc = imp.find_module('md5') -try: - md5 = imp.load_module('md5', file, name, desc) -finally: - if file: - file.close() - -def current(new, old): - """Return whether a new signature is up-to-date with - respect to an old signature. - """ - return new == old - -try: - md5.new('').hexdigest -except AttributeError: - # The md5 objects created by the module have no native hexdigest() - # method (*cough* 1.5.2 *cough*) so provide an equivalent. - class new_md5: - def __init__(self, s): - self.m = md5.new(str(s)) - #def copy(self): - # return self.m.copy() - def digest(self): - return self.m.digest() - def hexdigest(self): - h = string.hexdigits - r = '' - for c in self.m.digest(): - i = ord(c) - r = r + h[(i >> 4) & 0xF] + h[i & 0xF] - return r - def update(self, s): - return self.m.update(s) - -else: - new_md5 = lambda s: md5.new(str(s)) - -def collect(signatures): - """ - Collect a list of signatures into an aggregate signature. - - signatures - a list of signatures - returns - the aggregate signature - """ - if len(signatures) == 1: - return signatures[0] - else: - return new_md5(string.join(signatures, ', ')).hexdigest() - -def signature(obj): - """Generate a signature for an object - """ - try: - gc = obj.get_contents - except AttributeError: - raise AttributeError, "unable to fetch contents of '%s'" % str(obj) - return new_md5(gc()).hexdigest() - -def to_string(signature): - """Convert a signature to a string""" - return signature - -def from_string(string): - """Convert a string to a signature""" - return string |