Mercurial > hg > evolve
changeset 2145:b81d3775006b
evolve: move extension metadata in their own module
This will allow the server only extension to reuse them. As a side effect we can
now simplify the config parsing in setup.py
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Tue, 07 Mar 2017 13:24:07 +0100 |
parents | 05e91ba0a7a9 |
children | 604ecce27969 |
files | hgext3rd/evolve/__init__.py hgext3rd/evolve/metadata.py setup.cfg setup.py |
diffstat | 4 files changed, 35 insertions(+), 29 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext3rd/evolve/__init__.py +++ b/hgext3rd/evolve/__init__.py @@ -17,11 +17,7 @@ this feature, - improves some aspect of the early implementation in Mercurial core """ -__version__ = '5.6.0' -testedwith = '3.8.4 3.9.2 4.0.2 4.1' -minimumhgversion = '3.8' - -buglink = 'https://bz.mercurial-scm.org/' + evolutionhelptext = """ Obsolescence markers make it possible to mark changesets that have been @@ -78,8 +74,9 @@ from mercurial import registrar registrar.templatekeyword # new in hg-3.8 except ImportError: + from . import metadata raise ImportError('evolve needs version %s or above' % - min(testedwith.split())) + min(metadata.testedwith.split())) import mercurial from mercurial import util @@ -116,10 +113,15 @@ from . import ( exchange, exthelper, + metadata, serveronly, utility, ) +__version__ = metadata.__version__ +testedwith = metadata.testedwith +minimumhgversion = metadata.minimumhgversion +buglink = metadata.buglink sha1re = re.compile(r'\b[0-9a-f]{6,40}\b')
new file mode 100644 --- /dev/null +++ b/hgext3rd/evolve/metadata.py @@ -0,0 +1,11 @@ +# define Mercurial extension metadata for evolution +# +# Copyright 2017 Pierre-Yves David <pierre-yves.david@ens-lyon.org> +# +# This software may be used and distributed according to the terms of the +# GNU General Public License version 2 or any later version. + +__version__ = '5.6.0' +testedwith = '3.8.4 3.9.2 4.0.2 4.1' +minimumhgversion = '3.8' +buglink = 'https://bz.mercurial-scm.org/'
--- a/setup.cfg +++ b/setup.cfg @@ -24,5 +24,5 @@ N801, # line break occurred before a binary operator W503 -builtins=xrange +builtins=xrange, execfile
--- a/setup.py +++ b/setup.py @@ -2,25 +2,21 @@ from distutils.core import setup from os.path import dirname, join -def get_version(relpath): - '''Read version info from a file without importing it''' - for line in open(join(dirname(__file__), relpath), 'rb'): - # Decode to a fail-safe string for PY3 - # (gives unicode object in PY2) - line = line.decode('utf8') - if '__version__' in line: - if "'" in line: - return line.split("'")[1] +META_PATH = 'hgext3rd/evolve/metadata.py' + +def get_metadata(): + meta = {} + fullpath = join(dirname(__file__), META_PATH) + execfile(fullpath, meta) + return meta -def min_hg_version(relpath): +def get_version(): '''Read version info from a file without importing it''' - for line in open(join(dirname(__file__), relpath), 'rb'): - # Decode to a fail-safe string for PY3 - # (gives unicode object in PY2) - line = line.decode('utf8') - if 'testedwith' in line: - if "'" in line: - return min(line.split("'")[1].split()) + return get_metadata()['__version__'] + +def min_hg_version(): + '''Read version info from a file without importing it''' + return get_metadata()['minimumhgversion'] py_modules = [ 'hgext3rd.evolve.serveronly', @@ -34,19 +30,16 @@ py_modules.append('hgext3rd.evolve.hack.inhibit') py_modules.append('hgext3rd.evolve.hack.directaccess') - -EVOLVE_PATH = 'hgext3rd/evolve/__init__.py' - requires = [] try: import mercurial mercurial.__all__ except ImportError: - requires.append('mercurial>=%s' % min_hg_version(EVOLVE_PATH)) + requires.append('mercurial>=%s' % min_hg_version()) setup( name='hg-evolve', - version=get_version(EVOLVE_PATH), + version=get_version(), author='Pierre-Yves David', maintainer='Pierre-Yves David', maintainer_email='pierre-yves.david@ens-lyon.org',