#NEWLINE# def default( self , o ) : #NEWLINE# #INDENT# if isinstance ( o , datetime . datetime ) : #NEWLINE# #INDENT# r = o . isoformat ( ) #NEWLINE# if o . microsecond : #NEWLINE# #INDENT# r = ( r [ : 23 ] + r [ 26 : ] ) #NEWLINE# #UNINDENT# if r . endswith ( '+00:00' ) : #NEWLINE# #INDENT# r = ( r [ : ( - 6 ) ] + 'Z' ) #NEWLINE# #UNINDENT# return r #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if isinstance ( o , datetime . date ) : #NEWLINE# #INDENT# return o . isoformat ( ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if isinstance ( o , datetime . time ) : #NEWLINE# #INDENT# if is_aware ( o ) : #NEWLINE# #INDENT# raise ValueError ( "JSON can't represent timezone-aware times." ) #NEWLINE# #UNINDENT# r = o . isoformat ( ) #NEWLINE# if o . microsecond : #NEWLINE# #INDENT# r = r [ : 12 ] #NEWLINE# #UNINDENT# return r #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if isinstance ( o , decimal . Decimal ) : #NEWLINE# #INDENT# return str ( o ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# return super ( JSONEncoder , self ) . default ( o )