Showing content from http://mail.python.org/pipermail/python-dev/attachments/20180807/a5a5df41/attachment.html below:
<div dir="ltr">Hello everybody, <br>I am Park Tsai. I want to refactor __get_builtin_constructor on hasklib.py of python 2.7 (<a href="https://github.com/python/cpython/blob/2.7/Lib/hashlib.py#L72">https://github.com/python/cpython/blob/2.7/Lib/hashlib.py#L72</a>). <br>This is the first time that I try to refactor code of CPython on GitHub, so I am very excited. <br><br>This is __get_builtin_constructor code on hasklib.py ,as follows. <br><br>def __get_builtin_constructor(name):<br>   try:<br>       if name in ('SHA1', 'sha1'):<br>           import _sha<br>           return _sha.new<br>       elif name in ('MD5', 'md5'):<br>           import _md5<br>           return _md5.new<br>       elif name in ('SHA256', 'sha256', 'SHA224', 'sha224'):<br>           import _sha256<br>           bs = name[3:]<br>           if bs == '256':<br>               return _sha256.sha256<br>           elif bs == '224':<br>               return _sha256.sha224<br>       elif name in ('SHA512', 'sha512', 'SHA384', 'sha384'):<br>           import _sha512<br>           bs = name[3:]<br>           if bs == '512':<br>               return _sha512.sha512<br>           elif bs == '384':<br>               return _sha512.sha384<br>   except ImportError:<br>       pass # no extension module, this hash is unsupported.<br><br>   raise ValueError('unsupported hash type ' + name)<br><br><br>When I read this code, it looks messy, so I want to refactor it and make it become more clearly . <br><br>Then, it will be like this <br><br>def get_builtin_constructor(name):<br>   try:<br>       if name[:3] in ('SHA','sha'):<br>          if(name[3:]=='1'):<br>              import _sha<br>              return _sha.new<br><br>          elif (name[3:] == '224'):<br>              import _sha256<br>              return _sha256.sha224<br><br>          elif (name[3:] == '256'):<br>              import _sha256<br>              return _sha256.sha256<br><br>          elif (name[3:] == '384'):<br>              import _sha512<br>              return _sha512.sha384<br><br>          elif (name[3:] == '512'):<br>              import _sha512<br>              return _sha512.sha512<br>       elif name in ('MD5', 'md5'):<br>           import _md5<br>           return _md5.new<br><br>   except ImportError:<br>       pass # no extension module, this hash is unsupported.<br><br>   raise ValueError('unsupported hash type ' + name)<br><br>I will be grateful for any help you can provide. I really appreciate any feedback you can offer! <br><br>Best regards, <br>Park Tsai !!<br></div>
RetroSearch is an open source project built by @garambo
| Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4