aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-08-08 14:30:08 +0100
committerMichael Williamson <mike@zwobble.org>2015-09-13 13:36:50 +0100
commita2f856d6703008dcad2537c6ef557fba5f088948 (patch)
treeb4051de4620744947640e407f962c965f1167496
parentab452c5a1ae7375e45fc22430fe6f13dc0734e80 (diff)
Use cobble instead of dodge
-rw-r--r--mammoth/documents.py98
-rw-r--r--setup.py2
2 files changed, 78 insertions, 22 deletions
diff --git a/mammoth/documents.py b/mammoth/documents.py
index f2678ca..0fe8d43 100644
--- a/mammoth/documents.py
+++ b/mammoth/documents.py
@@ -1,22 +1,59 @@
-import dodge
-
-
-Document = dodge.data_class("Document", ["children", "notes"])
-Paragraph = dodge.data_class("Paragraph", ["children", "style_id", "style_name", "numbering"])
-Run = dodge.data_class("Run", [
- "children", "style_id", "style_name", "is_bold", "is_italic",
- "is_underline", "is_strikethrough", "vertical_alignment",
-])
-Text = dodge.data_class("Text", ["value"])
-Hyperlink = dodge.data_class("Hyperlink", ["href", "anchor", "children"])
-Table = dodge.data_class("Table", ["children"])
-TableRow = dodge.data_class("TableRow", ["children"])
-TableCell = dodge.data_class("TableCell", ["children"])
-LineBreak = dodge.data_class("LineBreak", [])
+import cobble
-class Tab(object):
+
+class HasChildren(object):
+ children = cobble.field()
+
+
+@cobble.data
+class Document(HasChildren):
+ notes = cobble.field()
+
+@cobble.data
+class Paragraph(HasChildren):
+ style_id = cobble.field()
+ style_name = cobble.field()
+ numbering = cobble.field()
+
+@cobble.data
+class Run(HasChildren):
+ style_id = cobble.field()
+ style_name = cobble.field()
+ is_bold = cobble.field()
+ is_italic = cobble.field()
+ is_underline = cobble.field()
+ is_strikethrough = cobble.field()
+ vertical_alignment = cobble.field()
+
+@cobble.data
+class Text(object):
+ value = cobble.field()
+
+@cobble.data
+class Hyperlink(HasChildren):
+ href = cobble.field()
+ anchor = cobble.field()
+
+@cobble.data
+class Table(HasChildren):
+ pass
+
+@cobble.data
+class TableRow(HasChildren):
pass
+@cobble.data
+class TableCell(HasChildren):
+ pass
+
+@cobble.data
+class LineBreak(object):
+ pass
+
+@cobble.data
+class Tab(object):
+ pass
+
class Image(object):
def __init__(self, alt_text, content_type, open):
@@ -57,9 +94,14 @@ def tab():
image = Image
def hyperlink(children, href=None, anchor=None):
- return Hyperlink(href, anchor, children)
+ return Hyperlink(href=href, anchor=anchor, children=children)
+
+
+@cobble.data
+class Bookmark(object):
+ name = cobble.field()
-bookmark = Bookmark = dodge.data_class("Bookmark", ["name"])
+bookmark = Bookmark
table = Table
@@ -70,10 +112,19 @@ line_break = LineBreak
def numbering_level(level_index, is_ordered):
return _NumberingLevel(str(level_index), bool(is_ordered))
-_NumberingLevel = dodge.data_class("NumberingLevel", ["level_index", "is_ordered"])
+@cobble.data
+class _NumberingLevel(object):
+ level_index = cobble.field()
+ is_ordered = cobble.field()
+@cobble.data
+class Note(object):
+ note_type = cobble.field()
+ note_id = cobble.field()
+ body = cobble.field()
-note = Note = dodge.data_class("Note", ["note_type", "note_id", "body"])
+
+note = Note
class Notes(object):
@@ -101,4 +152,9 @@ def notes(notes_list):
def _note_key(note):
return (note.note_type, note.note_id)
-note_reference = NoteReference = dodge.data_class("NoteReference", ["note_type", "note_id"])
+@cobble.data
+class NoteReference(object):
+ note_type = cobble.field()
+ note_id = cobble.field()
+
+note_reference = NoteReference
diff --git a/setup.py b/setup.py
index 160076a..377a1c2 100644
--- a/setup.py
+++ b/setup.py
@@ -10,7 +10,7 @@ def read(fname):
_install_requires = [
"parsimonious>=0.5,<0.6",
- "dodge>=0.1.5,<0.2",
+ "cobble>=0.1.0,<0.2",
]
if sys.version_info[:2] <= (2, 6):