diff options
author | Eevee (Alex Munroe) <eevee.git@veekun.com> | 2013-08-28 18:24:06 -0700 |
---|---|---|
committer | Eevee (Alex Munroe) <eevee.git@veekun.com> | 2013-08-28 18:24:06 -0700 |
commit | 64b712decbb8b8edb5522cad089c037399006edb (patch) | |
tree | ad0fa24ee06d30d90496c4393f79e87380c72c83 | |
parent | f09e2cf158a41cc4189c15a6c3d0a234423625da (diff) | |
download | pyscss-64b712decbb8b8edb5522cad089c037399006edb.tar.gz |
Let Map.get_by_key take a default.
-rw-r--r-- | scss/types.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/scss/types.py b/scss/types.py index 1040537..a2c075f 100644 --- a/scss/types.py +++ b/scss/types.py @@ -954,6 +954,7 @@ class String(Value): ### XXX EXPERIMENTAL XXX +missing = object() class Map(Value): sass_type_name = u'map' @@ -964,7 +965,7 @@ class Map(Value): self.index[key] = value def __repr__(self): - return "<Map: (%s)>" % (",".join("%s : %s" % pair for pair in self.pairs),) + return "<Map: (%s)>" % (", ".join("%s: %s" % pair for pair in self.pairs),) def __hash__(self): return hash(self.pairs) @@ -975,14 +976,17 @@ class Map(Value): def __iter__(self): return iter(self.pairs) - def get_by_key(self, key): - return self.index[key] + def get_by_key(self, key, default=missing): + if default is missing: + return self.index[key] + else: + return self.index.get(key, default) def get_by_pos(self, key): return self.pairs[key][1] def render(self, compress=False): - raise TypeError("maps cannot be rendered as CSS") + raise TypeError("Cannot render map %r as CSS" % (self,)) def expect_type(value, types, unit=any): |