aboutsummaryrefslogtreecommitdiff
path: root/mammoth/transforms.py
diff options
context:
space:
mode:
Diffstat (limited to 'mammoth/transforms.py')
-rw-r--r--mammoth/transforms.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/mammoth/transforms.py b/mammoth/transforms.py
new file mode 100644
index 0000000..6eb6d92
--- /dev/null
+++ b/mammoth/transforms.py
@@ -0,0 +1,22 @@
+from . import documents
+
+
+def paragraph(transform_paragraph):
+ def transform_element(element):
+ if isinstance(element, documents.Paragraph):
+ return transform_paragraph(element)
+ else:
+ return element
+
+ return _each_element(transform_element)
+
+
+def _each_element(transform_element):
+ def transform_element_and_children(element):
+ if isinstance(element, documents.HasChildren):
+ children = list(map(transform_element, element.children))
+ element = element.copy(children=children)
+
+ return transform_element(element)
+
+ return transform_element_and_children