Chromium Code Reviews| Index: mojo/tools/mopy/file_hash.py |
| diff --git a/mojo/tools/mopy/file_hash.py b/mojo/tools/mopy/file_hash.py |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..63809694547beb778dcd228635ee28c71446ad9f |
| --- /dev/null |
| +++ b/mojo/tools/mopy/file_hash.py |
| @@ -0,0 +1,26 @@ |
| +# Copyright 2014 The Chromium Authors. All rights reserved. |
| +# Use of this source code is governed by a BSD-style license that can be |
| +# found in the LICENSE file. |
| + |
| +import logging |
| + |
| +# pylint: disable=E0611 |
| +from hashlib import sha256 |
| +from mopy.memoize import memoize |
| +# pylint: enable=E0611 |
|
viettrungluu
2014/11/25 16:45:09
I think you can re-enable this after the hashlib i
qsr
2014/11/25 17:17:49
Done.
|
| + |
| +_logging = logging.getLogger() |
| + |
| +@memoize |
| +def file_hash(filename): |
| + """Returns a string representing the hash of the given file.""" |
| + _logging.debug("Hashing %s ...", filename) |
| + with open(filename, mode='rb') as f: |
| + m = sha256() |
| + while True: |
| + block = f.read(4096) |
| + if not block: |
| + break |
| + m.update(block) |
| + _logging.debug(" => %s", m.hexdigest()) |
| + return m.hexdigest() |