Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2211)

Unified Diff: Tools/Scripts/webkitpy/thirdparty/logilab/astng/brain/py2stdlib.py

Issue 18418010: Check in the thirdparty libs needed for webkitpy. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Tools/Scripts/webkitpy/thirdparty/logilab/astng/brain/py2stdlib.py
diff --git a/Tools/Scripts/webkitpy/thirdparty/logilab/astng/brain/py2stdlib.py b/Tools/Scripts/webkitpy/thirdparty/logilab/astng/brain/py2stdlib.py
new file mode 100644
index 0000000000000000000000000000000000000000..c16ad4c407416dfcc7e708f76784f44e82385439
--- /dev/null
+++ b/Tools/Scripts/webkitpy/thirdparty/logilab/astng/brain/py2stdlib.py
@@ -0,0 +1,164 @@
+"""ASTNG hooks for the Python 2 standard library.
+
+Currently help understanding of :
+
+* hashlib.md5 and hashlib.sha1
+"""
+
+from logilab.astng import MANAGER
+from logilab.astng.builder import ASTNGBuilder
+
+MODULE_TRANSFORMS = {}
+
+def hashlib_transform(module):
+ fake = ASTNGBuilder(MANAGER).string_build('''
+
+class md5(object):
+ def __init__(self, value): pass
+ def hexdigest(self):
+ return u''
+
+class sha1(object):
+ def __init__(self, value): pass
+ def hexdigest(self):
+ return u''
+
+''')
+ for hashfunc in ('sha1', 'md5'):
+ module.locals[hashfunc] = fake.locals[hashfunc]
+
+def collections_transform(module):
+ fake = ASTNGBuilder(MANAGER).string_build('''
+
+class defaultdict(dict):
+ default_factory = None
+ def __missing__(self, key): pass
+
+class deque(object):
+ maxlen = 0
+ def __init__(iterable=None, maxlen=None): pass
+ def append(self, x): pass
+ def appendleft(self, x): pass
+ def clear(self): pass
+ def count(self, x): return 0
+ def extend(self, iterable): pass
+ def extendleft(self, iterable): pass
+ def pop(self): pass
+ def popleft(self): pass
+ def remove(self, value): pass
+ def reverse(self): pass
+ def rotate(self, n): pass
+
+''')
+
+ for klass in ('deque', 'defaultdict'):
+ module.locals[klass] = fake.locals[klass]
+
+def pkg_resources_transform(module):
+ fake = ASTNGBuilder(MANAGER).string_build('''
+
+def resource_exists(package_or_requirement, resource_name):
+ pass
+
+def resource_isdir(package_or_requirement, resource_name):
+ pass
+
+def resource_filename(package_or_requirement, resource_name):
+ pass
+
+def resource_stream(package_or_requirement, resource_name):
+ pass
+
+def resource_string(package_or_requirement, resource_name):
+ pass
+
+def resource_listdir(package_or_requirement, resource_name):
+ pass
+
+def extraction_error():
+ pass
+
+def get_cache_path(archive_name, names=()):
+ pass
+
+def postprocess(tempname, filename):
+ pass
+
+def set_extraction_path(path):
+ pass
+
+def cleanup_resources(force=False):
+ pass
+
+''')
+
+ for func_name, func in fake.locals.items():
+ module.locals[func_name] = func
+
+
+def urlparse_transform(module):
+ fake = ASTNGBuilder(MANAGER).string_build('''
+
+def urlparse(urlstring, default_scheme='', allow_fragments=True):
+ return ParseResult()
+
+class ParseResult(object):
+ def __init__(self):
+ self.scheme = ''
+ self.netloc = ''
+ self.path = ''
+ self.params = ''
+ self.query = ''
+ self.fragment = ''
+ self.username = None
+ self.password = None
+ self.hostname = None
+ self.port = None
+
+ def geturl(self):
+ return ''
+''')
+
+ for func_name, func in fake.locals.items():
+ module.locals[func_name] = func
+
+def subprocess_transform(module):
+ fake = ASTNGBuilder(MANAGER).string_build('''
+
+class Popen(object):
+
+ def __init__(self, args, bufsize=0, executable=None,
+ stdin=None, stdout=None, stderr=None,
+ preexec_fn=None, close_fds=False, shell=False,
+ cwd=None, env=None, universal_newlines=False,
+ startupinfo=None, creationflags=0):
+ pass
+
+ def communicate(self, input=None):
+ return ('string', 'string')
+ ''')
+
+ for func_name, func in fake.locals.items():
+ module.locals[func_name] = func
+
+
+
+MODULE_TRANSFORMS['hashlib'] = hashlib_transform
+MODULE_TRANSFORMS['collections'] = collections_transform
+MODULE_TRANSFORMS['pkg_resources'] = pkg_resources_transform
+MODULE_TRANSFORMS['urlparse'] = urlparse_transform
+MODULE_TRANSFORMS['subprocess'] = subprocess_transform
+
+
+def transform(module):
+ try:
+ tr = MODULE_TRANSFORMS[module.name]
+ except KeyError:
+ pass
+ else:
+ tr(module)
+
+from logilab.astng import MANAGER
+MANAGER.register_transformer(transform)
+
+

Powered by Google App Engine
This is Rietveld 408576698