From 478d595a7d086423733e9f5da5edfe9f1df48682 Mon Sep 17 00:00:00 2001
From: Troy Curtis Jr <troy@troycurtisjr.com>
Date: Thu, 10 Aug 2023 21:51:15 -0400
Subject: [PATCH] Make asyncore support optional for Python 3.

Fixes #204.

Upstream-Status: Submitted [https://github.com/seb-m/pyinotify/pull/205]

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>

---
 python3/pyinotify.py | 50 +++++++++++++++++++++++++-------------------
 1 file changed, 28 insertions(+), 22 deletions(-)

diff --git a/python3/pyinotify.py b/python3/pyinotify.py
index bc24313..f4a5a90 100755
--- a/python3/pyinotify.py
+++ b/python3/pyinotify.py
@@ -68,7 +68,6 @@ from collections import deque
 from datetime import datetime, timedelta
 import time
 import re
-import asyncore
 import glob
 import locale
 import subprocess
@@ -1494,33 +1493,40 @@ class ThreadedNotifier(threading.Thread, Notifier):
         self.loop()
 
 
-class AsyncNotifier(asyncore.file_dispatcher, Notifier):
-    """
-    This notifier inherits from asyncore.file_dispatcher in order to be able to
-    use pyinotify along with the asyncore framework.
+try:
+    import asyncore
 
-    """
-    def __init__(self, watch_manager, default_proc_fun=None, read_freq=0,
-                 threshold=0, timeout=None, channel_map=None):
+    class AsyncNotifier(asyncore.file_dispatcher, Notifier):
         """
-        Initializes the async notifier. The only additional parameter is
-        'channel_map' which is the optional asyncore private map. See
-        Notifier class for the meaning of the others parameters.
+        This notifier inherits from asyncore.file_dispatcher in order to be able to
+        use pyinotify along with the asyncore framework.
 
         """
-        Notifier.__init__(self, watch_manager, default_proc_fun, read_freq,
-                          threshold, timeout)
-        asyncore.file_dispatcher.__init__(self, self._fd, channel_map)
+        def __init__(self, watch_manager, default_proc_fun=None, read_freq=0,
+                     threshold=0, timeout=None, channel_map=None):
+            """
+            Initializes the async notifier. The only additional parameter is
+            'channel_map' which is the optional asyncore private map. See
+            Notifier class for the meaning of the others parameters.
 
-    def handle_read(self):
-        """
-        When asyncore tells us we can read from the fd, we proceed processing
-        events. This method can be overridden for handling a notification
-        differently.
+            """
+            Notifier.__init__(self, watch_manager, default_proc_fun, read_freq,
+                              threshold, timeout)
+            asyncore.file_dispatcher.__init__(self, self._fd, channel_map)
 
-        """
-        self.read_events()
-        self.process_events()
+        def handle_read(self):
+            """
+            When asyncore tells us we can read from the fd, we proceed processing
+            events. This method can be overridden for handling a notification
+            differently.
+
+            """
+            self.read_events()
+            self.process_events()
+except ImportError:
+    # asyncore was removed in Python 3.12, but try the import instead of a
+    # version check in case the compatibility package is installed.
+    pass
 
 
 class TornadoAsyncNotifier(Notifier):
-- 
2.25.1

