[PATCH 2 of 8] extensions: split extraction of descriptions
Cédric Duval
cedricduval at free.fr
Sat Jul 4 15:05:08 CDT 2009
# HG changeset patch
# User Cédric Duval <cedricduval at free.fr>
# Date 1246737838 -7200
# Node ID fcb323504f182c854d1704367c745494abd59fae
# Parent b48834a6d0e1c68ebe2bee05f5d24a424bfef40b
extensions: split extraction of descriptions
Moving it away from disabled(). More generic function to extract descriptions
from a given hgext path, meant to be later moved into extdoc.
diff --git a/mercurial/extensions.py b/mercurial/extensions.py
--- a/mercurial/extensions.py
+++ b/mercurial/extensions.py
@@ -119,19 +119,29 @@
return origfn
def disabled():
- '''find disabled extensions from hgext
+ '''find disabled extensions
returns a dict of {name: desc}, and the max name length'''
+ # extensions found from hgext's path
import hgext
extpath = os.path.dirname(os.path.abspath(hgext.__file__))
+ d = extractdoc(extpath)
+
+ exts = dict([ (k, v) for k, v in d.iteritems() if k not in _order ])
+ maxlength = max([ len(name) for name in exts.keys() or [''] ])
+
+ return exts, maxlength
+
+def extractdoc(extpath):
+ '''extract descriptions from extensions in extpath
+ returns a dict of {name: desc}'''
try: # might not be a filesystem path
files = os.listdir(extpath)
except OSError:
- return None, 0
+ return {}
exts = {}
- maxlength = 0
for e in files:
if e.endswith('.py'):
@@ -143,7 +153,7 @@
if not os.path.exists(path):
continue
- if name in exts or name in _order or name == '__init__':
+ if name in exts or name == '__init__':
continue
try:
@@ -159,10 +169,7 @@
else:
exts[name] = _('(no help text available)')
- if len(name) > maxlength:
- maxlength = len(name)
-
- return exts, maxlength
+ return exts
def enabled():
'''return a dict of {name: desc} of extensions, and the max name length'''
More information about the Mercurial-devel
mailing list