summaryrefslogtreecommitdiff
path: root/tablib/packages/odf3/load.py
diff options
context:
space:
mode:
Diffstat (limited to 'tablib/packages/odf3/load.py')
-rw-r--r--tablib/packages/odf3/load.py112
1 files changed, 0 insertions, 112 deletions
diff --git a/tablib/packages/odf3/load.py b/tablib/packages/odf3/load.py
deleted file mode 100644
index cf275c4..0000000
--- a/tablib/packages/odf3/load.py
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2008 Søren Roug, European Environment Agency
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Contributor(s):
-#
-
-# This script is to be embedded in opendocument.py later
-# The purpose is to read an ODT/ODP/ODS file and create the datastructure
-# in memory. The user should then be able to make operations and then save
-# the structure again.
-
-from xml.sax import make_parser,handler
-from xml.sax.xmlreader import InputSource
-import xml.sax.saxutils
-from .element import Element
-from .namespaces import OFFICENS
-from io import StringIO
-
-#
-# Parse the XML files
-#
-class LoadParser(handler.ContentHandler):
- """ Extract headings from content.xml of an ODT file """
- triggers = (
- (OFFICENS, 'automatic-styles'), (OFFICENS, 'body'),
- (OFFICENS, 'font-face-decls'), (OFFICENS, 'master-styles'),
- (OFFICENS, 'meta'), (OFFICENS, 'scripts'),
- (OFFICENS, 'settings'), (OFFICENS, 'styles') )
-
- def __init__(self, document):
- self.doc = document
- self.data = []
- self.level = 0
- self.parse = False
-
- def characters(self, data):
- if self.parse == False:
- return
- self.data.append(data)
-
- def startElementNS(self, tag, qname, attrs):
- if tag in self.triggers:
- self.parse = True
- if self.doc._parsing != "styles.xml" and tag == (OFFICENS, 'font-face-decls'):
- self.parse = False
- if self.parse == False:
- return
-
- self.level = self.level + 1
- # Add any accumulated text content
- content = ''.join(self.data)
- if len(content.strip()) > 0:
- self.parent.addText(content, check_grammar=False)
- self.data = []
- # Create the element
- attrdict = {}
- for (att,value) in list(attrs.items()):
- attrdict[att] = value
- try:
- e = Element(qname = tag, qattributes=attrdict, check_grammar=False)
- self.curr = e
- except AttributeError as v:
- print("Error: %s" % v)
-
- if tag == (OFFICENS, 'automatic-styles'):
- e = self.doc.automaticstyles
- elif tag == (OFFICENS, 'body'):
- e = self.doc.body
- elif tag == (OFFICENS, 'master-styles'):
- e = self.doc.masterstyles
- elif tag == (OFFICENS, 'meta'):
- e = self.doc.meta
- elif tag == (OFFICENS,'scripts'):
- e = self.doc.scripts
- elif tag == (OFFICENS,'settings'):
- e = self.doc.settings
- elif tag == (OFFICENS,'styles'):
- e = self.doc.styles
- elif self.doc._parsing == "styles.xml" and tag == (OFFICENS, 'font-face-decls'):
- e = self.doc.fontfacedecls
- elif hasattr(self,'parent'):
- self.parent.addElement(e, check_grammar=False)
- self.parent = e
-
-
- def endElementNS(self, tag, qname):
- if self.parse == False:
- return
- self.level = self.level - 1
- str = ''.join(self.data)
- if len(str.strip()) > 0:
- self.curr.addText(str, check_grammar=False)
- self.data = []
- self.curr = self.curr.parentNode
- self.parent = self.curr
- if tag in self.triggers:
- self.parse = False