Issue with pickling an unpickled object
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 32/100
Direzione di ricerca
Inizia riproducendo il round-trip segnalato con Python 3.9.6 e cloudpickle 2.0.0 utilizzando il metodo di classe fornito e i dettagli del bytecode. Segui la seconda operazione di cloudpickle attraverso la gestione del bytecode che raggiunge dis.py e considera il problema risolto quando l’oggetto può essere nuovamente serializzato con pickle senza l’IndexError e la regressione è coperta da un test riproducibile.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Python 3.9.6 | cloudpickle 2.0.0
While using cloudpickle to pack some classes, I encountered the following error:
\lib\dis.py", line 347, in _get_instructions_bytes argval = cmp_op[arg] IndexError: tuple index out of range
arg = 6
op = 107
Here is the segment of code (a class method) it was processing when the error occurred:
def startTimer(self,name):
if name in self.timers and not self.timers[name]['start'] is None:
if self.timers[name]['stop'] is None:
print(f"Timer ({name}) has already been started..")
return
else:
print(f"Timer ({name}) being restarted from last stop ({self.timers[name]['stop']})")
self.timers[name]={"start":time(),"stop":None}
Here is the bytecode:
b't\x00d\x01d\x02\x8d\x01|\x00_\x01d\x03g\x01|\x00_\x02d\x04|\x00_\x03g\x00|\x00_\x04d\x00|\x00_\x05|\x01|\x00_\x06|\x00\xa0\x07\xa1\x00\x01\x00t\x08|\x00j\x01\x83\x01\x01\x00d\x00S\x00'
Here is the unpacked code:
[(0, 116, 0), (2, 100, 1), (4, 100, 2), (6, 141, 1), (8, 124, 0), (10, 95, 1), (12, 100, 3), (14, 103, 1), (16, 124, 0), (18, 95, 2), (20, 100, 4), (22, 124, 0), (24, 95, 3), (26, 103, 0), (28, 124, 0), (30, 95, 4), (32, 100, 0), (34, 124, 0), (36, 95, 5), (38, 124, 1), (40, 124, 0), (42, 95, 6), (44, 124, 0), (46, 160, 7), (48, 161, 0), (50, 1, None), (52, 116, 8), (54, 124, 0), (56, 106, 1), (58, 131, 1), (60, 1, None), (62, 100, 0), (64, 83, None)]
This is happening when I try to re-cloudpickle an object that was already pickled and loaded with cloudpickle. The original pickling goes through fine, I am able to unpack it without issues, but when I try to re-pickle the unpacked object again I get the above error.
- Lingua principale
- Python
- Stelle
- 1.9k
- Fork
- 197
- Merge medio
- 1g 10h
- PR unite (30g)
- 1
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
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
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
browser-use/browser-use#5905 ·
-
type: enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
ynput/ayon-python-api#363 ·
-
bug needs triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
modelscope/FunASR#3728 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
open-compass/opencompass#2655 ·