[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