register_pickle_by_value appears to not deliver monkeypatches to receiver
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 38/100
Direzione di ricerca
Inizia riproducendo l’esempio a due ambienti relativo a register_pickle_by_value(), cloudpickle.dumps() e pickle.loads(), confrontando il comportamento di tdb.my_function con la patch applicata su entrambi i lati. Traccia come vengono rappresentati e risolti la lambda e il riferimento al modulo tdb, quindi documenta se il risultato osservato è previsto oppure identifica il comportamento minimo che fallisce e che deve essere testato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Should I expect register_pickle_by_value() to deliver monkeypatches? I don't know if what I'm observing is a bug or only missing functionality.
I have two python environments, A and B. Each has cloudpickle 3.1.2 installed and also a package that I'm developing at work. Let's call it "tdb". I run a script in environment A that looks like this:
import sys
import cloudpickle
import tdb
# monkeypatch an attribute of tdb.
tdb.my_function = lambda *args, **kwargs: ["fake", "values"]
def func():
return tdb.my_function()
assert func() == ["fake", "values"]
cloudpickle.register_pickle_by_value(tdb)
pickle_data = cloudpickle.dumps(func, protocol=4)
sys.stdout.buffer.write(pickle_data)
I'm piping the output to a script that runs in environment B
import pickle
import sys
pickle_data = sys.stdin.buffer.read()
print(pickle_data)
func = pickle.loads(pickle_data)
print(func())
But I see the original tdb.my_function being called in environment B, not my monkeypatch.
The odd thing is that I can see lambda when I print the pickle stream in environment B. It's there in some sense, but isn't being understood on the receiver side.
- Lingua principale
- Python
- Stelle
- 1.9k
- Fork
- 197
- Merge medio
- 1g 10h
- PR unite (30g)
- 1
Preparare l'ambiente
Non abbiamo ancora controllato i file di configurazione di questo progetto. 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 cloudpipe/cloudpickle
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
cloudpipe/cloudpickle#593 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
cloudpipe/cloudpickle#595 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 65/100
cloudpipe/cloudpickle#592 · 2 commenti ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
cloudpipe/cloudpickle#589 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
cloudpipe/cloudpickle#587 ·
Tutte le issue di cloudpipe/cloudpickle
Issue simili
-
pydanty:is-working
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
pydantic/pydantic-ai#8843 ·
I maintainer di solito rispondono entro 1 giorno
-
breaking change enhancement server
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
sktime/sktime#11310 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno