Issue with pickling an unpickled object
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 32/100
Línea de trabajo
Comienza reproduciendo el round-trip informado con Python 3.9.6 y cloudpickle 2.0.0 utilizando el método de clase proporcionado y los detalles del bytecode. Sigue la segunda operación de cloudpickle a través del manejo del bytecode que llega a dis.py, y considera resuelto el problema cuando el objeto pueda volver a serializarse con pickle sin el IndexError y la regresión esté cubierta por una prueba reproducible.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Python
- Estrellas
- 1.9k
- Forks
- 198
- Merge medio
- 1 d 10 h
- PR fusionados (30 d)
- 1
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de cloudpipe/cloudpickle
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
cloudpipe/cloudpickle#593 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
cloudpipe/cloudpickle#595 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
cloudpipe/cloudpickle#592 · 2 comentarios ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
cloudpipe/cloudpickle#589 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
cloudpipe/cloudpickle#587 ·
Todos los issues de cloudpipe/cloudpickle
Issues similares
-
customer-reported
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Azure/azure-cli#34150 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
community-request
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
NVIDIA-NeMo/Curator#2464 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
weblate-discover crashes with an unhandled FileNotFoundError when the directory does not existAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
WeblateOrg/translation-finder#1099 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
trezor/trezor-firmware#7997 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día