1
1
"""Python Level API to launch Docker Containers using Hagrid"""
2
+
2
3
# future
3
4
from __future__ import annotations
4
5
@@ -255,38 +256,34 @@ def deploy_to_python(
255
256
print ("Staging Protocol Changes..." )
256
257
stage_protocol_changes ()
257
258
259
+ kwargs = {
260
+ "name" : name ,
261
+ "host" : host ,
262
+ "port" : port ,
263
+ "reset" : reset ,
264
+ "processes" : processes ,
265
+ "dev_mode" : dev_mode ,
266
+ "tail" : tail ,
267
+ "node_type" : node_type_enum ,
268
+ "node_side_type" : node_side_type ,
269
+ "enable_warnings" : enable_warnings ,
270
+ # new kwargs
271
+ "queue_port" : queue_port ,
272
+ "n_consumers" : n_consumers ,
273
+ "create_producer" : create_producer ,
274
+ }
275
+
258
276
if port :
277
+ kwargs ["in_memory_workers" ] = True
259
278
if port == "auto" :
260
279
# dont use default port to prevent port clashes in CI
261
280
port = find_available_port (host = "localhost" , port = None , search = True )
281
+ kwargs ["port" ] = port
282
+
262
283
sig = inspect .signature (sy .serve_node )
263
- if "node_type" in sig .parameters .keys ():
264
- start , stop = sy .serve_node (
265
- name = name ,
266
- host = host ,
267
- port = port ,
268
- reset = reset ,
269
- processes = processes ,
270
- queue_port = queue_port ,
271
- n_consumers = n_consumers ,
272
- create_producer = create_producer ,
273
- dev_mode = dev_mode ,
274
- tail = tail ,
275
- node_type = node_type_enum ,
276
- node_side_type = node_side_type ,
277
- enable_warnings = enable_warnings ,
278
- in_memory_workers = True , # Only in-memory workers supported for python mode
279
- )
280
- else :
281
- # syft <= 0.8.1
282
- start , stop = sy .serve_node (
283
- name = name ,
284
- host = host ,
285
- port = port ,
286
- reset = reset ,
287
- dev_mode = dev_mode ,
288
- tail = tail ,
289
- )
284
+ supported_kwargs = {k : v for k , v in kwargs .items () if k in sig .parameters }
285
+
286
+ start , stop = sy .serve_node (** supported_kwargs )
290
287
start ()
291
288
return NodeHandle (
292
289
node_type = node_type_enum ,
@@ -298,33 +295,15 @@ def deploy_to_python(
298
295
node_side_type = node_side_type ,
299
296
)
300
297
else :
298
+ kwargs ["local_db" ] = local_db
299
+ kwargs ["thread_workers" ] = thread_workers
301
300
if node_type_enum in worker_classes :
302
301
worker_class = worker_classes [node_type_enum ]
303
302
sig = inspect .signature (worker_class .named )
303
+ supported_kwargs = {k : v for k , v in kwargs .items () if k in sig .parameters }
304
304
if "node_type" in sig .parameters .keys ():
305
- worker = worker_class .named (
306
- dev_mode = dev_mode ,
307
- name = name ,
308
- processes = processes ,
309
- reset = reset ,
310
- local_db = local_db ,
311
- node_type = node_type_enum ,
312
- node_side_type = node_side_type ,
313
- enable_warnings = enable_warnings ,
314
- n_consumers = n_consumers ,
315
- thread_workers = thread_workers ,
316
- create_producer = create_producer ,
317
- queue_port = queue_port ,
318
- migrate = True ,
319
- )
320
- else :
321
- # syft <= 0.8.1
322
- worker = worker_class .named (
323
- name = name ,
324
- processes = processes ,
325
- reset = reset ,
326
- local_db = local_db ,
327
- )
305
+ supported_kwargs ["migrate" ] = True
306
+ worker = worker_class .named (** supported_kwargs )
328
307
else :
329
308
raise NotImplementedError (f"node_type: { node_type_enum } is not supported" )
330
309
0 commit comments