Skip to main content

This package provides a Python interface to the International Component for Unicode (ICU).

Change History

1.0.2 (2006-10-16)

Fixed setup file problems.

1.0.1 (2006-10-16)

Added missing import to setup.py.

1.0 (2006-10-16)

Initial version.

Installation

zope.ucol is installed via setup.py in the usual way.

You must have ICU installed. If ICU isn’t installed in the usual places for include files and libraries on your system, you can provide command-line options to setup.py when building the extensions, as in:

python2.4 setup.py build_ext \
  -I/home/jim/p/z4i/jim-icu/var/opt/icu/include \
  -L/home/jim/p/z4i/jim-icu/var/opt/icu/lib \
  -R/home/jim/p/z4i/jim-icu/var/opt/icu/lib

python2.4 setup.py install

Note that if the libraries are in an unusual place, you will want to specify their location using the -R option so you don’t have to specify it at run-time.

Detailed Documentation

Locale-based text collation using ICU

The zope.ucol package provides a minimal Pythonic wrapper around the u_col C API of the International Components for Unicode (ICU) library. It provides locale-based text collation.

To perform collation, you need to create a collator key factory for your locale. We’ll use the special “root” locale in this example:

>>> import zope.ucol
>>> collator = zope.ucol.Collator("root")

The collator has a key method for creating collation keys from unicode strings. The method can be passed as the key argument to list.sort or to the built-in sorted function.

>>> sorted([u'Sam', u'sally', u'Abe', u'alice', u'Terry', u'tim',
...        u'\U00023119', u'\u62d5'], key=collator.key)
[u'Abe', u'alice', u'sally', u'Sam', u'Terry', u'tim',
 u'\u62d5', u'\U00023119']

There is a cmp method for comparing 2 unicode strings, which can also be used when sorting:

>>> sorted([u'Sam', u'sally', u'Abe', u'alice', u'Terry', u'tim',
...        u'\U00023119', u'\u62d5'], collator.cmp)
[u'Abe', u'alice', u'sally', u'Sam', u'Terry', u'tim',
 u'\u62d5', u'\U00023119']

Note that it is almost always more efficient to pass the key method to sorting functions, rather than the cmp method. The cmp method is more efficient in the special case that strings are long and few and when they tend to differ at their beginnings. This is because computing the entire key can be much more expensive than comparison when the order can be determined based on analyzing a small portion of the original strings.

Collator attributes

You can ask a collator for it’s locale:

>>> collator.locale
'root'

and you can find out whether default collation information was used:

>>> collator.used_default_information
0
>>> collator = zope.ucol.Collator("eek")
>>> collator.used_default_information
1

Download

Release files for zope.ucol 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zope.ucol 1.0.2
File Size Uploaded
zope.ucol-1.0.2.tar.gz 15.1 kB Details

Release files / zope.ucol-1.0.2.tar.gz

Download URL zope.ucol-1.0.2.tar.gz
Size 15.1 kB
Tags Source
SHA-256 checksum
How to use checksums
1739bba505ba098d080ba170c274791105033eb8b02a6ce9794165c68691523b
BLAKE2b-256 checksum
How to use checksums
e5bc2640d1c930cf0dd63b8dbf3439459cb5e9873c8973882f6b34675404d241
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.0.2 This release

1 release file

1.0.1

1 release file

1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page