loc = icu.Locale("und-u-ka-shifted-kb-true")
c = icu.Collator.createInstance(loc)
assert sorted(names, key=c.getSortKey) == expected
Справочная информация:
Я пытаюсь воспроизвести (в Python) поведение сортировки из базы данных AWS Postgres. Лучшее, что я могу понять, это то, что у него есть собственные правила для пробелов/пунктуации, основанные на опции «обрезание по сдвигу», а также «обратный акцент» (
или [назад 2])
ICU, похоже, не поддерживает обрезку по сдвигу, и я не знаю, как еще я могу заставить их сортироваться «правильно».
Для получения дополнительных объяснений см. настройки сортировки и контекстную чувствительность.>
[/code] Попробовал несколько вариантов локали, например: [code]loc = icu.Locale("und-u-ka-shifted-kb-true") c = icu.Collator.createInstance(loc) assert sorted(names, key=c.getSortKey) == expected [/code] [b]Справочная информация:[/b] Я пытаюсь воспроизвести (в Python) поведение сортировки из базы данных AWS Postgres. Лучшее, что я могу понять, это то, что у него есть собственные правила для пробелов/пунктуации, основанные на опции «обрезание по сдвигу», а также «обратный акцент» ([code]kb-true[/code] или [назад 2]) ICU, похоже, не поддерживает обрезку по сдвигу, и я не знаю, как еще я могу заставить их сортироваться «правильно». Для получения дополнительных объяснений см. настройки сортировки и контекстную чувствительность.>