summaryrefslogtreecommitdiff
path: root/interfaces.py
diff options
context:
space:
mode:
Diffstat (limited to 'interfaces.py')
-rw-r--r--interfaces.py47
1 files changed, 0 insertions, 47 deletions
diff --git a/interfaces.py b/interfaces.py
deleted file mode 100644
index e0a904a..0000000
--- a/interfaces.py
+++ /dev/null
@@ -1,47 +0,0 @@
-"""Module containing various interfaces."""
-
-from abc import ABCMeta, abstractmethod, abstractclassmethod
-import xml.etree.ElementTree as et
-
-class XMLSerializable(metaclass=ABCMeta):
- """Interface for XML-serializable Workspace components."""
- @staticmethod
- def int_or_none(v):
- if v is None:
- return None
-
- try:
- v = int(v)
- except (ValueError, TypeError):
- return None
-
- return v
-
- @staticmethod
- def indent(elem, indent=4, level=0):
- """Pretty-indent the XML tree."""
- i = "\n" + level*(indent*' ')
- if len(elem) > 0:
- if not elem.text or not elem.text.strip():
- elem.text = i + (' '*indent)
- if not elem.tail or not elem.tail.strip():
- elem.tail = i
- for elem in elem:
- XMLSerializable.indent(elem, indent=indent, level=level+1)
- if not elem.tail or not elem.tail.strip():
- elem.tail = i
- else:
- if level and (not elem.tail or not elem.tail.strip()):
- elem.tail = i
-
- @abstractmethod
- def serialize(self) -> et.Element:
- """Serialize the object into an XML element."""
-
- @abstractclassmethod
- def deserialize(cls, w: "Workspace", e: et.Element):
- """Deserialize the object from an XML element.
-
- This function may assume that all dependencies have already been loaded into the
- passed workspace.
- """