From ec9b76d282ecb3a1a113574f24b476ad3309e574 Mon Sep 17 00:00:00 2001 From: Tarek Ziade Date: Sat, 21 May 2011 11:48:16 +0200 Subject: fixed the separator issues in packaging/resources+config --- Lib/packaging/config.py | 6 +++++- Lib/packaging/tests/test_resources.py | 1 - Lib/packaging/util.py | 4 +++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Lib/packaging/config.py b/Lib/packaging/config.py index 9875f68..6bbfdc3 100644 --- a/Lib/packaging/config.py +++ b/Lib/packaging/config.py @@ -33,6 +33,9 @@ def _pop_values(values_dct, key): def _rel_path(base, path): + # normalizes and returns a lstripped-/-separated path + base = base.replace(os.path.sep, '/') + path = path.replace(os.path.sep, '/') assert path.startswith(base) return path[len(base):].lstrip('/') @@ -50,7 +53,8 @@ def get_resources_dests(resources_root, rules): destinations.pop(resource_file, None) else: rel_path = _rel_path(abs_base, abs_path) - destinations[resource_file] = os.path.join(dest, rel_path) + rel_dest = dest.replace(os.path.sep, '/').rstrip('/') + destinations[resource_file] = rel_dest + '/' + rel_path return destinations diff --git a/Lib/packaging/tests/test_resources.py b/Lib/packaging/tests/test_resources.py index 68450cd..1e92f2a 100644 --- a/Lib/packaging/tests/test_resources.py +++ b/Lib/packaging/tests/test_resources.py @@ -25,7 +25,6 @@ class DataFilesTestCase(GlobTestCaseBase): files = {} for path, value in spec.items(): if value is not None: - path = self.os_dependent_path(path) files[path] = value return files diff --git a/Lib/packaging/util.py b/Lib/packaging/util.py index bf31c31..15da9e6 100644 --- a/Lib/packaging/util.py +++ b/Lib/packaging/util.py @@ -939,7 +939,7 @@ class Mixin2to3: self.options, self.explicit) RICH_GLOB = re.compile(r'\{([^}]*)\}') -_CHECK_RECURSIVE_GLOB = re.compile(r'[^/,{]\*\*|\*\*[^/,}]') +_CHECK_RECURSIVE_GLOB = re.compile(r'[^/\\,{]\*\*|\*\*[^/\\,}]') _CHECK_MISMATCH_SET = re.compile(r'^[^{]*\}|\{[^}]*$') @@ -973,7 +973,9 @@ def _iglob(path_glob): if radical == '': radical = '*' else: + # we support both radical = radical.lstrip('/') + radical = radical.lstrip('\\') for path, dir, files in os.walk(prefix): path = os.path.normpath(path) for file in _iglob(os.path.join(path, radical)): -- cgit v0.12