I've mentioned this before, but I figured I should write this up. Let me know if any of it is unclear.
I have a request open to James Tauber, the author of pyuca, to confirm that everything still works under versions of python past 3.7.
But below is the general point of using pyuca, which was written because of the need of something for Greek but follows all international unicode rules, so that if a PhiloLogic text is not in English, it will be able to sort according to proper conventions for any language covered by unicode consortium guidelines. (quote from JT's Readme file below).
What do you use it for?
In short, sorting non-English strings properly.
The core of the algorithm involves multi-level comparison. For example, café comes before caff because at the primary level, the accent is ignored and the first word is treated as if it were cafe. The secondary level (which considers accents) only applies then to words that are equivalent at the primary level.
The Unicode Collation Algorithm and pyuca also support contraction and expansion. Contraction is where multiple letters are treated as a single unit. In Spanish, ch is treated as a letter coming between c and d so that, for example, words beginning ch should sort after all other words beginnings with c. Expansion is where a single letter is treated as though it were multiple letters. In German, ä is sorted as if it were ae, i.e. after ad but before af.
By contrast, this is current sorting for Greek: you'll see that πά πέ πα is the order as you go down the list, simply due to code block order. It is possible to simply flatten accents of course, but incorporating pyuca would give you coverage of many more languages.

I've mentioned this before, but I figured I should write this up. Let me know if any of it is unclear.
I have a request open to James Tauber, the author of pyuca, to confirm that everything still works under versions of python past 3.7.
But below is the general point of using pyuca, which was written because of the need of something for Greek but follows all international unicode rules, so that if a PhiloLogic text is not in English, it will be able to sort according to proper conventions for any language covered by unicode consortium guidelines. (quote from JT's Readme file below).
By contrast, this is current sorting for Greek: you'll see that πά πέ πα is the order as you go down the list, simply due to code block order. It is possible to simply flatten accents of course, but incorporating pyuca would give you coverage of many more languages.