Guardando un widget kivy en un archivo

Así que estoy tratando de guardar un widget kivy en un archivo usando cpickle y obtengo un error.

from kivy.uix.widget import Widget
import cPickle as pickle

foo = Widget()
bar = open('bar.dat', 'w')
pickle.dump(foo, bar)
bar.close()

Da Traceback como,

Traceback (most recent call last):
  File ".last_tmp.py", line 6, in <module>
    pickle.dump(foo, bar)
  File "QPython/build/python-install/lib/python2.7/copy_reg.py", line 71, in_reduce_ex
TypeError: __init__() takes exactly 0 positional arguments(1 given)

¿Hay una manera de solucionar esto? ¿O hay una mejor manera de guardar un widget en un archivo para su uso posterior?

Respuestas a la pregunta(1)

Su respuesta a la pregunta