diff options
author | Ori Bernstein <ori@eigenstate.org> | 2021-06-14 00:00:37 +0000 |
---|---|---|
committer | Ori Bernstein <ori@eigenstate.org> | 2021-06-14 00:00:37 +0000 |
commit | a73a964e51247ed169d322c725a3a18859f109a3 (patch) | |
tree | 3f752d117274d444bda44e85609aeac1acf313f3 /sys/lib/python/mercurial/extensions.py | |
parent | e64efe273fcb921a61bf27d33b230c4e64fcd425 (diff) |
python, hg: tow outside the environment.
they've served us well, and can ride off into the sunset.
Diffstat (limited to 'sys/lib/python/mercurial/extensions.py')
-rw-r--r-- | sys/lib/python/mercurial/extensions.py | 178 |
1 files changed, 0 insertions, 178 deletions
diff --git a/sys/lib/python/mercurial/extensions.py b/sys/lib/python/mercurial/extensions.py deleted file mode 100644 index 30da1ebd1..000000000 --- a/sys/lib/python/mercurial/extensions.py +++ /dev/null @@ -1,178 +0,0 @@ -# extensions.py - extension handling for mercurial -# -# Copyright 2005-2007 Matt Mackall <mpm@selenic.com> -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2, incorporated herein by reference. - -import imp, os -import util, cmdutil, help -from i18n import _, gettext - -_extensions = {} -_order = [] - -def extensions(): - for name in _order: - module = _extensions[name] - if module: - yield name, module - -def find(name): - '''return module with given extension name''' - try: - return _extensions[name] - except KeyError: - for k, v in _extensions.iteritems(): - if k.endswith('.' + name) or k.endswith('/' + name): - return v - raise KeyError(name) - -def loadpath(path, module_name): - module_name = module_name.replace('.', '_') - path = os.path.expanduser(path) - if os.path.isdir(path): - # module/__init__.py style - d, f = os.path.split(path.rstrip('/')) - fd, fpath, desc = imp.find_module(f, [d]) - return imp.load_module(module_name, fd, fpath, desc) - else: - return imp.load_source(module_name, path) - -def load(ui, name, path): - if name.startswith('hgext.') or name.startswith('hgext/'): - shortname = name[6:] - else: - shortname = name - if shortname in _extensions: - return - _extensions[shortname] = None - if path: - # the module will be loaded in sys.modules - # choose an unique name so that it doesn't - # conflicts with other modules - mod = loadpath(path, 'hgext.%s' % name) - else: - def importh(name): - mod = __import__(name) - components = name.split('.') - for comp in components[1:]: - mod = getattr(mod, comp) - return mod - try: - mod = importh("hgext.%s" % name) - except ImportError: - mod = importh(name) - _extensions[shortname] = mod - _order.append(shortname) - - uisetup = getattr(mod, 'uisetup', None) - if uisetup: - uisetup(ui) - -def loadall(ui): - result = ui.configitems("extensions") - for (name, path) in result: - if path: - if path[0] == '!': - continue - try: - load(ui, name, path) - except KeyboardInterrupt: - raise - except Exception, inst: - if path: - ui.warn(_("*** failed to import extension %s from %s: %s\n") - % (name, path, inst)) - else: - ui.warn(_("*** failed to import extension %s: %s\n") - % (name, inst)) - if ui.traceback(): - return 1 - -def wrapcommand(table, command, wrapper): - aliases, entry = cmdutil.findcmd(command, table) - for alias, e in table.iteritems(): - if e is entry: - key = alias - break - - origfn = entry[0] - def wrap(*args, **kwargs): - return util.checksignature(wrapper)( - util.checksignature(origfn), *args, **kwargs) - - wrap.__doc__ = getattr(origfn, '__doc__') - wrap.__module__ = getattr(origfn, '__module__') - - newentry = list(entry) - newentry[0] = wrap - table[key] = tuple(newentry) - return entry - -def wrapfunction(container, funcname, wrapper): - def wrap(*args, **kwargs): - return wrapper(origfn, *args, **kwargs) - - origfn = getattr(container, funcname) - setattr(container, funcname, wrap) - return origfn - -def disabled(): - '''find disabled extensions from hgext - returns a dict of {name: desc}, and the max name length''' - - import hgext - extpath = os.path.dirname(os.path.abspath(hgext.__file__)) - - try: # might not be a filesystem path - files = os.listdir(extpath) - except OSError: - return None, 0 - - exts = {} - maxlength = 0 - for e in files: - - if e.endswith('.py'): - name = e.rsplit('.', 1)[0] - path = os.path.join(extpath, e) - else: - name = e - path = os.path.join(extpath, e, '__init__.py') - if not os.path.exists(path): - continue - - if name in exts or name in _order or name == '__init__': - continue - - try: - file = open(path) - except IOError: - continue - else: - doc = help.moduledoc(file) - file.close() - - if doc: # extracting localized synopsis - exts[name] = gettext(doc).splitlines()[0] - else: - exts[name] = _('(no help text available)') - - if len(name) > maxlength: - maxlength = len(name) - - return exts, maxlength - -def enabled(): - '''return a dict of {name: desc} of extensions, and the max name length''' - exts = {} - maxlength = 0 - exthelps = [] - for ename, ext in extensions(): - doc = (gettext(ext.__doc__) or _('(no help text available)')) - ename = ename.split('.')[-1] - maxlength = max(len(ename), maxlength) - exts[ename] = doc.splitlines()[0].strip() - - return exts, maxlength |