[pyicu-dev] getCollationKey
Jim Fulton
jim at zope.com
Fri Nov 18 17:06:41 PST 2005
Andi Vajda wrote:
>
>> It's great to see a Python binding for ICU underway!
>
> Thanks, it's definitely work in progress.
>
>> Is the getCollationKey method of collators usable? If so, how
>> is it called?
>
>
> You found a bug. I fixed in rev 47. Here is how you'd use it:
Revision 47 has a circular import:
PyICU imports PyICU_bases
PyICU_bases imports PyICU_iterators
PyICU_iterators imports PyICU_bases
There's a similar problem with PyICU_locale.
I don't see an import order that will allow import to succeed. :(
This problem was not in the 0.3 release.
Removing the imports:
%import "iterators.i"
%import "locale.i"
from bases.i solves the problem, but I get failing tests:
PYTHONPATH=var/opt/pyicu/lib/python LD_LIBRARY_PATH=var/opt/pyicu/lib:var/opt/icu/lib bin/python var/src/pyicu/test/test_Collator.py
E
======================================================================
ERROR: testSort (__main__.TestCollator)
----------------------------------------------------------------------
Traceback (most recent call last):
File "var/src/pyicu/test/test_Collator.py", line 44, in testSort
names.sort(collator.compare)
File "/home/jim/p/z4i/ii/var/opt/pyicu/lib/python/PyICU_collator.py", line 85, in compare
def compare(*args): return _PyICU_collator.Collator_compare(*args)
NotImplementedError: No matching function for overloaded 'Collator_compare'
----------------------------------------------------------------------
Ran 1 test in 0.011s
FAILED (errors=1)
PYTHONPATH=var/opt/pyicu/lib/python LD_LIBRARY_PATH=var/opt/pyicu/lib:var/opt/icu/lib bin/python var/src/pyicu/test/test_MessageFormat.py
...E
======================================================================
ERROR: testFormats (__main__.TestMessageFormat)
----------------------------------------------------------------------
Traceback (most recent call last):
File "var/src/pyicu/test/test_MessageFormat.py", line 65, in testFormats
formats[0].setTimeZone(TimeZone.createTimeZone(tzid))
File "/home/jim/p/z4i/ii/var/opt/pyicu/lib/python/PyICU_dateformat.py", line 156, in setTimeZone
def setTimeZone(*args): return _PyICU_dateformat.DateFormat_setTimeZone(*args)
TypeError: argument number 1: a 'icu::DateFormat *' is expected, 'PySwigObject(_p_icu__SimpleDateFormat)' is received
----------------------------------------------------------------------
Ran 4 tests in 0.013s
FAILED (errors=1)
Of course, the tests fail much sooner with the imports, as the PyICU import fails.
Any ideas?
Jim
--
Jim Fulton mailto:jim at zope.com Python Powered!
CTO (540) 361-1714 http://www.python.org
Zope Corporation http://www.zope.com http://www.zope.org
More information about the pyicu-dev
mailing list