public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
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


             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