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

Unified Diff: Tools/Scripts/webkitpy/thirdparty/__init__.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/__init__.py
diff --git a/Tools/Scripts/webkitpy/thirdparty/__init__.py b/Tools/Scripts/webkitpy/thirdparty/__init__.py
index 478439c8a90145a5264a3ac7d2743ee95dc998ca..2058d8e5b967b3c1f110603a00f076a44c3c24c2 100644
--- a/Tools/Scripts/webkitpy/thirdparty/__init__.py
+++ b/Tools/Scripts/webkitpy/thirdparty/__init__.py
@@ -22,142 +22,12 @@
# This module is required for Python to treat this directory as a package.
-"""Autoinstalls third-party code required by WebKit."""
-
-
-import codecs
import os
import sys
-from webkitpy.common.system.autoinstall import AutoInstaller
-from webkitpy.common.system.filesystem import FileSystem
-
-_THIRDPARTY_DIR = os.path.dirname(__file__)
-_AUTOINSTALLED_DIR = os.path.join(_THIRDPARTY_DIR, "autoinstalled")
-
-# Putting the autoinstall code into webkitpy/thirdparty/__init__.py
-# ensures that no autoinstalling occurs until a caller imports from
-# webkitpy.thirdparty. This is useful if the caller wants to configure
-# logging prior to executing autoinstall code.
-
-# FIXME: If any of these servers is offline, webkit-patch breaks (and maybe
-# other scripts do, too). See <http://webkit.org/b/42080>.
-
-# We put auto-installed third-party modules in this directory--
-#
-# webkitpy/thirdparty/autoinstalled
-fs = FileSystem()
-fs.maybe_make_directory(_AUTOINSTALLED_DIR)
-
-init_path = fs.join(_AUTOINSTALLED_DIR, "__init__.py")
-if not fs.exists(init_path):
- fs.write_text_file(init_path, "")
-
-readme_path = fs.join(_AUTOINSTALLED_DIR, "README")
-if not fs.exists(readme_path):
- fs.write_text_file(readme_path,
- "This directory is auto-generated by WebKit and is "
- "safe to delete.\nIt contains needed third-party Python "
- "packages automatically downloaded from the web.")
-
-
-class AutoinstallImportHook(object):
- def __init__(self, filesystem=None):
- self._fs = filesystem or FileSystem()
-
- def _ensure_autoinstalled_dir_is_in_sys_path(self):
- # Some packages require that the are being put somewhere under a directory in sys.path.
- if not _AUTOINSTALLED_DIR in sys.path:
- sys.path.append(_AUTOINSTALLED_DIR)
-
- def find_module(self, fullname, _):
- # This method will run before each import. See http://www.python.org/dev/peps/pep-0302/
- if '.autoinstalled' not in fullname:
- return
-
- # Note: all of the methods must follow the "_install_XXX" convention in
- # order for autoinstall_everything(), below, to work properly.
- if '.irc' in fullname:
- self._install_irc()
- elif '.mechanize' in fullname:
- self._install_mechanize()
- elif '.pep8' in fullname:
- self._install_pep8()
- elif '.pylint' in fullname:
- self._install_pylint()
- elif '.coverage' in fullname:
- self._install_coverage()
- elif '.webpagereplay' in fullname:
- self._install_webpagereplay()
-
- def _install_irc(self):
- # Since irclib and ircbot are two top-level packages, we need to import
- # them separately. We group them into an irc package for better
- # organization purposes.
- irc_dir = self._fs.join(_AUTOINSTALLED_DIR, "irc")
- installer = AutoInstaller(target_dir=irc_dir)
- did_install_something = installer.install(url="http://downloads.sourceforge.net/project/python-irclib/python-irclib/0.4.8/python-irclib-0.4.8.zip",
- url_subpath="irclib.py")
- did_install_something |= installer.install(url="http://downloads.sourceforge.net/project/python-irclib/python-irclib/0.4.8/python-irclib-0.4.8.zip",
- url_subpath="ircbot.py")
- return did_install_something
-
- def _install_mechanize(self):
- return self._install("http://pypi.python.org/packages/source/m/mechanize/mechanize-0.2.5.tar.gz",
- "mechanize-0.2.5/mechanize")
-
- def _install_pep8(self):
- return self._install("http://pypi.python.org/packages/source/p/pep8/pep8-0.5.0.tar.gz#md5=512a818af9979290cd619cce8e9c2e2b",
- "pep8-0.5.0/pep8.py")
-
- def _install_pylint(self):
- self._ensure_autoinstalled_dir_is_in_sys_path()
- did_install_something = False
- if (not self._fs.exists(self._fs.join(_AUTOINSTALLED_DIR, "pylint")) or
- not self._fs.exists(self._fs.join(_AUTOINSTALLED_DIR, "logilab/astng")) or
- not self._fs.exists(self._fs.join(_AUTOINSTALLED_DIR, "logilab/common"))):
- installer = AutoInstaller(target_dir=_AUTOINSTALLED_DIR)
- files_to_remove = []
- if sys.platform == 'win32':
- files_to_remove = ['test/data/write_protected_file.txt']
- did_install_something = installer.install("http://pypi.python.org/packages/source/l/logilab-common/logilab-common-0.58.1.tar.gz#md5=77298ab2d8bb8b4af9219791e7cee8ce", url_subpath="logilab-common-0.58.1", target_name="logilab/common", files_to_remove=files_to_remove)
- did_install_something |= installer.install("http://pypi.python.org/packages/source/l/logilab-astng/logilab-astng-0.24.1.tar.gz#md5=ddaf66e4d85714d9c47a46d4bed406de", url_subpath="logilab-astng-0.24.1", target_name="logilab/astng")
- did_install_something |= installer.install('http://pypi.python.org/packages/source/p/pylint/pylint-0.25.1.tar.gz#md5=728bbc2b339bc3749af013709a7f87a5', url_subpath="pylint-0.25.1", target_name="pylint")
- return did_install_something
-
- # autoinstalled.buildbot is used by BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py
- # and should ideally match the version of BuildBot used at build.webkit.org.
- def _install_coverage(self):
- self._ensure_autoinstalled_dir_is_in_sys_path()
- return self._install(url="http://pypi.python.org/packages/source/c/coverage/coverage-3.5.1.tar.gz#md5=410d4c8155a4dab222f2bc51212d4a24", url_subpath="coverage-3.5.1/coverage")
-
- def _install_unittest2(self):
- self._ensure_autoinstalled_dir_is_in_sys_path()
- return self._install(url="http://pypi.python.org/packages/source/u/unittest2/unittest2-0.5.1.tar.gz#md5=a0af5cac92bbbfa0c3b0e99571390e0f", url_subpath="unittest2-0.5.1/unittest2")
-
- def _install_webpagereplay(self):
- did_install_something = False
- if not self._fs.exists(self._fs.join(_AUTOINSTALLED_DIR, "webpagereplay")):
- did_install_something = self._install("http://web-page-replay.googlecode.com/files/webpagereplay-1.1.2.tar.gz", "webpagereplay-1.1.2")
- self._fs.move(self._fs.join(_AUTOINSTALLED_DIR, "webpagereplay-1.1.2"), self._fs.join(_AUTOINSTALLED_DIR, "webpagereplay"))
-
- module_init_path = self._fs.join(_AUTOINSTALLED_DIR, "webpagereplay", "__init__.py")
- if not self._fs.exists(module_init_path):
- self._fs.write_text_file(module_init_path, "")
- return did_install_something
-
- def _install(self, url, url_subpath=None, target_name=None):
- installer = AutoInstaller(target_dir=_AUTOINSTALLED_DIR)
- return installer.install(url=url, url_subpath=url_subpath, target_name=target_name)
-
-
-_hook = AutoinstallImportHook()
-sys.meta_path.append(_hook)
-
-
-def autoinstall_everything():
- install_methods = [method for method in dir(_hook.__class__) if method.startswith('_install_')]
- did_install_something = False
- for method in install_methods:
- did_install_something |= getattr(_hook, method)()
- return did_install_something
+# Some of the thirdparty modules assume they've been installed into PYTHONPATH.
+# Rather than try to ensure that every caller already has PYTHONPATH set correctly,
+# we adjust it here.
+THIRDPARTY_DIR = os.path.dirname(__file__)
+if not THIRDPARTY_DIR in sys.path:
+ sys.path.append(THIRDPARTY_DIR)
« no previous file with comments | « Tools/Scripts/webkitpy/thirdparty/README.chromium ('k') | Tools/Scripts/webkitpy/thirdparty/__init___unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698