44should live in the catalog service in his final version
55
66"""
7+ import asyncio
78import logging
89import urllib .parse
910from typing import Any , Final
@@ -76,7 +77,9 @@ async def list_services(request: Request):
7677 # assert parse_obj_as(list[ServiceGet], data_array) is not None # nosec
7778 #
7879
79- return envelope_json_response (data_array )
80+ return await asyncio .get_event_loop ().run_in_executor (
81+ None , envelope_json_response , data_array
82+ )
8083
8184
8285@routes .get (
@@ -92,7 +95,9 @@ async def get_service(request: Request):
9295 path_params .service_key , path_params .service_version , ctx
9396 )
9497 assert parse_obj_as (ServiceGet , data ) is not None # nosec
95- return envelope_json_response (data )
98+ return await asyncio .get_event_loop ().run_in_executor (
99+ None , envelope_json_response , data
100+ )
96101
97102
98103@routes .patch (
@@ -117,7 +122,9 @@ async def update_service(request: Request):
117122 )
118123
119124 assert parse_obj_as (ServiceGet , data ) is not None # nosec
120- return envelope_json_response (data )
125+ return await asyncio .get_event_loop ().run_in_executor (
126+ None , envelope_json_response , data
127+ )
121128
122129
123130@routes .get (
@@ -136,7 +143,9 @@ async def list_service_inputs(request: Request):
136143 )
137144
138145 data = [m .dict (** RESPONSE_MODEL_POLICY ) for m in response_model ]
139- return envelope_json_response (data )
146+ return await asyncio .get_event_loop ().run_in_executor (
147+ None , envelope_json_response , data
148+ )
140149
141150
142151class _ServiceInputsPathParams (ServicePathParams ):
@@ -162,7 +171,9 @@ async def get_service_input(request: Request):
162171 )
163172
164173 data = response_model .dict (** RESPONSE_MODEL_POLICY )
165- return envelope_json_response (data )
174+ return await asyncio .get_event_loop ().run_in_executor (
175+ None , envelope_json_response , data
176+ )
166177
167178
168179class _FromServiceOutputParams (BaseModel ):
@@ -192,7 +203,9 @@ async def get_compatible_inputs_given_source_output(request: Request):
192203 ctx ,
193204 )
194205
195- return envelope_json_response (data )
206+ return await asyncio .get_event_loop ().run_in_executor (
207+ None , envelope_json_response , data
208+ )
196209
197210
198211@routes .get (
@@ -211,7 +224,9 @@ async def list_service_outputs(request: Request):
211224 )
212225
213226 data = [m .dict (** RESPONSE_MODEL_POLICY ) for m in response_model ]
214- return envelope_json_response (data )
227+ return await asyncio .get_event_loop ().run_in_executor (
228+ None , envelope_json_response , data
229+ )
215230
216231
217232class _ServiceOutputsPathParams (ServicePathParams ):
@@ -237,7 +252,9 @@ async def get_service_output(request: Request):
237252 )
238253
239254 data = response_model .dict (** RESPONSE_MODEL_POLICY )
240- return envelope_json_response (data )
255+ return await asyncio .get_event_loop ().run_in_executor (
256+ None , envelope_json_response , data
257+ )
241258
242259
243260class _ToServiceInputsParams (BaseModel ):
@@ -271,7 +288,9 @@ async def get_compatible_outputs_given_target_input(request: Request):
271288 ctx ,
272289 )
273290
274- return envelope_json_response (data )
291+ return await asyncio .get_event_loop ().run_in_executor (
292+ None , envelope_json_response , data
293+ )
275294
276295
277296@routes .get (
@@ -296,4 +315,6 @@ async def get_service_resources(request: Request):
296315 )
297316
298317 data = ServiceResourcesDictHelpers .create_jsonable (service_resources )
299- return envelope_json_response (data )
318+ return await asyncio .get_event_loop ().run_in_executor (
319+ None , envelope_json_response , data
320+ )
0 commit comments