From 78d5cca66ca8f204d5db1aff81519c142705add9 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 8 Jan 2014 18:01:44 +0000 Subject: Add transform_document argument to convert_to_html --- mammoth/__init__.py | 6 ++++-- mammoth/documents.py | 15 ++++++++------- 2 files changed, 12 insertions(+), 9 deletions(-) (limited to 'mammoth') diff --git a/mammoth/__init__.py b/mammoth/__init__.py index 90ab764..59e349f 100644 --- a/mammoth/__init__.py +++ b/mammoth/__init__.py @@ -2,8 +2,10 @@ from .results import Result from . import docx, conversion, options -def convert_to_html(fileobj, **kwargs): - return docx.read(fileobj).bind(lambda document: +def convert_to_html(fileobj, transform_document=None, **kwargs): + if transform_document is None: + transform_document = lambda x: x + return docx.read(fileobj).map(transform_document).bind(lambda document: conversion.convert_document_element_to_html( document, **options.read_options(kwargs) diff --git a/mammoth/documents.py b/mammoth/documents.py index 0f2d767..65a9b84 100644 --- a/mammoth/documents.py +++ b/mammoth/documents.py @@ -1,10 +1,11 @@ -import collections +import dodge -Document = collections.namedtuple("Document", ["children"]) -Paragraph = collections.namedtuple("Paragraph", ["children", "style_name", "numbering"]) -Run = collections.namedtuple("Run", ["children", "style_name", "is_bold", "is_italic"]) -Text = collections.namedtuple("Text", ["value"]) -Hyperlink = collections.namedtuple("Hyperlink", ["href", "children"]) + +Document = dodge.data_class("Document", ["children"]) +Paragraph = dodge.data_class("Paragraph", ["children", "style_name", "numbering"]) +Run = dodge.data_class("Run", ["children", "style_name", "is_bold", "is_italic"]) +Text = dodge.data_class("Text", ["value"]) +Hyperlink = dodge.data_class("Hyperlink", ["href", "children"]) class Tab(object): pass @@ -40,4 +41,4 @@ hyperlink = Hyperlink def numbering_level(level_index, is_ordered): return _NumberingLevel(str(level_index), bool(is_ordered)) -_NumberingLevel = collections.namedtuple("NumberingLevel", ["level_index", "is_ordered"]) +_NumberingLevel = dodge.data_class("NumberingLevel", ["level_index", "is_ordered"]) -- cgit v1.2.3