|
@@ -42,7 +42,6 @@ class Figure(yaml.YAMLObject):
|
|
@classmethod
|
|
@classmethod
|
|
def from_yaml(cls, loader, node):
|
|
def from_yaml(cls, loader, node):
|
|
attr = loader.construct_mapping(node)
|
|
attr = loader.construct_mapping(node)
|
|
- print(type(attr['unit']), attr['unit'])
|
|
|
|
return cls(
|
|
return cls(
|
|
value = attr['value'],
|
|
value = attr['value'],
|
|
unit = unicode(attr['unit']),
|
|
unit = unicode(attr['unit']),
|
|
@@ -70,6 +69,8 @@ class Distance(Figure):
|
|
|
|
|
|
class Sum(Figure):
|
|
class Sum(Figure):
|
|
|
|
|
|
|
|
+ yaml_tag = u'!sum'
|
|
|
|
+
|
|
def __init__(self, value, currency):
|
|
def __init__(self, value, currency):
|
|
super(Sum, self).__init__(value, currency)
|
|
super(Sum, self).__init__(value, currency)
|
|
|
|
|
|
@@ -100,7 +101,22 @@ class Sum(Figure):
|
|
""" use property() instead of decorator to enable overriding """
|
|
""" use property() instead of decorator to enable overriding """
|
|
unit = property(get_unit, set_unit)
|
|
unit = property(get_unit, set_unit)
|
|
|
|
|
|
-class Discount(object):
|
|
|
|
|
|
+ @classmethod
|
|
|
|
+ def from_yaml(cls, loader, node):
|
|
|
|
+ attr = loader.construct_scalar(node).split(' ')
|
|
|
|
+ return cls(
|
|
|
|
+ currency = attr[0],
|
|
|
|
+ value = float(attr[1]),
|
|
|
|
+ )
|
|
|
|
+
|
|
|
|
+ @classmethod
|
|
|
|
+ def to_yaml(cls, dumper, s):
|
|
|
|
+ return dumper.represent_scalar(
|
|
|
|
+ cls.yaml_tag,
|
|
|
|
+ '%s %s' % (s.currency, repr(s.value)),
|
|
|
|
+ )
|
|
|
|
+
|
|
|
|
+class Discount(yaml.YAMLObject):
|
|
|
|
|
|
def __init__(
|
|
def __init__(
|
|
self,
|
|
self,
|