diff options
author | Ionel Cristian Mărieș <contact@ionelmc.ro> | 2019-05-10 14:43:31 +0300 |
---|---|---|
committer | Ionel Cristian Mărieș <contact@ionelmc.ro> | 2019-05-10 14:45:33 +0300 |
commit | 686a26db8bb953a0a450e4e2b94d155c0ef28618 (patch) | |
tree | d273b874c2feee1aec73e1228c6d3281ed7fc02c | |
parent | ea4a6e5eb885a2f013e1b3e5374476dceec2a2fa (diff) | |
download | setuptools-scm-686a26db8bb953a0a450e4e2b94d155c0ef28618.tar.gz |
Don't pass entrypoing name around anymore and allow passing fallback_root to get_version.
-rw-r--r-- | src/setuptools_scm/__init__.py | 19 | ||||
-rw-r--r-- | src/setuptools_scm/config.py | 10 | ||||
-rw-r--r-- | testing/conftest.py | 2 | ||||
-rw-r--r-- | testing/test_basic_api.py | 3 | ||||
-rw-r--r-- | testing/test_regressions.py | 4 |
5 files changed, 22 insertions, 16 deletions
diff --git a/src/setuptools_scm/__init__.py b/src/setuptools_scm/__init__.py index 83cf5bb..0c1f9ad 100644 --- a/src/setuptools_scm/__init__.py +++ b/src/setuptools_scm/__init__.py @@ -31,7 +31,7 @@ def version_from_scm(root): config = Configuration() config.root = root # TODO: Is it API? - return _version_from_entrypoint(config, "setuptools_scm.parse_scm") + return _version_from_entrypoints(config) def _call_entrypoint_fn(root, config, fn): @@ -47,11 +47,12 @@ def _call_entrypoint_fn(root, config, fn): return fn(root) -def _version_from_entrypoint(config, entrypoint, fallback=False): +def _version_from_entrypoints(config, fallback=False): if fallback: - entrypoint += "_fallback" + entrypoint = "setuptools_scm.parse_scm_fallback" root = config.fallback_root else: + entrypoint = "setuptools_scm.parse_scm" root = config.absolute_root for ep in iter_matching_entrypoints(root, entrypoint): version = _call_entrypoint_fn(root, config, ep.load()) @@ -91,16 +92,10 @@ def _do_parse(config): raise TypeError( "version parse result was a string\nplease return a parsed version" ) - version = parse_result or _version_from_entrypoint( - config, "setuptools_scm.parse_scm", fallback=True - ) + version = parse_result or _version_from_entrypoints(config, fallback=True) else: # include fallbacks after dropping them from the main entrypoint - version = _version_from_entrypoint( - config, "setuptools_scm.parse_scm" - ) or _version_from_entrypoint( - config, "setuptools_scm.parse_scm", fallback=True - ) + version = _version_from_entrypoints(config) or _version_from_entrypoints(config, fallback=True) if version: return version @@ -126,6 +121,7 @@ def get_version( relative_to=None, tag_regex=None, fallback_version=None, + fallback_root=".", parse=None, git_describe_command=None, ): @@ -138,6 +134,7 @@ def get_version( config = Configuration() config.root = root + config.fallback_root = fallback_root config.version_scheme = version_scheme config.local_scheme = local_scheme config.write_to = write_to diff --git a/src/setuptools_scm/config.py b/src/setuptools_scm/config.py index f093c2e..38f79ae 100644 --- a/src/setuptools_scm/config.py +++ b/src/setuptools_scm/config.py @@ -61,12 +61,20 @@ class Configuration(object): self.write_to = "" self.write_to_template = None self.fallback_version = None - self.fallback_root = _check_absolute_root(".", None) + self.fallback_root = "." self.parse = None self.tag_regex = DEFAULT_TAG_REGEX self.git_describe_command = None @property + def fallback_root(self): + return self._fallback_root + + @fallback_root.setter + def fallback_root(self, value): + self._fallback_root = os.path.abspath(value) + + @property def absolute_root(self): return self._absolute_root diff --git a/testing/conftest.py b/testing/conftest.py index fb81953..0d34731 100644 --- a/testing/conftest.py +++ b/testing/conftest.py @@ -63,7 +63,7 @@ class Wd(object): __tracebackhide__ = True from setuptools_scm import get_version - version = get_version(root=str(self.cwd), **kw) + version = get_version(root=str(self.cwd), fallback_root=str(self.cwd), **kw) print(version) return version diff --git a/testing/test_basic_api.py b/testing/test_basic_api.py index 5b5c6d6..f342e23 100644 --- a/testing/test_basic_api.py +++ b/testing/test_basic_api.py @@ -23,8 +23,9 @@ def test_data_from_mime(tmpdir): assert res == {"name": "test", "revision": "1"} -def test_version_from_pkginfo(wd): +def test_version_from_pkginfo(wd, monkeypatch): wd.write("PKG-INFO", "Version: 0.1") + assert wd.version == "0.1" # replicate issue 167 diff --git a/testing/test_regressions.py b/testing/test_regressions.py index 9327244..f3b0fc6 100644 --- a/testing/test_regressions.py +++ b/testing/test_regressions.py @@ -43,10 +43,10 @@ def test_pip_egg_info(tmpdir, monkeypatch): ) with pytest.raises(LookupError): - get_version(root=p.strpath) + get_version(root=p.strpath, fallback_root=p.strpath) p.ensure("pip-egg-info/random.egg-info/PKG-INFO").write("Version: 1.0") - assert get_version(root=p.strpath) == "1.0" + assert get_version(root=p.strpath, fallback_root=p.strpath) == "1.0" @pytest.mark.issue(164) |