Add optional name attribute to entities
Entities can now carry an optional name attribute, and the YamlFile
class uses that to store the basename of the file, which eases debugging
tremendously.
Signed-off-by: martin f. krafft <madduck@madduck.net>
diff --git a/datatypes/entity.py b/datatypes/entity.py
index d8d0ef7..02b5edf 100644
--- a/datatypes/entity.py
+++ b/datatypes/entity.py
@@ -13,20 +13,24 @@
class Entity(object):
def __init__(self, classes=Classes(), applications=Applications(),
- parameters=Parameters()):
+ parameters=Parameters(), name=None):
self._applications = applications
self._classes = classes
self._parameters = parameters
+ self._name = name
applications = property(lambda self: self._applications)
classes = property(lambda self: self._classes)
parameters = property(lambda self: self._parameters)
+ name = property(lambda self: self._name)
def merge(self, other):
self.applications.merge(other.applications)
self.classes.merge(other.classes)
self.parameters.merge(other.parameters)
+ self._name = other.name
def __repr__(self):
- return '<Entity classes:{0} applications:{1}, parameters:{2}>'.format(
+ return '<Entity{0} classes:{1} applications:{2}, parameters:{3}>'.format(
+ '' if not self.name else " '%s'" % self.name,
len(self.classes), len(self.applications), len(self.parameters))
diff --git a/storage/yaml_fs/yamlfile.py b/storage/yaml_fs/yamlfile.py
index 2a8b21a..b8cb154 100644
--- a/storage/yaml_fs/yamlfile.py
+++ b/storage/yaml_fs/yamlfile.py
@@ -8,6 +8,7 @@
#
import datatypes
import yaml
+import os
class YamlFile(object):
@@ -41,7 +42,8 @@
parameters = {}
parameters = datatypes.Parameters(parameters)
- return datatypes.Entity(classes, applications, parameters)
+ return datatypes.Entity(classes, applications, parameters,
+ name=os.path.basename(self._path))
entity = property(lambda self: self._get_entity())
def __repr__(self):