Submitter | Katsunori FUJIWARA |
---|---|
Date | Aug. 15, 2017, 4:19 p.m. |
Message ID | <b6dd19c795147e675b9c.1502813944@speaknoevil> |
Download | mbox | patch |
Permalink | /patch/23020/ |
State | Accepted |
Headers | show |
Comments
On Wed, 16 Aug 2017 01:19:04 +0900, FUJIWARA Katsunori wrote: > # HG changeset patch > # User FUJIWARA Katsunori <foozy@lares.dti.ne.jp> > # Date 1502792844 -32400 > # Tue Aug 15 19:27:24 2017 +0900 > # Node ID b6dd19c795147e675b9caf58383b6cafd3f03534 > # Parent 1d204d17d51eb143f1ef66426cec1831cd8c93bf > # Available At https://bitbucket.org/foozy/mercurial-wip > # hg pull https://bitbucket.org/foozy/mercurial-wip -r b6dd19c79514 > # EXP-Topic i18n-fix-update-pot-issues > i18n: use saved object to get actual function information if available > > To list up available compression types instead of > ".. bundlecompressionmarker" in "hg help bundlespec" output, proxy > object "docobject" is used, because: > > - current online help system requires that __doc__ of registered > object (maybe, function) is already well formatted in reST syntax > > - bundletype() method of compressionengine classes is used to list up > available compression types, but > > - __doc__ of bundletype() object (= "instancemethod") is read-only Just curious. Any reason why we can't make the bundletype.__doc__ statically formatted?
Patch
diff --git a/i18n/hggettext b/i18n/hggettext --- a/i18n/hggettext +++ b/i18n/hggettext @@ -119,6 +119,8 @@ def docstrings(path): for func, rstrip in functions: if func.__doc__: + docobj = func # this might be a proxy to provide formatted doc + func = getattr(func, '_origfunc', func) funcmod = inspect.getmodule(func) extra = '' if funcmod.__package__ == funcmod.__name__: @@ -128,8 +130,8 @@ def docstrings(path): src = inspect.getsource(func) name = "%s.%s" % (actualpath, func.__name__) lineno = inspect.getsourcelines(func)[1] - doc = func.__doc__ - origdoc = getattr(func, '_origdoc', '') + doc = docobj.__doc__ + origdoc = getattr(docobj, '_origdoc', '') if rstrip: doc = doc.rstrip() origdoc = origdoc.rstrip() diff --git a/mercurial/util.py b/mercurial/util.py --- a/mercurial/util.py +++ b/mercurial/util.py @@ -3752,6 +3752,8 @@ def bundlecompressiontopics(): value = docobject() value.__doc__ = doc + value._origdoc = engine.bundletype.__doc__ + value._origfunc = engine.bundletype items[bt[0]] = value