summaryrefslogtreecommitdiff
path: root/sys/lib/python/mercurial/extensions.py
diff options
context:
space:
mode:
authorOri Bernstein <ori@eigenstate.org>2021-06-14 00:00:37 +0000
committerOri Bernstein <ori@eigenstate.org>2021-06-14 00:00:37 +0000
commita73a964e51247ed169d322c725a3a18859f109a3 (patch)
tree3f752d117274d444bda44e85609aeac1acf313f3 /sys/lib/python/mercurial/extensions.py
parente64efe273fcb921a61bf27d33b230c4e64fcd425 (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.py178
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