summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEevee (Alex Munroe) <eevee.git@veekun.com>2013-08-28 18:24:06 -0700
committerEevee (Alex Munroe) <eevee.git@veekun.com>2013-08-28 18:24:06 -0700
commit64b712decbb8b8edb5522cad089c037399006edb (patch)
treead0fa24ee06d30d90496c4393f79e87380c72c83
parentf09e2cf158a41cc4189c15a6c3d0a234423625da (diff)
downloadpyscss-64b712decbb8b8edb5522cad089c037399006edb.tar.gz
Let Map.get_by_key take a default.
-rw-r--r--scss/types.py12
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):