Typing nits: Calendar.multiget() annotation, and DAVClient.password type differs between sync and async
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 76/100
Direzione di ricerca
Leggi caldav/collection.py nella sezione intorno a Calendar.multiget() e confronta la sua annotazione con quella di search() o get_object_by_uid(). Poi esamina caldav/davclient.py nella sezione intorno ai costruttori sincroni e asincroni e alla gestione delle password. Aggiorna in modo coerente i tipi pubblici e controlla i test pertinenti di tipizzazione e del client; il lavoro è concluso quando multiget() asincrono è rappresentato come una funzione che restituisce una coroutine ed entrambi i client espongono le password come str.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Disclaimer: AI-generated text below the line, generated by Claude Opus 5.5 while writing the CalDAV backend for calendaring, from the prompt:
file the ugs (sic) found
Two small inconsistencies, both found while wrapping caldav in a typed sync/async layer. Low priority; neither breaks anything at runtime today.
-
Calendar.multiget()is annotated-> Iterable[_CC], but returns a coroutine to an async client (caldav/collection.py,multiget). Its siblings (search(),get_object_by_uid(), ...) say"list[_CC] | Coroutine[Any, Any, list[_CC]]";multiget()returnsself._async_multiget_objects(...)for an async client but its annotation does not admit it, so a type checker acceptsfor obj in calendar.multiget(urls)on an async client, which then iterates a coroutine. Fix: the sameX | Coroutine[...]annotation as the others. -
DAVClient.passwordisbytes,AsyncDAVClient.passwordisstr. The sync constructor encodes a str password to UTF-8 (caldav/davclient.py, around line 330); the async one keeps it as given. The sync client decodes it again before building the auth object, so authentication works in both modes, but the public attribute's type depends on the mode: code readingclient.password(a test, or a wrapper that hands the client to something else) has to accept both. Fix: keep it a str in both, and encode only where bytes are needed, if anywhere.
- 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 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
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 66/100
python-caldav/caldav#795 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di python-caldav/caldav
Issue simili
-
wr.dynamodb.read_items returns [{}] for a single partition value that does not existForse già presa @auraseb l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
aws/aws-sdk-pandas#3520 ·
I maintainer di solito rispondono entro 2 giorni
-
requires triage typing
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
sqlalchemy/sqlalchemy#13704 ·
I maintainer di solito rispondono entro 1 giorno
-
Edit tool converts CRLF files to LFForse già presa @RaphaelFakhri l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
huggingface/tau#774 ·
I maintainer di solito rispondono entro 1 giorno
-
show ignores the row limit when a column or table name contains "limit"Forse già presa @RaphaelFakhri l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
What happened to `check.py`?Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
linebender/resvg#1179 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni