Re: [PATCH STABLE] i18n: use actual filename, in which function is defined, for hg.pot
On Sun, 13 Aug 2017 00:13:58 +0900, FUJIWARA Katsunori wrote: > At Sat, 05 Aug 2017 03:16:57 +0900, > FUJIWARA Katsunori wrote: > > > > At Fri, 4 Aug 2017 00:36:28 +0900, > > Yuya Nishihara wrote: > > > > > > On Wed, 02 Aug 2017 22:36:45 +0900, FUJIWARA Katsunori wrote: > > > > # HG changeset patch > > > > # User FUJIWARA Katsunori > > > > # Date 1501599731 -32400 > > > > # Wed Aug 02 00:02:11 2017 +0900 > > > > # Branch stable > > > > # Node ID b6d0bcd19b4dffb2360f909f459c27104ad16565 > > > > # Parent 76b171209151fe41dbf8dbfec473cc533f3b40ca > > > > # Available At https://bitbucket.org/foozy/mercurial-wip > > > > # hg pull https://bitbucket.org/foozy/mercurial-wip -r > > > > b6d0bcd19b4d > > > > # EXP-Topic i18n-fix-update-pot-issues > > > > i18n: use actual filename, in which function is defined, for hg.pot > > > > > > > +funcmod = inspect.getmodule(func) > > > > +extra = '' > > > > +if funcmod.__package__ == funcmod.__name__: > > > > +extra = '/__init__' > > > > +actualpath = '%s%s.py' % (funcmod.__name__.replace('.', > > > > '/'), extra) > > > > + > > > > src = inspect.getsource(func) > > > > -name = "%s.%s" % (path, func.__name__) > > > > +name = "%s.%s" % (actualpath, func.__name__) > > > > lineno = inspect.getsourcelines(func)[1] > > > > > > Perhaps inspect.getsourcefile() can be used. > > > > > > > Ah, I overlooked it. I'll post follow up patch on default. Thanks! > > I gave up using inspect.getsourcefile() in this case, because: > > - hggettext insert result of os.getcwd() into sys.path at first, in > order to avoid loading modules from already installed Mercurial, > > - and this makes inspect.getsourcefile() return absolute path > > Even with "." instead of os.getcwd(), we should trim additional "./" > prefix of filenames returned by inspect.getsourcefile(), in order to > keep current order of entries in hg.pot. > > If we omit trimming this additional "./", order of entries in hg.pot > is drastically changed, and it might cause meaningless changes of *.po > files. > > Simple replacement with inspect.getsourcefile() doesn't work as we > expected at first :-< Fair enough. Thanks for trying that. ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Re: [PATCH STABLE] i18n: use actual filename, in which function is defined, for hg.pot
At Sat, 05 Aug 2017 03:16:57 +0900, FUJIWARA Katsunori wrote: > > At Fri, 4 Aug 2017 00:36:28 +0900, > Yuya Nishihara wrote: > > > > On Wed, 02 Aug 2017 22:36:45 +0900, FUJIWARA Katsunori wrote: > > > # HG changeset patch > > > # User FUJIWARA Katsunori > > > # Date 1501599731 -32400 > > > # Wed Aug 02 00:02:11 2017 +0900 > > > # Branch stable > > > # Node ID b6d0bcd19b4dffb2360f909f459c27104ad16565 > > > # Parent 76b171209151fe41dbf8dbfec473cc533f3b40ca > > > # Available At https://bitbucket.org/foozy/mercurial-wip > > > # hg pull https://bitbucket.org/foozy/mercurial-wip -r > > > b6d0bcd19b4d > > > # EXP-Topic i18n-fix-update-pot-issues > > > i18n: use actual filename, in which function is defined, for hg.pot > > > > > +funcmod = inspect.getmodule(func) > > > +extra = '' > > > +if funcmod.__package__ == funcmod.__name__: > > > +extra = '/__init__' > > > +actualpath = '%s%s.py' % (funcmod.__name__.replace('.', > > > '/'), extra) > > > + > > > src = inspect.getsource(func) > > > -name = "%s.%s" % (path, func.__name__) > > > +name = "%s.%s" % (actualpath, func.__name__) > > > lineno = inspect.getsourcelines(func)[1] > > > > Perhaps inspect.getsourcefile() can be used. > > > > Ah, I overlooked it. I'll post follow up patch on default. Thanks! I gave up using inspect.getsourcefile() in this case, because: - hggettext insert result of os.getcwd() into sys.path at first, in order to avoid loading modules from already installed Mercurial, - and this makes inspect.getsourcefile() return absolute path Even with "." instead of os.getcwd(), we should trim additional "./" prefix of filenames returned by inspect.getsourcefile(), in order to keep current order of entries in hg.pot. If we omit trimming this additional "./", order of entries in hg.pot is drastically changed, and it might cause meaningless changes of *.po files. Simple replacement with inspect.getsourcefile() doesn't work as we expected at first :-< > -- > -- > [FUJIWARA Katsunori] fo...@lares.dti.ne.jp > -- -- [FUJIWARA Katsunori] fo...@lares.dti.ne.jp ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Re: [PATCH STABLE] i18n: use actual filename, in which function is defined, for hg.pot
At Fri, 4 Aug 2017 00:36:28 +0900, Yuya Nishihara wrote: > > On Wed, 02 Aug 2017 22:36:45 +0900, FUJIWARA Katsunori wrote: > > # HG changeset patch > > # User FUJIWARA Katsunori > > # Date 1501599731 -32400 > > # Wed Aug 02 00:02:11 2017 +0900 > > # Branch stable > > # Node ID b6d0bcd19b4dffb2360f909f459c27104ad16565 > > # Parent 76b171209151fe41dbf8dbfec473cc533f3b40ca > > # Available At https://bitbucket.org/foozy/mercurial-wip > > # hg pull https://bitbucket.org/foozy/mercurial-wip -r > > b6d0bcd19b4d > > # EXP-Topic i18n-fix-update-pot-issues > > i18n: use actual filename, in which function is defined, for hg.pot > > > +funcmod = inspect.getmodule(func) > > +extra = '' > > +if funcmod.__package__ == funcmod.__name__: > > +extra = '/__init__' > > +actualpath = '%s%s.py' % (funcmod.__name__.replace('.', '/'), > > extra) > > + > > src = inspect.getsource(func) > > -name = "%s.%s" % (path, func.__name__) > > +name = "%s.%s" % (actualpath, func.__name__) > > lineno = inspect.getsourcelines(func)[1] > > Perhaps inspect.getsourcefile() can be used. > Ah, I overlooked it. I'll post follow up patch on default. Thanks! -- -- [FUJIWARA Katsunori] fo...@lares.dti.ne.jp ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Re: [PATCH STABLE] i18n: use actual filename, in which function is defined, for hg.pot
On Wed, 02 Aug 2017 22:36:45 +0900, FUJIWARA Katsunori wrote: > # HG changeset patch > # User FUJIWARA Katsunori > # Date 1501599731 -32400 > # Wed Aug 02 00:02:11 2017 +0900 > # Branch stable > # Node ID b6d0bcd19b4dffb2360f909f459c27104ad16565 > # Parent 76b171209151fe41dbf8dbfec473cc533f3b40ca > # Available At https://bitbucket.org/foozy/mercurial-wip > # hg pull https://bitbucket.org/foozy/mercurial-wip -r > b6d0bcd19b4d > # EXP-Topic i18n-fix-update-pot-issues > i18n: use actual filename, in which function is defined, for hg.pot > +funcmod = inspect.getmodule(func) > +extra = '' > +if funcmod.__package__ == funcmod.__name__: > +extra = '/__init__' > +actualpath = '%s%s.py' % (funcmod.__name__.replace('.', '/'), > extra) > + > src = inspect.getsource(func) > -name = "%s.%s" % (path, func.__name__) > +name = "%s.%s" % (actualpath, func.__name__) > lineno = inspect.getsourcelines(func)[1] Perhaps inspect.getsourcefile() can be used. ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Re: [PATCH STABLE] i18n: use actual filename, in which function is defined, for hg.pot
On Wed, Aug 02, 2017 at 10:36:45PM +0900, FUJIWARA Katsunori wrote: > # HG changeset patch > # User FUJIWARA Katsunori > # Date 1501599731 -32400 > # Wed Aug 02 00:02:11 2017 +0900 > # Branch stable > # Node ID b6d0bcd19b4dffb2360f909f459c27104ad16565 > # Parent 76b171209151fe41dbf8dbfec473cc533f3b40ca > # Available At https://bitbucket.org/foozy/mercurial-wip > # hg pull https://bitbucket.org/foozy/mercurial-wip -r > b6d0bcd19b4d > # EXP-Topic i18n-fix-update-pot-issues > i18n: use actual filename, in which function is defined, for hg.pot queued, thanks ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel