11# -*- coding: utf-8 -*-
22from collections .abc import Mapping
33from datetime import datetime
4+ import logging
45
56from flask import url_for
67from marshmallow import Schema , pre_dump , pre_load , validate
@@ -74,9 +75,10 @@ class LogRecordSchema(Schema):
7475
7576 @pre_dump
7677 def preprocess (self , data , ** kwargs ):
77- data .message = data .getMessage ()
78- if not isinstance (data .created , datetime ):
79- data .created = datetime .fromtimestamp (data .created )
78+ if isinstance (data , logging .LogRecord ):
79+ data .message = data .getMessage ()
80+ if not isinstance (data .created , datetime ):
81+ data .created = datetime .fromtimestamp (data .created )
8082 return data
8183
8284
@@ -93,6 +95,9 @@ class ActionSchema(Schema):
9395 _request_time = fields .DateTime (data_key = "timeRequested" )
9496 _end_time = fields .DateTime (data_key = "timeCompleted" )
9597 log = fields .List (fields .Nested (LogRecordSchema ()))
98+
99+ input = fields .Raw ()
100+ output = fields .Raw ()
96101
97102 href = fields .String ()
98103 links = fields .Dict ()
@@ -202,9 +207,10 @@ def generate_links(self, data, **kwargs):
202207 ]
203208 except BuildError :
204209 urls = []
205- # TODO: Tidy up this nasty jazz
210+ # If URL list is empty
206211 if len (urls ) == 0 :
207212 urls = None
213+ # If only 1 URL is given
208214 elif len (urls ) == 1 :
209215 urls = urls [0 ]
210216 # Make links dictionary if it doesn't yet exist
0 commit comments