Unable to reference global variables in serialized functions
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Comienza con la reproducción mínima de cloudpickle del issue y sigue cómo se serializa y restaura increment_x. El issue no menciona archivos fuente ni tests, así que primero localiza el punto de entrada de la serialización de funciones y el manejo existente de variables globales. Se considera terminado cuando la función copiada actualiza la misma variable global x que la original, con una comprobación de regresión para el caso mostrado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
When pickling a function that references a global variable, the global variable is no longer referenced.
import cloudpickle
global x
x = 123
def increment_x():
global x
x += 1
return x
copy_of_increment_x = cloudpickle.loads(cloudpickle.dumps(increment_x))
print('Expecting 124 - got ' + str(increment_x()))
print('Expecting 125 - got ' + str(copy_of_increment_x()))
The following will print
Expecting 124 - got 124
Expecting 125 - got 124
Is there a way to reference globals?
- Lenguaje dominante
- Python
- Estrellas
- 1.9k
- Forks
- 197
- Merge medio
- 1 d 10 h
- PR fusionados (30 d)
- 1
Preparar el entorno
Aún no hemos revisado los archivos de configuración de este proyecto. 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
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-2 días Aptitud para principiantes 70/100
-
FingerprintSplitter raises ZeroDivisionError when int(frac_train * len(dataset)) floors to zeroAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 7 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
lmstudio-ai/mlx-engine#376 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
pyiron/bagofholding#166 ·