-
Notifications
You must be signed in to change notification settings - Fork 118
Open
Description
apologies in advance as I had to type this on my phone
I'm getting the following error when trying to pickle an instance of a class that is configured with gin:
Error:
TypeError: cannot pickle '_thread.lock' object
Code that triggers the error:
import io
import cloudpickle as cp
import gin
@gin.configurable
class Car:
def __init__(self.horn_noise: str):
self.horn_noise = horn_noise
def honk(self):
print
gin.parse_config_files_and_bindings(config_files=[], bindings=['Car.horn_noise = "beep beep!"'])
car = Car()
car_pkl_bytes = cp.dumps(car)
loaded_car = cp.load(io.BytesIO(car_pkl_bytes)
A workaround is referenced in this issue, but it involves installing dask (or pulling the SerializableLock class into my project) and for some reason even though this workaround allows me to pickle and unpickle a gin configured class, I have to run gin.parse_config_files_and_bindings again after unpickling so that the instance works properly: #8
dmsfabiano, Dawars and mrpep
Metadata
Metadata
Assignees
Labels
No labels