Skip to content

Commit eedbd4b

Browse files
authored
Use name argument with Scheduler.remove_plugin calls (#5260)
1 parent 332f785 commit eedbd4b

File tree

8 files changed

+22
-13
lines changed

8 files changed

+22
-13
lines changed

distributed/dashboard/components/scheduler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2113,7 +2113,7 @@ def patch_updates(self):
21132113
self.edge_source.patch({"visible": updates})
21142114

21152115
def __del__(self):
2116-
self.scheduler.remove_plugin(self.layout)
2116+
self.scheduler.remove_plugin(name=self.layout.name)
21172117

21182118

21192119
class TaskGroupGraph(DashboardComponent):

distributed/diagnostics/eventstream.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def swap_buffer(scheduler, es):
2929

3030

3131
def teardown(scheduler, es):
32-
scheduler.remove_plugin(es)
32+
scheduler.remove_plugin(name=es.name)
3333

3434

3535
async def eventstream(address, interval):

distributed/diagnostics/progress.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,8 @@ def format_time(t):
240240
class AllProgress(SchedulerPlugin):
241241
"""Keep track of all keys, grouped by key_split"""
242242

243+
name = "all-progress"
244+
243245
def __init__(self, scheduler):
244246
self.all = defaultdict(set)
245247
self.nbytes = defaultdict(lambda: 0)

distributed/diagnostics/progress_stream.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import logging
2+
from functools import partial
23

34
from tlz import merge, valmap
45

@@ -21,10 +22,10 @@ def counts(scheduler, allprogress):
2122
)
2223

2324

24-
def remove_plugin(*args, **kwargs):
25+
def remove_plugin(**kwargs):
2526
# Wrapper function around `Scheduler.remove_plugin` to avoid raising a
2627
# `PicklingError` when using a cythonized scheduler
27-
return Scheduler.remove_plugin(*args, **kwargs)
28+
return Scheduler.remove_plugin(**kwargs)
2829

2930

3031
async def progress_stream(address, interval):
@@ -53,7 +54,7 @@ async def progress_stream(address, interval):
5354
"setup": dumps_function(AllProgress),
5455
"function": dumps_function(counts),
5556
"interval": interval,
56-
"teardown": dumps_function(remove_plugin),
57+
"teardown": dumps_function(partial(remove_plugin, name=AllProgress.name)),
5758
}
5859
)
5960
return comm

distributed/diagnostics/tests/test_scheduler_plugin.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def remove_worker(self, worker, scheduler):
6767
]
6868

6969
events[:] = []
70-
s.remove_plugin(plugin)
70+
s.remove_plugin(name=plugin.name)
7171
a = await Worker(s.address)
7272
await a.close()
7373
assert events == []
@@ -104,7 +104,7 @@ async def remove_worker(self, worker, scheduler):
104104
}
105105

106106
events[:] = []
107-
s.remove_plugin(plugin)
107+
s.remove_plugin(name=plugin.name)
108108
async with Worker(s.address):
109109
pass
110110
assert events == []
@@ -116,8 +116,9 @@ async def start(self, scheduler):
116116
plugin = UnnamedPlugin()
117117
s.add_plugin(plugin)
118118
s.add_plugin(plugin, name="another")
119-
with pytest.raises(ValueError) as excinfo:
120-
s.remove_plugin(plugin)
119+
with pytest.warns(FutureWarning, match="Removing scheduler plugins by value"):
120+
with pytest.raises(ValueError) as excinfo:
121+
s.remove_plugin(plugin)
121122

122123
msg = str(excinfo.value)
123124
assert "Multiple instances of" in msg

distributed/diagnostics/websocket.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44

55

66
class WebsocketPlugin(SchedulerPlugin):
7+
8+
name = "websocket"
9+
710
def __init__(self, socket, scheduler):
811
self.socket = socket
912
self.scheduler = scheduler

distributed/http/scheduler/info.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ def on_message(self, message):
204204
self.send("pong", {"timestamp": str(datetime.now())})
205205

206206
def on_close(self):
207-
self.server.remove_plugin(self.plugin)
207+
self.server.remove_plugin(name=self.plugin.name)
208208

209209

210210
routes = [

distributed/scheduler.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7037,7 +7037,7 @@ def stop_task_metadata(self, comm=None, name=None):
70377037
)
70387038

70397039
plugin = plugins[0]
7040-
self.remove_plugin(plugin)
7040+
self.remove_plugin(name=plugin.name)
70417041
return {"metadata": plugin.metadata, "state": plugin.state}
70427042

70437043
async def register_worker_plugin(self, comm, plugin, name=None):
@@ -8150,6 +8150,8 @@ class WorkerStatusPlugin(SchedulerPlugin):
81508150
scheduler.
81518151
"""
81528152

8153+
name = "worker-status"
8154+
81538155
def __init__(self, scheduler, comm):
81548156
self.bcomm = BatchedSend(interval="5ms")
81558157
self.bcomm.start(comm)
@@ -8164,13 +8166,13 @@ def add_worker(self, worker=None, **kwargs):
81648166
try:
81658167
self.bcomm.send(["add", {"workers": {worker: ident}}])
81668168
except CommClosedError:
8167-
self.scheduler.remove_plugin(self)
8169+
self.scheduler.remove_plugin(name=self.name)
81688170

81698171
def remove_worker(self, worker=None, **kwargs):
81708172
try:
81718173
self.bcomm.send(["remove", worker])
81728174
except CommClosedError:
8173-
self.scheduler.remove_plugin(self)
8175+
self.scheduler.remove_plugin(name=self.name)
81748176

81758177
def teardown(self):
81768178
self.bcomm.close()

0 commit comments

Comments
 (0)