Major restructuring to get automatic decoding/encoding
[pycalendar.git] / pycalendar / dtype / base.py
diff --git a/pycalendar/dtype/base.py b/pycalendar/dtype/base.py
new file mode 100644 (file)
index 0000000..a3a894f
--- /dev/null
@@ -0,0 +1,25 @@
+# Copyright
+
+
+class DataType (object):
+    """Base class for processing data types
+
+    As defined in :RFC:`5545`, section 3.3 (Property Value Data
+    Types).
+    """
+    name = None
+
+    def __str__(self):
+        return self.name
+
+    def __repr__(self):
+        return '<{}.{} name:{} at {:#x}>'.format(
+            self.__module__, type(self).__name__, self.name, id(self))
+
+    @classmethod
+    def decode(cls, property, value):
+        raise NotImplementedError('cannot decode {}'.format(cls))
+
+    @classmethod
+    def encode(cls, property, value):
+        raise NotImplementedError('cannot encode {}'.format(cls))