Mercurial > repos > shellac > guppy_basecaller
diff env/lib/python3.7/site-packages/galaxy/util/hash_util.py @ 5:9b1c78e6ba9c draft default tip
"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author | shellac |
---|---|
date | Mon, 01 Jun 2020 08:59:25 -0400 |
parents | 79f47841a781 |
children |
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/galaxy/util/hash_util.py Thu May 14 16:47:39 2020 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,88 +0,0 @@ -""" -Utility functions for bi-directional Python version compatibility. Python 2.5 -introduced hashlib which replaced sha in Python 2.4 and previous versions. -""" -from __future__ import absolute_import - -import hashlib -import hmac -import logging - -from . import smart_str - - -log = logging.getLogger(__name__) - -BLOCK_SIZE = 1024 * 1024 - -sha1 = hashlib.sha1 -sha256 = hashlib.sha256 -sha512 = hashlib.sha512 -sha = sha1 -md5 = hashlib.md5 - -HASH_NAME_MAP = { - "MD5": md5, - "SHA-1": sha1, - "SHA-256": sha256, - "SHA-512": sha512, -} -HASH_NAMES = list(HASH_NAME_MAP.keys()) - - -def memory_bound_hexdigest(hash_func=None, hash_func_name=None, path=None, file=None): - if hash_func is None: - assert hash_func_name is not None - hash_func = HASH_NAME_MAP[hash_func_name] - - hasher = hash_func() - if file is None: - assert path is not None - file = open(path, "rb") - else: - assert path is None, "Cannot specify path and path keyword arguments." - - try: - for block in iter(lambda: file.read(BLOCK_SIZE), b''): - hasher.update(block) - return hasher.hexdigest() - finally: - file.close() - - -def md5_hash_file(path): - """ - Return a md5 hashdigest for a file or None if path could not be read. - """ - hasher = hashlib.md5() - try: - with open(path, 'rb') as afile: - buf = afile.read() - hasher.update(buf) - return hasher.hexdigest() - except IOError: - # This may happen if path has been deleted - return None - - -def new_secure_hash(text_type): - """ - Returns the hexdigest of the sha1 hash of the argument `text_type`. - """ - assert text_type is not None - return sha1(smart_str(text_type)).hexdigest() - - -def hmac_new(key, value): - return hmac.new(key, value, sha).hexdigest() - - -def is_hashable(value): - try: - hash(value) - except Exception: - return False - return True - - -__all__ = ('md5', 'hashlib', 'sha1', 'sha', 'new_secure_hash', 'hmac_new', 'is_hashable')