Skip to main content

Text sorting function for the Czech language

Project description

This is a pure-Python library Czech-language albhabetical sorting.

Quick Use

From Python:

>>> import czech_sort

>>> czech_sort.sorted(['sídliště', 'shoda', 'schody'])
['shoda', 'schody', 'sídliště']

>>> sorted(['sídliště', 'shoda', 'schody'], key=czech_sort.key)
['shoda', 'schody', 'sídliště']

On the command line:

$ python -m czech_sort < file.txt
shoda
schody
sídliště

Why another sorting library?

To sort Python strings in the Czech language, there are three other options:

  • Use PyICU. This can sort really well, and do all kinds of wonderful, standards-compliant Unicode things. Perfect for publication-quality results. Unfortunately, ICU can be a major pain to install, making it overkill if you just want to sort a list of strings.

  • Set the locale, then use locale.strxfrm. (Yes, strxfrm! Try saying that ten times fast!) This depends on the Czech POSIX locale being available, so it’s hardly portable.

  • Just use Python’s built-in string sort. This sorts lexicographically by Unicode codepoints. It might be good enough for you? Maybe?

Scope

The czech-sort library is a compromise. It should give you good results in the 99% case.

Do not use this if you need proper sorting of symbols, non-Latin scripts, or diacritics other than Czech/Slovak.

Any other deviation from the relevant standard, ČSN 97 6030, should be considered a bug. However, neither the author nor the community at large have access to the standard, which makes finding such bugs somewhat difficult.

Full API

czech_sort.*sorted*(iterable)

Takes an iterable of strings, and returns a list of them, sorted.

czech_sort.*key*(s)

Returns a sort key object for a given string.

Compatibility

The czech-sort library can be used with Python 2.6+ and 3.3+.

Under Python 2, it only accepts unicode strings.

Installation

Install this into your virtualenv by running:

pip install czech-sort

Contribute

Bug reports and comments are welcome at Github.

Patches are also welcome! Source code is hosted at Github:

$ git clone github.com/encukou/czech-sort

To run the included tests:

$ pip install pytest
$ python -m pytest

If you would like to contribute, but are confused by the above, then please e-mail encukou at gmail dot com.

License

The project is licensed under the MIT license. May it serve you well.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

czech-sort-0.3.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

czech_sort-0.3-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file czech-sort-0.3.tar.gz.

File metadata

  • Download URL: czech-sort-0.3.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for czech-sort-0.3.tar.gz
Algorithm Hash digest
SHA256 48ae25a57aaa73b1e09fd7a12a474c0663ba84a61ae1ee434480c4755ccb8bea
MD5 efd304eae7375016b642f2a85d9723a0
BLAKE2b-256 395c04003b6ec025ea143c1f6fed6661213f11f70cc41e86e0b787c11a18ab46

See more details on using hashes here.

File details

Details for the file czech_sort-0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for czech_sort-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8f8335ee3d88c76fa7ac8bcfed577a1ab4ec0f3b7a8872cdd35beeb0ca7ab8cd
MD5 f0216022cfe72a25cb031e14440fdb43
BLAKE2b-256 8943048d65c5faca16d42e921a4240d6c821c6af9ab5d18028bb11e501cfbb24

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page