Hello everybody, I am Park Tsai. I want to refactor __get_builtin_constructor on hasklib.py of python 2.7 (https://github.com/python/cpython/blob/2.7/Lib/hashlib.py#L72).
This is the first time that I try to refactor code of CPython on GitHub, so I am very excited. This is __get_builtin_constructor code on hasklib.py ,as follows. def __get_builtin_constructor(name): try: if name in ('SHA1', 'sha1'): import _sha return _sha.new elif name in ('MD5', 'md5'): import _md5 return _md5.new elif name in ('SHA256', 'sha256', 'SHA224', 'sha224'): import _sha256 bs = name[3:] if bs == '256': return _sha256.sha256 elif bs == '224': return _sha256.sha224 elif name in ('SHA512', 'sha512', 'SHA384', 'sha384'): import _sha512 bs = name[3:] if bs == '512': return _sha512.sha512 elif bs == '384': return _sha512.sha384 except ImportError: pass # no extension module, this hash is unsupported. raise ValueError('unsupported hash type ' + name) When I read this code, it looks messy, so I want to refactor it and make it become more clearly . Then, it will be like this def get_builtin_constructor(name): try: if name[:3] in ('SHA','sha'): if(name[3:]=='1'): import _sha return _sha.new elif (name[3:] == '224'): import _sha256 return _sha256.sha224 elif (name[3:] == '256'): import _sha256 return _sha256.sha256 elif (name[3:] == '384'): import _sha512 return _sha512.sha384 elif (name[3:] == '512'): import _sha512 return _sha512.sha512 elif name in ('MD5', 'md5'): import _md5 return _md5.new except ImportError: pass # no extension module, this hash is unsupported. raise ValueError('unsupported hash type ' + name) I will be grateful for any help you can provide. I really appreciate any feedback you can offer! Best regards, Park Tsai !!
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com