From 8eb1caeb7f5281503531fdc13422c0c0ce044f88 Mon Sep 17 00:00:00 2001 From: "Patrick M. Niedzielski" Date: Wed, 5 Nov 2025 14:14:32 -0500 Subject: [PATCH 1/3] Docs: Remove Python 3.7 advertisement This patch removes Python 3.7 from our supported versions list in the README. It also fixes a syntax error in the same list, causing version 3.12 to be rendered as 3.1220. Signed-off-by: Patrick M. Niedzielski --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 58bd12e..b006249 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ [![MessageQueue](https://img.shields.io/badge/MessageQueue-blue)](#) [![Documentation](https://img.shields.io/badge/Documentation-blue)](https://bloomberg.github.io/blazingmq) [![Code Style](https://img.shields.io/badge/Black-black)](#) -![Supported Python versions](https://img.shields.io/badge/python-3.7%20%7C%203.8%20%7C%203.9%20%7C%203.10%20%7C%203.11%20%7C%203.1220%7C%203.13-blue?logo=python) +![Supported Python versions](https://img.shields.io/badge/python-3.8%20%7C%203.9%20%7C%203.10%20%7C%203.11%20%7C%203.12%20%7C%203.13-blue?logo=python) # BlazingMQ Python SDK From 7dd7769e248e1f899a5bd0c076f4a94a619b8514 Mon Sep 17 00:00:00 2001 From: "Patrick M. Niedzielski" Date: Wed, 5 Nov 2025 14:17:52 -0500 Subject: [PATCH 2/3] Feat: Add support for Python 3.14 Signed-off-by: Patrick M. Niedzielski --- .github/workflows/build.yaml | 1 + README.md | 2 +- news/60.misc.rst | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 news/60.misc.rst diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 853d956..2f4e6eb 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -92,6 +92,7 @@ jobs: - "3.11" - "3.12" - "3.13" + - "3.14" steps: - uses: actions/checkout@v4 - name: Try to get cached BlazingMQ build artifacts diff --git a/README.md b/README.md index b006249..adb1934 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ [![MessageQueue](https://img.shields.io/badge/MessageQueue-blue)](#) [![Documentation](https://img.shields.io/badge/Documentation-blue)](https://bloomberg.github.io/blazingmq) [![Code Style](https://img.shields.io/badge/Black-black)](#) -![Supported Python versions](https://img.shields.io/badge/python-3.8%20%7C%203.9%20%7C%203.10%20%7C%203.11%20%7C%203.12%20%7C%203.13-blue?logo=python) +![Supported Python versions](https://img.shields.io/badge/python-3.8%20%7C%203.9%20%7C%203.10%20%7C%203.11%20%7C%203.12%20%7C%203.13%20%7C%203.14-blue?logo=python) # BlazingMQ Python SDK diff --git a/news/60.misc.rst b/news/60.misc.rst new file mode 100644 index 0000000..8955da4 --- /dev/null +++ b/news/60.misc.rst @@ -0,0 +1 @@ +Support Python 3.14 From 696e680780810f1b46b54b120aa4e9b21fbc7349 Mon Sep 17 00:00:00 2001 From: "Patrick M. Niedzielski" Date: Tue, 13 Jan 2026 13:56:46 -0500 Subject: [PATCH 3/3] wip! Trying to figure out what ref count of ext_session is --- src/blazingmq/_callbacks.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/blazingmq/_callbacks.py b/src/blazingmq/_callbacks.py index 9b39c82..80b1e98 100644 --- a/src/blazingmq/_callbacks.py +++ b/src/blazingmq/_callbacks.py @@ -123,12 +123,14 @@ def on_message( user_callback(message, message_handle) del message_handle # The message handle holds a reference to the extension session. - if sys.getrefcount(ext_session) == 2: # covered in a subprocess # pragma: no cover + ext_session_ref_count = sys.getrefcount(ext_session) + if ext_session_ref_count == 2: # covered in a subprocess # pragma: no cover # Dropping our reference to the extension session will drop its reference count # to 0, calling __dealloc__ and stop() from its own background thread. print( - "Deadlock detected by blazingmq after calling %s; aborting process." - % user_callback, + f"Deadlock detected by blazingmq after calling { user_callback }" + + f"(ext_session ref count is { ext_session_ref_count }); " + + f"aborting process.", file=sys.stderr, ) try: