Improved collation support for non-ascii case-insensitive text-match
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- python
- Ambito
- backend-api-design
Direzione di ricerca
Start with search.py and the existing tests for Collation.SIMPLE, Collation.UNICODE, and Collation.LOCALE; check how the server’s supported collations are discovered and how searches behave when Unicode casemapping is unavailable. Done means non-ASCII case-insensitive matching works where supported, unsupported cases have a defined workaround, and the example file is updated if needed.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
RFC4791 requires the server to support searching according to two collations - i;octet for binary match and i;ascii-casemap allowing case-insensitive search, with the latter being the default. In caldav v2.2.2 there is test code covering both "case sensitive" and "case insensitive" searches. The problem with i;ascii-casemap is that it only works for ascii characters - causing mismatches between naïve and NAÏVE, cliché and CLICHÉ, smörgåsbord and SMØRGÅSBORD, not to forget millions of words in non-English languages, complete non-latin scripts, etc.
RFC4790 specifies a i;unicode-casemap collation, which may or may not be supported by the server. RFC4791 section 7.5.1 says that it's possible to ask the server what collations it support.
To resolve this issue ...
- Case-insensitive searches should work for non-ascii characters on all servers supporting it.
- Library should detect non-ascii characters and do workarounds for servers not supporting case insensitivity on non-ascii characters.
Locale support would be nice (i.e. "istanbul" should match with İstanbul in Turkish locale), but not required (this may be a very deep rabbit hole - one would like istanbul to match both İstanbul and Istanbul, at the other hand there may be too many false negatives if the matching is too liberal).
A good test-case may include English loan-words like crème brûlée and naïve, typical Scandinavian words like Smörgåsbord, Blåbærsyltetøy, some French and Turkish words, as well as Ukrainian text.
Current state in the code as of 2026-08-20: search.py maps Collation.SIMPLE to i;octet / i;ascii-casemap and Collation.UNICODE to i;octet / i;unicode-casemap, but Collation.LOCALE silently falls back to i;ascii-casemap. The API therefore already offers a locale collation that quietly does nothing at all - which is worse than not offering one.
The i;unicode-casemap may not be sufficient to handle all languages, ref the Istanbul example above.
There is an example file in the example directory that may need brush-up as well.
⚠️ The paragraph on the "current state" were added to this description by Claude Opus 5 via Claude Code on behalf of tobixen. The rest of the issue is human-written.
- Lingua principale
- Python
- Stelle
- 412
- Fork
- 113
- Merge medio
- 11h 37m
- PR unite (30g)
- 50
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di python-caldav/caldav
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
python-caldav/caldav#799 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
python-caldav/caldav#792 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
python-caldav/caldav#788 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
python-caldav/caldav#687 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 75/100
python-caldav/caldav#796 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di python-caldav/caldav
Issue simili
-
good first issue tools
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
bug deferred domain:ci P1
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
get_page_thumbnail modifies cached page images, affecting later thumbnails and picture exportsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
docling-project/docling-mcp#147 ·
-
issue: A pipe model's Valves button ignores the Allow Chat Valves permissionForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertabug confirmed issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
open-webui/open-webui#32771 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Scheduled Security Scan is failing on mainForse già presa @pkupt l’ha presa oggi. Apertasecurity-scan-failure
Difficoltà 1/5 1-3 ore Idoneità per principianti 74/100
semantica-agi/semantica#2045 ·
I maintainer di solito rispondono entro 2 giorni