OLD | NEW |
| (Empty) |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | |
2 # Use of this source code is governed by a BSD-style license that can be | |
3 # found in the LICENSE file. | |
4 | |
5 import logging | |
6 | |
7 # pylint: disable=E0611 | |
8 from hashlib import sha256 | |
9 | |
10 from mopy.memoize import memoize | |
11 | |
12 _logging = logging.getLogger() | |
13 | |
14 @memoize | |
15 def file_hash(filename): | |
16 """Returns a string representing the hash of the given file.""" | |
17 _logging.debug("Hashing %s ...", filename) | |
18 with open(filename, mode='rb') as f: | |
19 m = sha256() | |
20 while True: | |
21 block = f.read(4096) | |
22 if not block: | |
23 break | |
24 m.update(block) | |
25 _logging.debug(" => %s", m.hexdigest()) | |
26 return m.hexdigest() | |
OLD | NEW |