D7875: packaging: leverage os.path.relpath() in setup.py
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Tue Jan 14 22:18:37 UTC 2020
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
`os.path.relpath()` has existed since Python 2.6, so we can safely use
it. This fixes a bug in the current code when the common prefix is "/"
(in which case `uplevel` would be one less than it should).
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D7875
AFFECTED FILES
setup.py
CHANGE DETAILS
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -1064,11 +1064,7 @@
# absolute path instead
libdir = self.install_lib
else:
- common = os.path.commonprefix((self.install_dir, self.install_lib))
- rest = self.install_dir[len(common) :]
- uplevel = len([n for n in os.path.split(rest) if n])
-
- libdir = uplevel * ('..' + os.sep) + self.install_lib[len(common) :]
+ libdir = os.path.relpath(self.install_lib, self.install_dir)
for outfile in self.outfiles:
with open(outfile, 'rb') as fp:
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list