On Friday, November 15, 2013 08:37:27 AM Dylan Baker wrote:
> On Thursday, November 14, 2013 06:03:54 PM Damien Lespiau wrote:
> > When resuming and loading the partial JSON file from disk, the 'status'
> > property is replaced by status.Status objects. When serializing back
> > those objects, JSONEncoder is unhappy because it doesn't know how to
> > 
> > serialize status.Status objects and gives up with exceptions like:
> >   TypeError: skip is not JSON serializable
> > 
> > We can write a small subclass of JSONEncoder that knows about Status
> > objects and use it to do the initial write back of the partial JSON
> > file.
> > 
> > Signed-off-by: Damien Lespiau <damien.lesp...@intel.com>
> > ---
> > 
> >  framework/core.py | 7 ++++++-
> >  1 file changed, 6 insertions(+), 1 deletion(-)
> > 
> > diff --git a/framework/core.py b/framework/core.py
> > index 2d5d0dc..9f153a3 100644
> > --- a/framework/core.py
> > +++ b/framework/core.py
> > @@ -58,6 +58,11 @@ __all__ = ['Environment',
> > 
> >             'Test',
> >             'testBinDir']
> > 
> > +class PiglitJSONEncoder(json.JSONEncoder):
> > +    def default(self, o):
> > +        if isinstance(o, status.Status):
> > +            return str(o)
> > +        return json.JSONEncoder.default(self, o)
> > 
> >  class JSONWriter:
> >      '''
> > 
> > @@ -108,7 +113,7 @@ class JSONWriter:
> >          self.file = file
> >          self.__indent_level = 0
> >          self.__inhibit_next_indent = False
> > 
> > -        self.__encoder = json.JSONEncoder(indent=self.INDENT)
> > +        self.__encoder = PiglitJSONEncoder(indent=self.INDENT)
> > 
> >          # self.__is_collection_empty
> >          #
> 
> This looks fine. I had implemented this when I did the status work, but then
> didn't think I needed it. Resume is not a commonly used feature obviously.
> 
> Reviewed-by: Dylan Baker <baker.dyla...@gmail.com>

I went ahead and pushed this

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to