diff --git a/src/setupfunc.py b/src/setupfunc.py index b6b6d7da..a9b17805 100644 --- a/src/setupfunc.py +++ b/src/setupfunc.py @@ -43,12 +43,17 @@ def do_vcs_install(): pass # --STRIP DURING BUILD """ -INIT_PY_SNIPPET = """ +OLD_SNIPPET = """ from ._version import get_versions __version__ = get_versions()['version'] del get_versions """ +INIT_PY_SNIPPET = """ +from . import {0} +__version__ = {0}.get_versions()['version'] +""" + def do_setup(): """Do main VCS-independent setup function for installing Versioneer.""" @@ -83,10 +88,16 @@ def do_setup(): old = f.read() except EnvironmentError: old = "" - if INIT_PY_SNIPPET not in old: + module = os.path.splitext(os.path.basename(cfg.versionfile_source))[0] + snippet = INIT_PY_SNIPPET.format(module) + if OLD_SNIPPET in old: + print(" replacing boilerplate in %s" % ipy) + with open(ipy, "w") as f: + f.write(old.replace(OLD_SNIPPET, snippet)) + elif snippet not in old: print(" appending to %s" % ipy) with open(ipy, "a") as f: - f.write(INIT_PY_SNIPPET) + f.write(snippet) else: print(" %s unmodified" % ipy) else: diff --git a/test/git/test_git.py b/test/git/test_git.py index 3beebe97..7d18f1f6 100644 --- a/test/git/test_git.py +++ b/test/git/test_git.py @@ -419,9 +419,8 @@ def pf(fn): if not script_only: with open(self.project_file("src/demo/__init__.py")) as fobj: i = fobj.read().splitlines() - self.assertEqual(i[-3], "from ._version import get_versions") - self.assertEqual(i[-2], "__version__ = get_versions()['version']") - self.assertEqual(i[-1], "del get_versions") + self.assertEqual(i[-2], "from . import _version") + self.assertEqual(i[-1], "__version__ = _version.get_versions()['version']") self.git("commit", "-m", "add _version stuff") # "versioneer.py setup" should be idempotent