diff options
author | Eevee (Alex Munroe) <eevee.git@veekun.com> | 2014-09-16 19:02:04 -0700 |
---|---|---|
committer | Eevee (Alex Munroe) <eevee.git@veekun.com> | 2014-09-16 19:02:04 -0700 |
commit | 11494ad30b4f9eab6dc1d9864722e28252641d2c (patch) | |
tree | 3d4c7ec2f44361d6d3eae7b120fab6720de674fe /scss/compiler.py | |
parent | 8c530adb664f8277c5d2f989522324f9eb1d9c63 (diff) | |
download | pyscss-11494ad30b4f9eab6dc1d9864722e28252641d2c.tar.gz |
Make apply_extends more threadsafe, probably. Fixes #304.
Diffstat (limited to 'scss/compiler.py')
-rw-r--r-- | scss/compiler.py | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/scss/compiler.py b/scss/compiler.py index 72e39a5..f13c86a 100644 --- a/scss/compiler.py +++ b/scss/compiler.py @@ -255,7 +255,7 @@ class Compilation(object): self.parse_children() # this will manage @extends - self.apply_extends() + self.rules = self.apply_extends(self.rules) rules_by_file, css_files = self.parse_properties() @@ -1209,7 +1209,7 @@ class Compilation(object): self._warn_unused_imports(new_rule) # @print_timing(3) - def apply_extends(self): + def apply_extends(self, rules): """Run through the given rules and translate all the pending @extends declarations into real selectors on parent rules. @@ -1224,7 +1224,7 @@ class Compilation(object): selector_to_rules = defaultdict(set) rule_selector_order = {} order = 0 - for rule in self.rules: + for rule in rules: for selector in rule.selectors: for key in selector.lookup_key(): key_to_selectors[key].add(selector) @@ -1234,7 +1234,7 @@ class Compilation(object): # Now go through all the rules with an @extends and find their parent # rules. - for rule in self.rules: + for rule in rules: for selector in rule.extends_selectors: # This is a little dirty. intersection isn't a class method. # Don't think about it too much. @@ -1293,10 +1293,7 @@ class Compilation(object): more_parent_selectors)) # Remove placeholder-only rules - self.rules = [ - rule for rule in self.rules - if not rule.is_pure_placeholder - ] + return [rule for rule in rules if not rule.is_pure_placeholder] # @print_timing(3) def parse_properties(self): |