1
2
3
4
5
6 """defines interface for repository of generated files hash"""
7
8 import os
9 try:
10 from hashlib import md5
11 except:
12 from md5 import new as md5
13
14
16 m = md5()
17 m.update( text )
18 return m.hexdigest()
19
21 if not os.path.exists( fpath ):
22 return None
23 f = file( fpath, 'rb' )
24 fcontent = f.read()
25 f.close()
26 return get_md5_text_value( fcontent )
27
31
33 return NotImplementedError( self.__class__.__name__ )
34
35 - def get_text_value( self, fpath ):
36 return NotImplementedError( self.__class__.__name__ )
37
39 return NotImplementedError( self.__class__.__name__ )
40
42 return NotImplementedError( self.__class__.__name__ )
43
59
61 separator = ' '
62 hexdigest_len = 32
63 hexdigest_separator_len = 33
64
78
80 try:
81 return self.__repository[ fpath ]
82 except KeyError:
83 return None
84
85 - def get_text_value( self, text ):
87
89 self.__repository[ fpath ] = hash_value
90
92 lines = []
93 for fpath, hexdigest in self.__repository.iteritems():
94 lines.append( '%s%s%s%s' % ( hexdigest, self.separator, fpath, os.linesep ) )
95 f = file( self.__repository_file, 'w+' )
96 f.writelines( lines )
97 f.close()
98