aboutsummaryrefslogtreecommitdiff
path: root/mammoth
diff options
context:
space:
mode:
Diffstat (limited to 'mammoth')
-rw-r--r--mammoth/docx/content_types_xml.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/mammoth/docx/content_types_xml.py b/mammoth/docx/content_types_xml.py
new file mode 100644
index 0000000..a2da8e0
--- /dev/null
+++ b/mammoth/docx/content_types_xml.py
@@ -0,0 +1,21 @@
+def read_content_types_xml_element(element):
+ extension_defaults = dict(map(
+ _read_default,
+ element.find_children("content-types:Default"))
+ )
+ return ContentTypes(extension_defaults)
+
+
+def _read_default(element):
+ extension = element.attributes["Extension"]
+ content_type = element.attributes["ContentType"]
+ return extension, content_type
+
+
+class ContentTypes(object):
+ def __init__(self, extension_defaults):
+ self._extension_defaults = extension_defaults
+
+ def find_content_type(self, path):
+ extension = path.rpartition(".")[2]
+ return self._extension_defaults.get(extension)