]> git.phdru.name Git - m_lib.git/blob - m_lib/md5wrapper.py
Remove wrong copyright lines, fix module docstrings
[m_lib.git] / m_lib / md5wrapper.py
1 #! /usr/bin/env python
2 """User wrapper for md5 builtin object"""
3
4 __all__ = ['md5wrapper']
5
6 import sys
7 if sys.version < '2.5':
8     from md5 import md5
9 else:
10     from hashlib import md5
11
12 class md5wrapper:
13    def __init__(self, init=None):
14       if init:
15          self._md5 = md5(init)
16       else:
17          self._md5 = md5()
18
19    def update(self, data):
20       self._md5.update(data)
21
22    def digest(self):
23       return self._md5.digest()
24
25    def __repr__(self):
26       str = self.digest()
27       return "%02x"*len(str) % tuple(map(ord, str))
28          # This nice was suggested by Guido
29
30    def md5file(self, f):
31       if type(f) == type(''): # If f is string - use it as file's name
32          infile = open(f, 'r')
33       else:
34          infile = f           # else assume it is file or file-like object
35
36       try:
37          while 1:
38             buf = infile.read(16*1024)
39             if not buf: break
40             self.update(buf)
41
42       finally:
43          if type(f) == type(''): # If f was opened - close it
44             infile.close()
45
46 if __name__ == "__main__":
47    print "This must print exactly the string"
48    print "Test: 900150983cd24fb0d6963f7d28e17f72"
49    print "Test:", md5wrapper("abc")