@@ -47,15 +47,50 @@ class TestModel(base.BaseModel):
47
47
),
48
48
}
49
49
50
+ _logo = (
51
+ b"\x89 PNG\r \n \x1a \n \x00 \x00 \x00 \r IHDR\x00 \x00 \x00 \x1e \x00 \x00 \x00 "
52
+ b"\r \x08 \x04 \x00 \x00 \x00 \x14 {\x16 \x1c \x00 \x00 \x02 \x13 IDAT(\xcf \x8d "
53
+ b"\xd2 ?h\x94 w\x00 \xc6 \xf1 \xcf \xef \xbd \xfc 9\xe3 \x19 \xac b\x8c \xa2 C"
54
+ b"\x13 -\x81 \xe8 (\x11 \xa4 \x83 1 \xb4 v\xb0 B\xc0 B\xa5 \x10 \x1c \x1c \xc4 "
55
+ b"\xd2 RQ\x14 T\xec RE\xcd \xd0 \x16 \x11 $\x8a \x82 E\xba (\xdd l\xc1 :J\xa8 CC"
56
+ b"\xd2 \x98 \xd8 \xd2 \x10 EI\xcc \xdd \xe9 \xdd \xbd w^\xee =\x07 \x15 \x17 "
57
+ b"\x07 \xbf \xd3 3<\xdf \xe1 \x81 \x87 \xb7 l\x95 \xd5 \xf6 *\xb6 \t \xcd \xb6 "
58
+ b"\x19 \xb0 !\x8a \xbc \x17 [\xe5 \xde \xc8 \x9a ]7\xaf \xa8 l\x7f \xca \xb7 "
59
+ b"\xf6 \xbd Sh\xa0 \xd7 \x9d 0\x9f \x8e *\t X,\xb7 F\x8f 5v\xfa \xda M\x07 u"
60
+ b"\xd5 >>\xb3 E\xc5 \xad \xcc \xc8 G\x9e z\x18 \xe6 ;\xb4 \x9b \xec x\xf2 \x1f !"
61
+ b"\xd2 o\xd8 \xac \x11 Cr\xda }\xe3 \xb9 X\xcd s+\xd3 B\xb3 S\xca \xe6 <S"
62
+ b"\xf4 \x9d \xd5 \xae \xb9 \xa9 $\x96 u44\xb2 [\xc9 y\xfd N+\xc9 \xfb B\xc5 e;"
63
+ b"\xcc \xb9 gQ\x94 \xf2 \xbd \xaa \x1f ,u\\ \xa2 l@\xc5 #\xbb u;\xac h/\xe3 ~"
64
+ b"\n Q\x9f \xa6 \xe0 \xa8 \xbc ?<\xd0 m\xd4 \x84 \xce \x86 \xe0 \x88 \x17 NE\x8d "
65
+ b"\xbe Rv\xd1 S\xbf \x89 \xf5 \x0f \n \xce \x19 \xa7 f\xd7 \xeb \xfd \xbd \xf2 "
66
+ b"\xc6 \x0c \x1b 6e}\x14 9\xa0 \xe2 \xe7 \xd0 d\x97 \x82 +ZM\xb9 \xad h\xed "
67
+ b"\xeb \xf6 \xe7 \xaa L\x1a \x8c \xa2 Ni\x0e \xc9 \xb9 \xa2 n\xc6 \xa6 \x86 `@"
68
+ b"\xc5 \xa5 \xd0 \xa4 O\xde \x8d \xd0 \xa2 \xcf \x0b g\xc5 \xb6 \x7f \x82 4\xc7 L"
69
+ b"\xb1 G\xd1 \xa0 \xcf \x9c T\x90 \xb7 \xd1 \xbf \xb2 \x86 \xfc \xa2 \xec \xba "
70
+ b"\x16 \xc1 \xaf \x12 W\r \x9a uO\x8f \x8a 1=\x96 \xe8 \x97 uXH\xf9 \xd2 \xdf r"
71
+ b"\xee \xbb \xe0 \xae \xa5 :\x9c 7f\xd4 \t \x0b \xdb \xf4 \xb2 \xdc \x8f \xfe 7m"
72
+ b"\xc8 j]b\xa3 b9%\x17 \xb5 \x04 \xed \x92 \xf0 \xac \xbe B!\xca '\x8b \xc5 "
73
+ b"\xd2 \x16 \xc9 \x84 I\xea \x0b \x94 \xb4 j\x93 \x0b 9\xd5 \xa8 Z\xcb X\xe7 "
74
+ b"\x96 MVXe$\xf5 W\x92 4\xd8 \xac \xb5 \xfe \xd0 2IRU\x90 1%\xa3 P\xef \xf5 "
75
+ b"\x81 '>4\x1b \xdd H>\xad 7*\xd7 \xb2 V\n \xa8 \xf8 \x1d jH)z\xa0 \xd3 0\xfe 1#"
76
+ b"\x98 V\xd5 d\xce \x8c \xa2 \x92 \x89 \xfa *\xd3 xl^lZ\xde \x9f \xe2 7\xf7 |"
77
+ b"\t z\x97 \xc9 ?\xa6 \x13 [\xb9 \x00 \x00 \x00 \x00 IEND\xae B`\x82 "
78
+ )
79
+
50
80
def warm (self ):
51
81
LOG .debug ("Test model is warming..." )
52
82
53
83
def predict (self , ** kwargs ):
54
84
LOG .debug ("Got the following kw arguments: %s" , kwargs )
55
- return {
85
+ d = {
56
86
"date" : "2019-01-1" ,
57
87
"labels" : [{"label" : "foo" , "probability" : 1.0 }]
58
88
}
89
+ if kwargs .get ("accept" ) == "text/plain" :
90
+ return str (d )
91
+ elif kwargs .get ("accept" ) == "image/png" :
92
+ return self ._logo
93
+ return d
59
94
60
95
def train (self , * args , ** kwargs ):
61
96
sleep = kwargs .get ("sleep" , 1 )
@@ -81,6 +116,12 @@ def get_predict_args(self):
81
116
"be one of the choices declared in 'enum'" ),
82
117
enum = ["foo" , "bar" ],
83
118
validate = validate .OneOf (["foo" , "bar" ]),
119
+ ),
120
+ "accept" : fields .Str (
121
+ description = ("Media type(s) that is/are acceptable for the "
122
+ "response." ),
123
+ validate = validate .OneOf (["text/plain" , "image/png" ]),
124
+ location = "headers" ,
84
125
)
85
126
}
86
127
0 commit comments