1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-11-04 14:30:11 +01:00
fdroidserver/.pylint-plugins/astng_hashlib.py
Hans-Christoph Steiner e9dc2ddd51 jenkins-build: make pylint handle the hashlib hash classes properly
hashlib uses some magic to load whatever is built into the local openssl.
pylint gets confused by this, so we need a pylint plugin to trick pylint
into thinking everything is good.
2014-04-03 12:33:22 -04:00

40 lines
831 B
Python

#
# started from http://www.logilab.org/blogentry/78354
#
from logilab.astng import MANAGER
from logilab.astng.builder import ASTNGBuilder
def hashlib_transform(module):
if module.name == 'hashlib':
fake = ASTNGBuilder(MANAGER).string_build('''
class fakehash(object):
digest_size = -1
def __init__(self, value): pass
def digest(self):
return u''
def hexdigest(self):
return u''
def update(self, value): pass
class md5(fakehash):
pass
class sha1(fakehash):
pass
class sha256(fakehash):
pass
''')
for hashfunc in ('sha256', 'sha1', 'md5'):
module.locals[hashfunc] = fake.locals[hashfunc]
def register(linter):
"""called when loaded by pylint --load-plugins, register our tranformation
function here
"""
MANAGER.register_transformer(hashlib_transform)