From 17aa236452a920ea7edd904fd1df8845868d6e86 Mon Sep 17 00:00:00 2001
From: Leifur Halldor Asgeirsson <lasgeirsson@zerofail.com>
Date: Fri, 28 Oct 2016 15:18:35 -0400
Subject: [PATCH] default __init__ method on Element

---
 goblin/element.py | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/goblin/element.py b/goblin/element.py
index a141bf8..d69854b 100644
--- a/goblin/element.py
+++ b/goblin/element.py
@@ -66,6 +66,14 @@ class ElementMeta(type):
 
 class Element(metaclass=ElementMeta):
     """Base class for classes that implement the Element property interface"""
+    def __init__(self, **kwargs):
+        for key, value in kwargs.items():
+            if not (hasattr(self, key) and
+                    isinstance(getattr(self, key), properties.PropertyDescriptor)):
+                raise AssertionError(
+                    "No such property: {} for element {}".format(key, self.__class__.__name__))
+            setattr(self, key, value)
+
     id = properties.IdProperty(properties.Generic)
 
 
-- 
GitLab