summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEevee (Alex Munroe) <eevee.git@veekun.com>2014-12-09 18:28:31 -0800
committerEevee (Alex Munroe) <eevee.git@veekun.com>2014-12-09 18:28:31 -0800
commitbe4f062b8caafb88299b4047b5944d9f73dc6a3b (patch)
tree259f9e09dd3688c0de8859770494f729592be574
parenta5b270bb8885925ad0758489e2b80ee76e7bd302 (diff)
downloadpyscss-be4f062b8caafb88299b4047b5944d9f73dc6a3b.tar.gz
Fix handling of relative imports again.
-rw-r--r--scss/extension/core.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/scss/extension/core.py b/scss/extension/core.py
index 3e8f2e8..6642f1d 100644
--- a/scss/extension/core.py
+++ b/scss/extension/core.py
@@ -39,22 +39,26 @@ class CoreExtension(Extension):
else:
search_exts = compilation.compiler.dynamic_extensions
- relative_to = path.parent
basename = path.stem
-
+ relative_to = path.parent
search_path = [] # tuple of (origin, start_from)
if relative_to.is_absolute():
relative_to = PurePosixPath(*relative_to.parts[1:])
elif rule.source_file.origin:
# Search relative to the current file first, only if not doing an
# absolute import
- search_path.append(
- rule.source_file.origin / rule.source_file.relpath.parent)
- search_path.extend(compilation.compiler.search_path)
+ search_path.append((
+ rule.source_file.origin,
+ rule.source_file.relpath.parent / relative_to,
+ ))
+ search_path.extend(
+ (origin, relative_to)
+ for origin in compilation.compiler.search_path
+ )
for prefix, suffix in product(('_', ''), search_exts):
filename = prefix + basename + suffix
- for origin in search_path:
+ for origin, relative_to in search_path:
relpath = relative_to / filename
# Lexically (ignoring symlinks!) eliminate .. from the part
# of the path that exists within Sass-space. pathlib