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

Unified Diff: third_party/twisted_8_1/twisted/python/plugin.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 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
« no previous file with comments | « third_party/twisted_8_1/twisted/python/otp.py ('k') | third_party/twisted_8_1/twisted/python/procutils.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/twisted_8_1/twisted/python/plugin.py
diff --git a/third_party/twisted_8_1/twisted/python/plugin.py b/third_party/twisted_8_1/twisted/python/plugin.py
deleted file mode 100644
index 971d38907ad7aa2b6b9cc448597c5f95c742ca22..0000000000000000000000000000000000000000
--- a/third_party/twisted_8_1/twisted/python/plugin.py
+++ /dev/null
@@ -1,332 +0,0 @@
-# Copyright (c) 2001-2004 Twisted Matrix Laboratories.
-# See LICENSE for details.
-
-
-from __future__ import nested_scopes
-
-# System Imports
-import sys
-import os
-import errno
-import types
-import warnings
-
-# Twisted imports
-from twisted.python import util
-
-# Sibling Imports
-from reflect import namedModule
-
-try:
- from os.path import realpath as cacheTransform
-except ImportError:
- from os.path import abspath as cacheTransform
-
-class PlugIn:
- """I am a Python module registered in a plugins.tml file.
- """
- def __init__(self, name, module, **kw):
- self.name = name
- self.module = module
- for key, value in kw.items():
- setattr(self, key, value)
-
- def isLoaded(self):
- """Check to see if the module for this plugin has been imported yet.
-
- @rtype: C{int}
- @return: A true value if the module for this plugin has been loaded,
- false otherwise.
- """
- return sys.modules.has_key(self.module)
-
- def load(self):
- """Load the module for this plugin.
-
- @rtype: C{ModuleType}
- @return: The module object that is loaded.
- """
- return namedModule(self.module)
-
- def __repr__(self):
- if self.isLoaded():
- loaded = ' loaded'
- else:
- loaded = ''
- return "<Plugin %s %s%s>" % (repr(self.name), self.module, loaded)
-
-class DropIn:
- """I am a Python package containing plugins.tml.
- """
- def __init__(self, name):
- self.name = name
- self.plugins = []
-
- def register(self, name, module, **kw):
- """Register a new plug-in.
- """
- warnings.warn("The twisted.python.plugin system is deprecated. "
- "See twisted.plugin for the revised edition.",
- DeprecationWarning, 2)
- self.plugins.append(PlugIn(name, module, **kw))
-
- def __repr__(self):
- return "<Package %s %s>" % (self.name, self.plugins)
-
-
-def _prepCallbacks(debug, progress):
- if debug:
- try:
- debug('Looking for plugin.tml files')
- except:
- debug = lambda x: sys.stdout.write(x + '\n')
- debug('Looking for plugin.tml files')
- else:
- debug = lambda x: None
- if progress:
- try:
- progress(0.0)
- except:
- pb = util.makeStatusBar(76)
- progress = lambda x, pb=pb: sys.stdout.write(pb(x) + '\r')
- progress(0.0)
- else:
- progress = lambda x: None
- return debug, progress
-
-def getPluginFileList(debugInspection=None, showProgress=None):
- """Find plugin.tml files in subdirectories of paths in C{sys.path}
-
- @type debugInspection: C{None} or a callable taking one argument
- @param debugInspection: If not None, this is invoked with strings containing
- debug information about the loading process. If it is any other true value,
- this debug information is written to stdout (This behavior is deprecated).
-
- @type showProgress: C{None} or a callable taking one argument.
- @param showProgress: If not None, this is invoked with floating point
- values between 0 and 1 describing the progress of the loading process.
- If it is any other true value, this progress information is written to
- stdout. (This behavior is deprecated).
-
- @rtype: C{list} of C{str}
- @return: A list of the plugin.tml files found.
- """
- if isinstance(debugInspection, types.IntType):
- warnings.warn(
- "int parameter for debugInspection is deprecated, pass None or "
- "a function that takes a single argument instead.",
- DeprecationWarning, 2
- )
- if isinstance(showProgress, types.IntType):
- warnings.warn(
- "int parameter for showProgress is deprecated, pass None or "
- "a function that takes a single argument instead.",
- DeprecationWarning, 2
- )
- debugInspection, showProgress = _prepCallbacks(debugInspection, showProgress)
- exists = os.path.exists
- join = os.sep.join
- result = []
- loaded = {}
- seenNames = {}
-
- # XXX Some people claim to have found non-strings in sys.path (an empty
- # list, in particular). Instead of tracking down the cause for their
- # presence, they decided it was better to discard them unconditionally
- # without further investigation. At some point, someone should track
- # down where non-strings are coming from and do something about them.
- paths = [cacheTransform(p) for p in sys.path
- if isinstance(p, str) and os.path.isdir(p)]
-
- # special case for commonly used directories we *know* shouldn't be checked
- # and really slow down mktap and such-like in real installations
- for p in ("/usr/bin", "/usr/local/bin"):
- try:
- paths.remove(p)
- except ValueError:
- pass
- progress = 0.0
- increments = 1.0 / len(paths)
-
- for (index, d) in zip(range(len(paths)), paths):
- showProgress(progress)
- if loaded.has_key(d):
- debugInspection('Already saw ' + d)
- continue
- else:
- debugInspection('Recursing through ' + d)
- try:
- subDirs = os.listdir(d)
- except OSError, (err, s):
- # Permission denied, carry on
- if err == errno.EACCES:
- debugInspection('Permission denied on ' + d)
- else:
- raise
- else:
- # filter out files we obviously don't need to check - ones with '.' in them
- subDirs = [s for s in subDirs if "." not in s]
- if not subDirs:
- continue
- incr = increments * (1.0 / len(subDirs))
- for plugindir in subDirs:
- if seenNames.has_key(plugindir):
- debugInspection('Seen %s already' % plugindir)
- continue
- tmlname = join((d, plugindir, "plugins.tml"))
- if isAModule(join((d,plugindir))):
- seenNames[plugindir] = 1
- if exists(tmlname):
- result.append(tmlname)
- debugInspection('Found ' + tmlname)
- else:
- debugInspection('Failed ' + tmlname)
- else:
- debugInspection('Not a module ' + tmlname)
- progress = progress + incr
- showProgress(progress)
-
- showProgress(1.0)
- return result
-
-def loadPlugins(plugInType, fileList, debugInspection=None, showProgress=None):
- """Traverse the given list of files and attempt to load plugins from them.
-
- @type plugInType: C{str}
- @param plugInType: The type of plugin to search for. This is tested
- against the C{type} argument to the C{register} function in the
- plugin.tml files.
-
- @type fileList: C{list} of C{str}
- @param fileList: A list of the files to attempt to load plugin
- information from. One name is put in their scope, the C{register}
- function.
-
- @type debugInspection: C{None} or a callable taking one argument
- @param debugInspection: If not None, this is invoked with strings containing
- debug information about the loading process. If it is any other true value,
- this debug information is written to stdout (This behavior is deprecated).
-
- @type showProgress: C{None} or a callable taking one argument.
- @param showProgress: If not None, this is invoked with floating point
- values between 0 and 1 describing the progress of the loading process.
- If it is any other true value, this progress information is written to
- stdout. (This behavior is deprecated).
-
- @rtype: C{list}
- @return: A list of the C{PlugIn} objects found.
- """
- if isinstance(debugInspection, types.IntType):
- warnings.warn(
- "int parameter for debugInspection is deprecated, pass None or "
- "a function that takes a single argument instead.",
- DeprecationWarning, 4
- )
- if isinstance(showProgress, types.IntType):
- warnings.warn(
- "int parameter for showProgress is deprecated, pass None or "
- "a function that takes a single argument instead.",
- DeprecationWarning, 4
- )
- result = []
- debugInspection, showProgress = _prepCallbacks(debugInspection, showProgress)
-
- if not fileList:
- raise ValueError("No plugins passed to loadPlugins")
-
- increments = 1.0 / len(fileList)
- progress = 0.0
-
- for (index, tmlFile) in zip(range(len(fileList)), fileList):
- showProgress(progress)
- debugInspection("Loading from " + tmlFile)
- pname = os.path.split(os.path.abspath(tmlFile))[-2]
- dropin = DropIn(pname)
- ns = {'register': dropin.register, '__file__': tmlFile}
- try:
- execfile(tmlFile, ns)
- except (IOError, OSError), e:
- # guess we don't have permissions for that
- debugInspection("Error loading: %s" % e)
- continue
-
- ldp = len(dropin.plugins) or 1.0
- incr = increments * (1.0 / ldp)
- for plugin in dropin.plugins:
- if plugInType == plugin.type:
- result.append(plugin)
- debugInspection("Found %r" % (plugin,))
- else:
- debugInspection("Disqualified %r" % (plugin,))
- progress = progress + incr
- showProgress(progress)
- debugInspection("Finished loading from %s!" % tmlFile)
-
- showProgress(1.0)
- debugInspection("Returning %r" % (result,))
- return result
-
-def getPlugIns(plugInType, debugInspection=None, showProgress=None):
- """Helper function to get all the plugins of a particular type.
-
- @type plugInType: C{str}
- @param plugInType: The type of plugin to search for. This is tested
- against the C{type} argument to the C{register} function in the
- plugin.tml files.
-
- @type debugInspection: C{None} or a callable taking one argument
- @param debugInspection: If not None, this is invoked with strings containing
- debug information about the loading process. If it is any other true value,
- this debug information is written to stdout (This behavior is deprecated).
-
- @type showProgress: C{None} or a callable taking one argument.
- @param showProgress: If not None, this is invoked with floating point
- values between 0 and 1 describing the progress of the loading process.
- If it is any other true value, this progress information is written to
- stdout. (This behavior is deprecated).
-
- @rtype: C{list}
- @return: A list of C{PlugIn} objects that were found.
- """
- warnings.warn("The twisted.python.plugin system is deprecated. "
- "See twisted.plugin for the revised edition.",
- DeprecationWarning, 2)
- return _getPlugIns(plugInType, debugInspection, showProgress)
-
-def _getPlugIns(plugInType, debugInspection=None, showProgress=None):
- if isinstance(debugInspection, types.IntType):
- warnings.warn(
- "int parameter for debugInspection is deprecated, pass None or "
- "a function that takes a single argument instead.",
- DeprecationWarning, 3
- )
- if isinstance(showProgress, types.IntType):
- warnings.warn(
- "int parameter for showProgress is deprecated, pass None or "
- "a function that takes a single argument instead.",
- DeprecationWarning, 3
- )
- debugInspection, showProgress = _prepCallbacks(debugInspection, showProgress)
-
- firstHalf = secondHalf = lambda x: None
- if showProgress:
- firstHalf = lambda x: showProgress(x / 2.0)
- secondHalf = lambda x: showProgress(x / 2.0 + 0.5)
-
- tmlFiles = getPluginFileList(debugInspection, firstHalf)
- if not tmlFiles:
- return []
- return loadPlugins(plugInType, tmlFiles, debugInspection, secondHalf)
-
-def isAModule(d):
- """This function checks the directory for __init__ files.
- """
- suffixes = ['py', 'pyc', 'pyo', 'so', 'pyd', 'dll']
- exists = os.path.exists
- join = os.sep.join
- for s in suffixes: # bad algorithm, but probably works
- if exists(join((d,'__init__.%s' % s))):
- return 1
- return 0
-
-__all__ = ['PlugIn', 'DropIn', 'getPluginFileList', 'loadPlugins', 'getPlugIns']
« no previous file with comments | « third_party/twisted_8_1/twisted/python/otp.py ('k') | third_party/twisted_8_1/twisted/python/procutils.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698