@@ -53,7 +53,7 @@ def _atexit_cleanup_clusters(*args):
53
53
if not cluster .shutdown_atexit :
54
54
# overridden after register
55
55
continue
56
- if cluster ._controller or cluster ._engine_sets :
56
+ if cluster .controller or cluster .engines :
57
57
print (f"Stopping cluster { cluster } " , file = sys .stderr )
58
58
cluster .stop_cluster_sync ()
59
59
@@ -261,8 +261,8 @@ def _default_log(self):
261
261
return traitlets .log .get_logger ()
262
262
263
263
# private state
264
- _controller = Any ()
265
- _engine_sets = Dict ()
264
+ controller = Any ()
265
+ engines = Dict ()
266
266
267
267
def __init__ (self , ** kwargs ):
268
268
"""Construct a Cluster"""
@@ -273,7 +273,7 @@ def __init__(self, **kwargs):
273
273
def __del__ (self ):
274
274
if not self .shutdown_atexit :
275
275
return
276
- if self ._controller or self ._engine_sets :
276
+ if self .controller or self .engines :
277
277
self .stop_cluster_sync ()
278
278
279
279
def __repr__ (self ):
@@ -293,10 +293,10 @@ def __repr__(self):
293
293
profile_dir = "~" + profile_dir [len (home_dir ) :]
294
294
fields ["profile_dir" ] = repr (profile_dir )
295
295
296
- if self ._controller :
296
+ if self .controller :
297
297
fields ["controller" ] = "<running>"
298
- if self ._engine_sets :
299
- fields ["engine_sets" ] = list (self ._engine_sets )
298
+ if self .engines :
299
+ fields ["engine_sets" ] = list (self .engines )
300
300
301
301
fields_str = ', ' .join (f"{ key } ={ value } " for key , value in fields .items ())
302
302
@@ -314,20 +314,20 @@ def _cls_str(cls):
314
314
315
315
cluster_info ["class" ] = _cls_str (self .__class__ )
316
316
317
- if self ._controller :
317
+ if self .controller :
318
318
d ["controller" ] = {
319
319
"class" : _cls_str (self .controller_launcher_class ),
320
320
"state" : None ,
321
321
}
322
- if self ._controller :
323
- d ["controller" ]["state" ] = self ._controller .to_dict ()
322
+ if self .controller :
323
+ d ["controller" ]["state" ] = self .controller .to_dict ()
324
324
325
325
d ["engines" ] = {
326
326
"class" : _cls_str (self .engine_launcher_class ),
327
327
"sets" : {},
328
328
}
329
329
sets = d ["engines" ]["sets" ]
330
- for engine_set_id , engine_launcher in self ._engine_sets .items ():
330
+ for engine_set_id , engine_launcher in self .engines .items ():
331
331
sets [engine_set_id ] = engine_launcher .to_dict ()
332
332
return d
333
333
@@ -356,13 +356,13 @@ def from_dict(cls, d, **kwargs):
356
356
controller_info = d ["controller" ]
357
357
cls = self .controller_launcher_class = import_item (controller_info ["class" ])
358
358
if controller_info ["state" ]:
359
- self ._controller = cls .from_dict (controller_info ["state" ], parent = self )
359
+ self .controller = cls .from_dict (controller_info ["state" ], parent = self )
360
360
361
361
engine_info = d .get ("engines" )
362
362
if engine_info :
363
363
cls = self .engine_launcher_class = import_item (engine_info ["class" ])
364
364
for engine_set_id , engine_state in engine_info .get ("sets" , {}).items ():
365
- self ._engine_sets [engine_set_id ] = cls .from_dict (
365
+ self .engines [engine_set_id ] = cls .from_dict (
366
366
engine_state ,
367
367
engine_set_id = engine_set_id ,
368
368
parent = self ,
@@ -429,7 +429,7 @@ def update_cluster_file(self):
429
429
# setting cluster_file='' disables saving to disk
430
430
return
431
431
432
- if not self ._controller and not self ._engine_sets :
432
+ if not self .controller and not self .engines :
433
433
self .remove_cluster_file ()
434
434
else :
435
435
self .write_cluster_file ()
@@ -442,17 +442,17 @@ async def start_controller(self, **kwargs):
442
442
# start controller
443
443
# retrieve connection info
444
444
# webhook?
445
- if self ._controller is not None :
445
+ if self .controller is not None :
446
446
raise RuntimeError (
447
- "controller is already running. Call stop_controller () first."
447
+ "controller is already running. Call stopcontroller () first."
448
448
)
449
449
450
450
if self .shutdown_atexit :
451
451
_atexit_clusters .add (self )
452
452
if not _atexit_cleanup_clusters .registered :
453
453
atexit .register (_atexit_cleanup_clusters )
454
454
455
- self ._controller = controller = self .controller_launcher_class (
455
+ self .controller = controller = self .controller_launcher_class (
456
456
work_dir = u'.' ,
457
457
parent = self ,
458
458
log = self .log ,
@@ -484,10 +484,10 @@ def add_args(args):
484
484
485
485
if controller_args is not None :
486
486
# ensure we trigger trait observers after we are done
487
- self ._controller .controller_args = list (controller_args )
487
+ self .controller .controller_args = list (controller_args )
488
488
489
- self ._controller .on_stop (self ._controller_stopped )
490
- r = self ._controller .start ()
489
+ self .controller .on_stop (self ._controller_stopped )
490
+ r = self .controller .start ()
491
491
if inspect .isawaitable (r ):
492
492
await r
493
493
@@ -505,7 +505,7 @@ async def start_engines(self, n=None, engine_set_id=None, **kwargs):
505
505
# TODO: send engines connection info
506
506
if engine_set_id is None :
507
507
engine_set_id = f"{ int (time .time ())} -{ '' .join (random .choice (_suffix_chars ) for i in range (4 ))} "
508
- engine_set = self ._engine_sets [engine_set_id ] = self .engine_launcher_class (
508
+ engine_set = self .engines [engine_set_id ] = self .engine_launcher_class (
509
509
work_dir = u'.' ,
510
510
parent = self ,
511
511
log = self .log ,
@@ -548,17 +548,17 @@ async def stop_engines(self, engine_set_id=None):
548
548
all engines are stopped.
549
549
"""
550
550
if engine_set_id is None :
551
- for engine_set_id in list (self ._engine_sets ):
551
+ for engine_set_id in list (self .engines ):
552
552
await self .stop_engines (engine_set_id )
553
553
return
554
554
self .log .info (f"Stopping engine(s): { engine_set_id } " )
555
- engine_set = self ._engine_sets [engine_set_id ]
555
+ engine_set = self .engines [engine_set_id ]
556
556
r = engine_set .stop ()
557
557
if inspect .isawaitable (r ):
558
558
await r
559
559
# retrieve and cleanup output files
560
560
engine_set .get_output (remove = True )
561
- self ._engine_sets .pop (engine_set_id )
561
+ self .engines .pop (engine_set_id )
562
562
self .update_cluster_file ()
563
563
564
564
async def stop_engine (self , engine_id ):
@@ -572,10 +572,10 @@ async def stop_engine(self, engine_id):
572
572
async def restart_engines (self , engine_set_id = None ):
573
573
"""Restart an engine set"""
574
574
if engine_set_id is None :
575
- for engine_set_id in list (self ._engine_sets ):
575
+ for engine_set_id in list (self .engines ):
576
576
await self .restart_engines (engine_set_id )
577
577
return
578
- engine_set = self ._engine_sets [engine_set_id ]
578
+ engine_set = self .engines [engine_set_id ]
579
579
n = engine_set .n
580
580
await self .stop_engines (engine_set_id )
581
581
await self .start_engines (n , engine_set_id )
@@ -602,27 +602,27 @@ async def signal_engines(self, signum, engine_set_id=None):
602
602
If no engine set is specified, signal all engine sets.
603
603
"""
604
604
if engine_set_id is None :
605
- for engine_set_id in list (self ._engine_sets ):
605
+ for engine_set_id in list (self .engines ):
606
606
await self .signal_engines (signum , engine_set_id )
607
607
return
608
608
self .log .info (f"Sending signal { signum } to engine(s) { engine_set_id } " )
609
- engine_set = self ._engine_sets [engine_set_id ]
609
+ engine_set = self .engines [engine_set_id ]
610
610
r = engine_set .signal (signum )
611
611
if inspect .isawaitable (r ):
612
612
await r
613
613
614
614
async def stop_controller (self ):
615
615
"""Stop the controller"""
616
- if self ._controller and self ._controller .running :
616
+ if self .controller and self .controller .running :
617
617
self .log .info ("Stopping controller" )
618
- r = self ._controller .stop ()
618
+ r = self .controller .stop ()
619
619
if inspect .isawaitable (r ):
620
620
await r
621
621
622
- if self ._controller :
623
- self ._controller .get_output (remove = True )
622
+ if self .controller :
623
+ self .controller .get_output (remove = True )
624
624
625
- self ._controller = None
625
+ self .controller = None
626
626
self .update_cluster_file ()
627
627
628
628
async def stop_cluster (self ):
@@ -636,7 +636,7 @@ async def connect_client(self, **client_kwargs):
636
636
# this assumes local files exist
637
637
from ipyparallel import Client
638
638
639
- connection_info = self ._controller .get_connection_info ()
639
+ connection_info = self .controller .get_connection_info ()
640
640
if inspect .isawaitable (connection_info ):
641
641
connection_info = await connection_info
642
642
0 commit comments