r252782 - in imsvdex/trunk: . imsvdex imsvdex/tests
"Tom Gross" <svn-changes-z4DKO/[email protected]> Tue, 27 May 2014 09:47:13 +0000 (UTC)
| Newsgroups | gmane.comp.web.zope.plone.collective.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: tom_gross
Date: Tue May 27 09:47:13 2014
New Revision: 252782
Removed:
imsvdex/trunk/imsvdex/_odict.py
Modified:
imsvdex/trunk/CHANGES.txt
imsvdex/trunk/imsvdex/tests/testConverters.py
imsvdex/trunk/imsvdex/vdex.py
imsvdex/trunk/setup.py
Log:
use lxml instead of elementtree
Modified: imsvdex/trunk/CHANGES.txt
==============================================================================
--- imsvdex/trunk/CHANGES.txt (original)
+++ imsvdex/trunk/CHANGES.txt Tue May 27 09:47:13 2014
@@ -5,6 +5,9 @@
2.0a1 - (Unreleased)
--------------------
+- Use lxml instead of elementtree
+ [tomgross]
+
- Adding posibility to generate vdex from a twodimension matrix, and
corresponding export functionality.
WARNING: The constructor arguments changed. Please update accordingly
Modified: imsvdex/trunk/imsvdex/tests/testConverters.py
==============================================================================
--- imsvdex/trunk/imsvdex/tests/testConverters.py (original)
+++ imsvdex/trunk/imsvdex/tests/testConverters.py Tue May 27 09:47:13 2014
@@ -2,6 +2,8 @@
import unittest
from imsvdex.vdex import VDEXManager
+from lxml import etree
+from lxml import objectify
class Conversions(unittest.TestCase):
def testMatrixExport(self):
@@ -17,7 +19,9 @@
self.assertEquals(matrix, new_manager.exportMatrix())
data = new_manager.serialize()
- should_be = '<?xml version="1.0" encoding="utf-8"?>\n<vdex xmlns="http://www.imsglobal.org/xsd/imsvdex_v1p0"><term><termIdentifier>identical</termIdentifier><caption><langstring language="en">is identical with</langstring><langstring language="fr">est identique avec</langstring><langstring language="it">\xc3\xa8 identico con</langstring></caption></term><term><termIdentifier>relative</termIdentifier><caption><langstring language="de">ist verwandt mit</langstring><langstring language="en">is relative of</langstring><langstring language="fr">est parent avec</langstring><langstring language="it">\xc3\xa8 parente di</langstring></caption><term><termIdentifier>child</termIdentifier><caption><langstring language="de">ist Kind von</langstring><langstring language="en">is child of</langst
ring><langstring language="fr">est enfant de</langstring><langstring language="it">\xc3\xa8 prole di</langstring></caption></term></term></vdex>'
+ should_be_xml = '<?xml version="1.0" encoding="utf-8" ?>\n<vdex xmlns="http://www.imsglobal.org/xsd/imsvdex_v1p0"><term><termIdentifier>identical</termIdentifier><caption><langstring language="en">is identical with</langstring><langstring language="fr">est identique avec</langstring><langstring language="it">\xc3\xa8 identico con</langstring></caption></term><term><termIdentifier>relative</termIdentifier><caption><langstring language="de">ist verwandt mit</langstring><langstring language="en">is relative of</langstring><langstring language="fr">est parent avec</langstring><langstring language="it">\xc3\xa8 parente di</langstring></caption><term><termIdentifier>child</termIdentifier><caption><langstring language="de">ist Kind von</langstring><langstring language="en">is child of</l
angstring><langstring language="fr">est enfant de</langstring><langstring language="it">\xc3\xa8 prole di</langstring></caption></term></term></vdex>'
+ obj = objectify.fromstring(should_be_xml)
+ should_be = etree.tostring(obj, encoding='utf-8', standalone=True)
self.assertEquals(should_be, data)
def testEmptyMatrix(self):
Modified: imsvdex/trunk/imsvdex/vdex.py
==============================================================================
--- imsvdex/trunk/imsvdex/vdex.py (original)
+++ imsvdex/trunk/imsvdex/vdex.py Tue May 27 09:47:13 2014
@@ -21,13 +21,9 @@
from StringIO import StringIO
from xml.parsers.expat import ExpatError
-from elementtreewriter.xmlwriter import XMLWriter
-from _odict import OrderedDict
+from collections import OrderedDict
-try:
- from cElementTree import parse, ElementTree, SubElement, Element
-except ImportError:
- from elementtree.ElementTree import parse, ElementTree, SubElement, Element
+from lxml import etree
VDEX_FLAT_PROFILE_TYPES = ('thesaurus', 'glossaryOrDictionary', 'flatTokenTerms')
TRUE_VALUES = ('1', 'true', 'True', 'yes', 'Yes')
@@ -119,7 +115,7 @@
if isinstance(file, StringTypes):
file = StringIO(file)
try:
- self.tree = parse(file)
+ self.tree = etree.parse(file)
except (SyntaxError, ExpatError), e:
raise VDEXError, 'Parse error in vocabulary XML: %s' % e
try:
@@ -136,10 +132,7 @@
"""
returns the vocabulary as XML
"""
- if file is None:
- file = StringIO()
- writer = XMLWriter(self.tree)
- return writer(file)
+ return etree.tostring(self.tree, encoding='utf-8', standalone=True)
def getVocabIdentifier(self):
"""
@@ -477,11 +470,11 @@
def addSubElem(parent, elementName, text=None):
- retval = SubElement(parent, self.vdexTag(elementName))
+ retval = etree.SubElement(parent, self.vdexTag(elementName))
if text != None:
retval.text = text
return retval
- root = Element(self.vdexTag('vdex'))
+ root = etree.Element(self.vdexTag('vdex'), nsmap={None: self.vdex_namespace})
# WARNING!! We do a dirty trick here. When the first elements
# Want to get their root element, they have a depth of 0
# They will then ask for parents[0-1]. So it gets the last
@@ -513,6 +506,6 @@
for index, translation in filter(lambda (i,x):x,[x for x in enumerate(descriptions)]):
langstring = addSubElem(description, 'langstring', translation)
langstring.attrib['language'] = languages[index]
- self.tree = ElementTree(root)
+ self.tree = etree.ElementTree(root)
self.order_significant = self.isOrderSignificant()
self.makeTermDict()
Modified: imsvdex/trunk/setup.py
==============================================================================
--- imsvdex/trunk/setup.py (original)
+++ imsvdex/trunk/setup.py Tue May 27 09:47:13 2014
@@ -9,6 +9,7 @@
long_description=open('README.txt').read() + "\n" +
open('CHANGES.txt').read(),
classifiers=[
+ 'Programming Language :: Python :: 2.7',
# Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
@@ -25,8 +26,5 @@
include_package_data=True,
test_suite='imsvdex.tests',
zip_safe=False,
- install_requires=[
- 'elementtree>=1.2.6',
- 'elementtreewriter>=1.0',
- ],
+ install_requires=['lxml',],
)
------------------------------------------------------------------------------
The best possible search technologies are now affordable for all companies.
Download your FREE open source Enterprise Search Engine today!
Our experts will assist you in its installation for $59/mo, no commitment.
Test it for FREE on our Cloud platform anytime!
http://pubads.g.doubleclick.net/gampad/clk?id=145328191&iu=/4140/ostg.clktrk