跳转到主要内容

捷克语文本排序功能

项目描述

Czech Sort

这是一个用于捷克语字母排序的纯Python库。

快速使用

从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ě']

在命令行中:

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

为什么还需要另一个排序库?

要排序Python字符串,有三种其他选择

  • 使用PyICU。这可以非常好地排序,并且执行所有各种标准合规的Unicode操作。非常适合出版物质量的结果。不幸的是,ICU的安装可能很麻烦,如果您只想排序字符串列表,则可能有点过度。
  • 设置区域设置,然后使用locale.strxfrm。是的,strxfrm!试着快速说十遍!)这取决于Czech POSIX区域设置是否可用,因此几乎不可移植。
  • 只需使用Python内置的字符串排序。这按Unicode代码点进行字典排序。这可能对您足够好吗?也许吧?

范围

czech-sort库是一种折衷方案。它应该在99%的情况下为您提供良好的结果。

如果您需要正确排序符号、非拉丁脚本或除捷克/斯洛伐克以外的重音符号,请不要使用此库。

任何与相关标准(ČSN 97 6030)的任何其他偏差都应被视为错误。然而,作者和广大社区都无法访问该标准,这使得查找此类错误有些困难。

完整API

czech_sort.sorted(iterable)

接受字符串的可迭代对象,并返回排序后的字符串列表。

czech_sort.key(s)

返回给定字符串的排序键对象。

此函数适合作为内置函数 sortedlist.sortkey 参数。

czech_sort.bytes_key(s)

返回给定字符串的排序键,以字节形式。

此函数适合作为数据库API自定义函数,例如内置 sqlite3 连接的 create_function

警告:不要存储此函数的结果。此格式可能在 czech_sort 的未来版本中更改。

兼容性

czech-sort库可用于Python 2.6+和3.5+。

在Python 2下,它仅接受unicode字符串。

安装

通过运行以下命令将此安装到您的virtualenv中:

$ pip install czech-sort

贡献

欢迎在Github 上提交错误报告和评论

欢迎贡献补丁!源代码托管在Github。

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

运行包含的测试

$ python -m pip install -e.[test]
$ python -m pytest

如果您想做出贡献,但对此感到困惑,请发送电子邮件至encukou at gmail dot com。

许可

本项目采用MIT许可证。愿它能为您服务。

变更日志

1.1.0 (2023-07-11)

  • 添加bytes_key(感谢@honzajavorek!)
  • 停止支持Python 2

1.0.1 (2021-08-30)

  • 修复阻止包含'Ł'和/或'Ø'的字符串排序的bug。(感谢@dark-light-cz报告和@jiri-one提交PR!)

1.0.0 (2020-09-14)

没有代码更改。由于该项目已经稳定五年,我决定将其称为1.0。

  • 打包改进
  • 在Python 2.7和3.5-3.9上测试

0.4 (2015-09-05)

  • 首次公开发布

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源代码分发

czech-sort-1.1.0.tar.gz (8.0 kB 查看散列

上传时间 源代码

构建分发

czech_sort-1.1.0-py3-none-any.whl (8.3 kB 查看散列

上传时间 Python 3

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面