__set__ always calls __get__
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia in couchdbkit/schema/base.py, in setattr(), soprattutto sulla chiamata hasattr(self, key) mostrata nel report. Riproduci l’assegnazione a una proprietà personalizzata il cui get esegue una ricerca nel database, quindi esamina come viene usato _properties. Il lavoro è completo quando l’assegnazione non attiva più la ricerca indesiderata, mentre la normale gestione delle proprietà rimane intatta.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I have implemented some sort of foreign keys automatic fetching. For this I just created custom Property, that automatically returns related document from database when such property is get. But couchdbkit also always calls get on set operation.
Here is example:
-
I try to set a value to docref property:
doc.docref = special_docref_object -
CouchDbKit uses hasattr(self, key) in setattr, what causes get to be called:
couchdbkit/schema/base.py(182)__setattr__() --> 182 if not hasattr( self, key ) ... -
Now I get unwanted behaviour - database hit, because get is called, but should not be:
myapp.py(169)__get__() --> 169 db.get(value)
Maybe
hasattr(self, key)
can be replaces with:
hasattr(self._properties, key)
?
- Lingua principale
- Python
- Stelle
- 261
- Fork
- 90
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
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 benoitc/couchdbkit
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
benoitc/couchdbkit#181 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
benoitc/couchdbkit#196 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
benoitc/couchdbkit#194 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
benoitc/couchdbkit#193 · 2 commenti · 1 reazione ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 48/100
benoitc/couchdbkit#192 ·
Tutte le issue di benoitc/couchdbkit
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
openvinotoolkit/openvino_notebooks#3858 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
hummingbot/hummingbot-api#256 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
-
area:other help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
WingedGuardian/GENesis-AGI#4734 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
peach-mitao/peach#693 ·
I maintainer di solito rispondono entro 1 giorno