|
@@ -38,6 +38,17 @@ class _YamlInitConstructor(yaml.YAMLObject):
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
+class _YamlVarsRepresenter(yaml.YAMLObject):
|
|
|
|
+
|
|
|
|
+ @classmethod
|
|
|
|
+ def to_yaml(cls, dumper, obj):
|
|
|
|
+ return dumper.represent_mapping(
|
|
|
|
+ cls.yaml_tag,
|
|
|
|
+ {k: v for k, v in vars(obj).items()
|
|
|
|
+ if v and (not isinstance(v, list) or len(v) > 0)},
|
|
|
|
+ )
|
|
|
|
+
|
|
|
|
+
|
|
class Sum(ioex.calcex.Figure):
|
|
class Sum(ioex.calcex.Figure):
|
|
|
|
|
|
currency_symbol_map = {
|
|
currency_symbol_map = {
|
|
@@ -106,7 +117,7 @@ class Sum(ioex.calcex.Figure):
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
-class Order(_Object, _YamlInitConstructor):
|
|
+class Order(_Object, _YamlInitConstructor, _YamlVarsRepresenter):
|
|
|
|
|
|
yaml_tag = u'!order'
|
|
yaml_tag = u'!order'
|
|
|
|
|
|
@@ -317,8 +328,9 @@ class Article(Item):
|
|
if features is not None:
|
|
if features is not None:
|
|
assert type(features) is str
|
|
assert type(features) is str
|
|
self.features = features
|
|
self.features = features
|
|
- assert delivery_date is None or type(delivery_date) is datetime.date
|
|
+ if delivery_date is not None:
|
|
- self.delivery_date = delivery_date
|
|
+ assert type(delivery_date) is datetime.date
|
|
|
|
+ self.delivery_date = delivery_date
|
|
|
|
|
|
|
|
|
|
class Service(Item):
|
|
class Service(Item):
|