From: "André Erdmann" <dywi@mailerd.de>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/R_overlay:gsoc13/next commit in: roverlay/
Date: Mon, 8 Jul 2013 22:47:58 +0000 (UTC) [thread overview]
Message-ID: <1373322877.7fafe288511b1b12fd7e18d6ec51e8d1c18f3640.dywi@gentoo> (raw)
commit: 7fafe288511b1b12fd7e18d6ec51e8d1c18f3640
Author: André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Mon Jul 8 22:34:37 2013 +0000
Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Mon Jul 8 22:34:37 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=7fafe288
roverlay/digest: try to use hashlib-provided funcs
---
roverlay/digest.py | 53 +++++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 49 insertions(+), 4 deletions(-)
diff --git a/roverlay/digest.py b/roverlay/digest.py
index a031889..49625ee 100644
--- a/roverlay/digest.py
+++ b/roverlay/digest.py
@@ -14,19 +14,64 @@ __all__ = [
'whirlpool_file',
]
-import hashlib
-import portage.util.whirlpool
-
DEFAULT_BLOCKSIZE=16384
+
+import hashlib
+
_HASH_CREATE_MAP = {
'md5' : hashlib.md5,
'sha1' : hashlib.sha1,
'sha256' : hashlib.sha256,
'sha512' : hashlib.sha512,
- 'whirlpool' : portage.util.whirlpool.new,
}
+def hashlib_wrap ( name ):
+ """Creates a wrapper that uses hashlib.new(<name>) for the given name.
+
+ arguments:
+ * name -- hash name, e.g. whirlpool
+ """
+ def wrapped ( *args, **kwargs ):
+ return hashlib.new ( name, *args, **kwargs )
+ # --- end of wrapped (...) ---
+
+ h = hashlib.new
+ wrapped.__dict__.update ( h.__dict__ )
+ wrapped.__name__ = name
+ wrapped.__doc__ = h.__doc__
+ del h
+ return wrapped
+# --- end of hashlib_wrap (...) ---
+
+def hashlib_supports ( name ):
+ """Returns True if the given hash type is supported, else False.
+
+ arguments:
+ * name --
+ """
+ if name in getattr ( hashlib, 'algorithms_available', () ):
+ # python 2's hashlib has no algorithms_available attribute
+ return True
+ else:
+ ret = False
+ try:
+ hashlib.new ( name )
+ except ValueError:
+ pass
+ else:
+ ret = True
+ return ret
+# --- end of hashlib_supports (...) ---
+
+if hashlib_supports ( 'whirlpool' ):
+ _HASH_CREATE_MAP ['whirlpool'] = hashlib_wrap ( "whirlpool" )
+else:
+ import portage.util.whirlpool
+ _HASH_CREATE_MAP ['whirlpool'] = portage.util.whirlpool.new
+
+# -- end of imports / HASH_CREATE_MAP
+
def _generic_obj_hash (
hashobj, fh, binary_digest=False, blocksize=DEFAULT_BLOCKSIZE
next reply other threads:[~2013-07-09 23:07 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-08 22:47 André Erdmann [this message]
-- strict thread matches above, loose matches on Subject: below --
2013-07-23 7:51 [gentoo-commits] proj/R_overlay:master commit in: roverlay/ André Erdmann
2013-07-23 7:51 ` [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-23 7:51 [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-07-19 18:00 ` [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-19 18:00 André Erdmann
2013-07-17 18:05 André Erdmann
2013-07-15 22:31 André Erdmann
2013-07-12 13:57 [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-07-12 13:57 ` [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-08 22:47 André Erdmann
2013-07-05 16:55 André Erdmann
2013-07-05 16:55 André Erdmann
2013-07-05 16:55 André Erdmann
2013-06-22 15:24 [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-06-22 15:14 ` [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-06-22 15:24 [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-06-22 15:14 ` [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-06-22 15:24 [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-06-20 23:40 ` [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-06-22 15:24 [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-06-20 23:40 ` [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-06-19 18:58 André Erdmann
2013-06-19 18:58 André Erdmann
2013-06-05 18:08 André Erdmann
2013-06-05 18:08 André Erdmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1373322877.7fafe288511b1b12fd7e18d6ec51e8d1c18f3640.dywi@gentoo \
--to=dywi@mailerd.de \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox