From 718bb4be605da81893daec32c63987e8a546b30c Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 1 Aug 2015 19:08:35 +0100 Subject: Add ABC for writers --- mammoth/writers/abc.py | 31 +++++++++++++++++++++++++++++++ mammoth/writers/html.py | 4 +++- mammoth/writers/markdown.py | 4 +++- 3 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 mammoth/writers/abc.py diff --git a/mammoth/writers/abc.py b/mammoth/writers/abc.py new file mode 100644 index 0000000..a4a648b --- /dev/null +++ b/mammoth/writers/abc.py @@ -0,0 +1,31 @@ +from __future__ import absolute_import + +import abc + + +class Writer(object): + __metaclass__ = abc.ABCMeta + + @abc.abstractmethod + def text(self, text): + pass + + @abc.abstractmethod + def start(self, name, attributes=None): + pass + + @abc.abstractmethod + def end(self, name): + pass + + @abc.abstractmethod + def self_closing(self, name, attributes=None): + pass + + @abc.abstractmethod + def append(self, html): + pass + + @abc.abstractmethod + def as_string(self): + pass diff --git a/mammoth/writers/html.py b/mammoth/writers/html.py index cf936cd..7e6ca95 100644 --- a/mammoth/writers/html.py +++ b/mammoth/writers/html.py @@ -1,9 +1,11 @@ from __future__ import unicode_literals +from .abc import Writer + import cgi -class HtmlWriter(object): +class HtmlWriter(Writer): def __init__(self): self._fragments = [] diff --git a/mammoth/writers/markdown.py b/mammoth/writers/markdown.py index c291479..6cd9cd0 100644 --- a/mammoth/writers/markdown.py +++ b/mammoth/writers/markdown.py @@ -1,5 +1,7 @@ from __future__ import unicode_literals +from .abc import Writer + import re @@ -149,7 +151,7 @@ def _default_writer(attributes, markdown_state): return _default_output -class MarkdownWriter(object): +class MarkdownWriter(Writer): def __init__(self): self._fragments = [] self._element_stack = [] -- cgit v1.2.3