Add `to_upper` and `to_lower` to `msgspec.Meta` for `str` objects
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
Inizia con i vincoli esistenti di msgspec.Meta e il percorso json.Decoder descritto nell’issue, quindi esamina l’issue #782 per il relativo contesto di progettazione. Implementa il supporto per to_upper e to_lower nei metadati di str, mantenendo i vincoli di lunghezza e pattern richiesti, e verifica che l’esempio decodifichi prefix come "msg-spec".
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
I have a struct that wants a str input that has whitespace stripped, is in all lowercase, is below a max length, is above a minimum length, and matches a regex pattern. This repository already has an issue for stripping whitespace through msgspec.Meta, that being #782. This is possible through __post_init__, but I don't see why this couldn't just be on Meta instead. Plus, using __post_init__ means more boilerplate. Here's an example of what this might look like in code:
from msgspec import Struct, Meta, json
from typing import Annotated
class Repository(Struct, kw_only=True):
owner: str
name: str
prefix: Annotated[str, Meta(min_length=3, max_length=30, to_lower=True, pattern=r"^[\w\-]+$")]
decoder = json.Decoder(Repository)
raw = '{"owner": "jcrist", "name": "msgspec", "prefix": "Msg-Spec"}'
repo = decoder.decode(raw)
print(repo.prefix)
# msg-spec
Versus what has to be done now (not too bad but still unnecessary boilerplate):
from msgspec import Struct, Meta, json
from typing import Annotated
class Repository(Struct, kw_only=True):
owner: str
name: str
prefix: Annotated[str, Meta(min_length=3, max_length=30, pattern=r"^[\w\-]+$")]
def __post_init__(self) -> None:
self.prefix = self.prefix.lower()
decoder = json.Decoder(Repository)
raw = '{"owner": "jcrist", "name": "msgspec", "prefix": "Msg-Spec"}'
repo = decoder.decode(raw)
print(repo.prefix)
# msg-spec
- Lingua principale
- Python
- Stelle
- 4.2k
- Fork
- 216
- Merge medio
- 2g 21h
- PR unite (30g)
- 53
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- 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 msgspec/msgspec
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
msgspec/msgspec#1288 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Segfault reading decimal_format after a failed Encoder.__init__ re-callForse già presa @digit50 l’ha presa 4 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 62/100
msgspec/msgspec#1279 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Fix Free-Threading supportForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertaenhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
msgspec/msgspec#1249 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
convert: mapping fields named like mapping methods (keys, get, ...) resolve to the bound methodForse già presa @MbappeWU l’ha presa 6 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Decoding subnormal numbers is really slowForse già presa @arindamsikder l’ha presa 12 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
msgspec/msgspec#1232 · 5 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di msgspec/msgspec
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
mihai-vlc/sublime-jsfmt#56 ·
-
comp/cli comp/plugins P2 type/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
NousResearch/hermes-agent#141917 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Go device SDK: Whisper transcriber keeps buffering and transcribing audio appended after Stop()Forse già presa @apoorvdarshan l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
BasedHardware/omi#22770 ·
I maintainer di solito rispondono entro 1 giorno
-
bug needs-acceptance wg/router-models-inference-runtime
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
vllm-project/semantic-router#5295 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
huggingface/huggingface_hub#5210 ·
I maintainer di solito rispondono entro 1 giorno