alot/0001-Python-3.14-fixes.patch
2025-05-29 15:21:12 +02:00

93 lines
2.8 KiB
Diff

From b8d08a8a980693233db124a17db33a500addf428 Mon Sep 17 00:00:00 2001
From: Dick Marinus <dick@mrns.nl>
Date: Thu, 29 May 2025 08:11:49 +0200
Subject: [PATCH] Python 3.14 fixes
---
.github/workflows/test.yml | 2 +-
alot/__main__.py | 6 ++++--
alot/ui.py | 3 +--
tests/utilities.py | 3 +--
4 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 56345807..b899108f 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -11,7 +11,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
+ python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.14.0-beta.2"]
steps:
- uses: actions/checkout@v4
diff --git a/alot/__main__.py b/alot/__main__.py
index 21f85be5..aa5904a8 100644
--- a/alot/__main__.py
+++ b/alot/__main__.py
@@ -6,6 +6,7 @@ import locale
import logging
import os
import sys
+import asyncio
import alot
from alot.settings.const import settings
@@ -18,7 +19,8 @@ from alot.commands import CommandParseError, COMMANDS
from alot.utils import argparse as cargparse
from twisted.internet import asyncioreactor
-asyncioreactor.install()
+EVENT_LOOP = asyncio.new_event_loop()
+asyncioreactor.install(EVENT_LOOP)
_SUBCOMMANDS = ['search', 'compose', 'bufferlist', 'taglist', 'namedqueries',
@@ -137,7 +139,7 @@ def main():
cmdstring = ' '.join(options.command)
# set up and start interface
- UI(dbman, cmdstring)
+ UI(dbman, cmdstring, EVENT_LOOP)
# run the exit hook
exit_hook = settings.get_hook('exit')
diff --git a/alot/ui.py b/alot/ui.py
index edc01010..4c44809a 100644
--- a/alot/ui.py
+++ b/alot/ui.py
@@ -44,7 +44,7 @@ class UI:
responsible for opening, closing and focussing buffers.
"""
- def __init__(self, dbman, initialcmdline):
+ def __init__(self, dbman, initialcmdline, loop):
"""
:param dbman: :class:`~alot.db.DBManager`
:param initialcmdline: commandline applied after setting up interface
@@ -121,7 +121,6 @@ class UI:
unhandled_input=self._unhandled_input,
input_filter=self._input_filter)
- loop = asyncio.get_event_loop()
# Create a task for the periodic hook
loop_hook = settings.get_hook('loop_hook')
if loop_hook:
diff --git a/tests/utilities.py b/tests/utilities.py
index 671fe574..809951f6 100644
--- a/tests/utilities.py
+++ b/tests/utilities.py
@@ -185,7 +185,6 @@ def async_test(coro):
@functools.wraps(coro)
def _actual(*args, **kwargs):
- loop = asyncio.get_event_loop()
- return loop.run_until_complete(coro(*args, **kwargs))
+ asyncio.run(coro(*args, **kwargs))
return _actual
--
2.49.0