From a442ae59796604b7c591d7eaf7d22ff0daf7aaad Mon Sep 17 00:00:00 2001 From: Yaniv Michael Kaul Date: Fri, 3 Apr 2026 17:38:51 +0300 Subject: [PATCH] perf: replace functools.partial with closure in _query callback Signed-off-by: Yaniv Michael Kaul --- cassandra/cluster.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cassandra/cluster.py b/cassandra/cluster.py index 88c8d2707a..56b0d3b603 100644 --- a/cassandra/cluster.py +++ b/cassandra/cluster.py @@ -5040,7 +5040,11 @@ def _query(self, host, message=None, cb=None): result_meta = self._bound_result_metadata if cb is None: - cb = partial(self._set_result, host, connection, pool) + _set_result = self._set_result + + # default-arg capture avoids late-binding of host/connection/pool in the closure + def cb(response, _h=host, _c=connection, _p=pool, _sr=_set_result): + _sr(_h, _c, _p, response) self.request_encoded_size = connection.send_msg(message, request_id, cb=cb, encoder=self._protocol_handler.encode_message,