[XML-SIG] Python 1.5 support with PyXML 0.6.2/4Suite0.9.2
Alexandre Fayolle
Alexandre.Fayolle@logilab.fr
Fri, 17 Nov 2000 10:51:25 +0100 (CET)
On Thu, 16 Nov 2000, Martin v. Loewis wrote:
> > I would like to have some clarification about the python 1.52 support in
> > PyXML 0.6.2 and 4Suite 0.9.2. 4Suite specifies it nees PyXML 0.6.2 to
> > run. Is it 6.2 for python 2.0 and 5.5.1 for python 1.52 ?
>
> PyXML supports both Python 1.5.2, and Python 2.0.
>
> > I could not find the xml.unicode package in pyxml 0.6.2...
>
> There isn't any such package. Why do you think it should be there?
Well, just 'cos it was there in PyXML 0.5.5.1 and 4Suite seems to
heavily depend on it when running under python 1.5.2
in Printer.py, there are things like:
try:
#The following stanza courtesy Martin von Loewis
import codecs # Python 1.5 only
from types import UnicodeType
def utf8_to_code(text, encoding):
encoder = codecs.lookup(encoding)[0] # encode,decode,reader,writer
if type(text) is not UnicodeType:
text = unicode(text, "utf-8")
return encoder(text)[0] # result,size
except ImportError:
def utf8_to_code(text, encoding):
encoding = string.upper(encoding)
if encoding == 'UTF-8':
return text
from xml.unicode.iso8859 import wstring
wstring.install_alias('ISO-8859-1', 'ISO_8859-1:1987')
#Note: Pass through to wstrop. This means we don't play nice and
#Escape characters that are not in the target encoding.
ws = wstring.from_utf8(text)
text = ws.encode(encoding)
#This version would skip all untranslatable chars: see wstrop.c
#text = ws.encode(encoding, 1)
return text
There is an error in the comment of line 3 of the above snippet
(codecs are only in python2.0), so Python 1.5 will actually execute the
except statement, and therefore an xml.unicode.iso8859 package seems to be
required.
Alexandre Fayolle
--
http://www.logilab.com
Narval is the first software agent available as free software (GPL).
LOGILAB, Paris (France).