1*4882a593SmuzhiyunFrom 9b939c0b534c1b7958fa0a3c7aedf30bca910431 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
3*4882a593SmuzhiyunDate: Mon, 7 Jun 2021 23:23:47 +0200
4*4882a593SmuzhiyunSubject: [PATCH] Python 3.10+ fix: Use collections.abc.Callable instead of
5*4882a593Smuzhiyun collections.Callable
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunThe deprecated aliases to Collections Abstract Base Classes were removed from
8*4882a593Smuzhiyunthe collections module in Python 3.10.
9*4882a593Smuzhiyunhttps://docs.python.org/3.10/whatsnew/changelog.html#python-3-10-0-alpha-5
10*4882a593Smuzhiyunhttps://bugs.python.org/issue37324
11*4882a593Smuzhiyun---
12*4882a593Smuzhiyun slip/dbus/polkit.py   | 6 +++---
13*4882a593Smuzhiyun slip/util/hookable.py | 6 +++---
14*4882a593Smuzhiyun 2 files changed, 6 insertions(+), 6 deletions(-)
15*4882a593Smuzhiyun
16*4882a593Smuzhiyundiff --git a/slip/dbus/polkit.py b/slip/dbus/polkit.py
17*4882a593Smuzhiyunindex 128e8ce..320676d 100644
18*4882a593Smuzhiyun--- a/slip/dbus/polkit.py
19*4882a593Smuzhiyun+++ b/slip/dbus/polkit.py
20*4882a593Smuzhiyun@@ -26,7 +26,7 @@
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun from __future__ import absolute_import
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun-import collections
25*4882a593Smuzhiyun+import collections.abc
26*4882a593Smuzhiyun import dbus
27*4882a593Smuzhiyun from decorator import decorator
28*4882a593Smuzhiyun from functools import reduce
29*4882a593Smuzhiyun@@ -103,14 +103,14 @@ class MyProxy(object):
30*4882a593Smuzhiyun             def some_method(self, ...):
31*4882a593Smuzhiyun                 ..."""
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun-    assert(func is None or isinstance(func, collections.Callable))
34*4882a593Smuzhiyun+    assert(func is None or isinstance(func, collections.abc.Callable))
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun     assert(
37*4882a593Smuzhiyun         authfail_result in (None, AUTHFAIL_DONTCATCH) or
38*4882a593Smuzhiyun         authfail_exception is None)
39*4882a593Smuzhiyun     assert(
40*4882a593Smuzhiyun         authfail_callback is None or
41*4882a593Smuzhiyun-        isinstance(authfail_callback, collections.Callable))
42*4882a593Smuzhiyun+        isinstance(authfail_callback, collections.abc.Callable))
43*4882a593Smuzhiyun     assert(
44*4882a593Smuzhiyun         authfail_exception is None or
45*4882a593Smuzhiyun         issubclass(authfail_exception, Exception))
46*4882a593Smuzhiyundiff --git a/slip/util/hookable.py b/slip/util/hookable.py
47*4882a593Smuzhiyunindex 89c7392..0cd9967 100644
48*4882a593Smuzhiyun--- a/slip/util/hookable.py
49*4882a593Smuzhiyun+++ b/slip/util/hookable.py
50*4882a593Smuzhiyun@@ -23,7 +23,7 @@
51*4882a593Smuzhiyun """This module contains variants of certain base types which call registered
52*4882a593Smuzhiyun hooks on changes."""
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun-import collections
55*4882a593Smuzhiyun+import collections.abc
56*4882a593Smuzhiyun from six import with_metaclass
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun __all__ = ["Hookable", "HookableSet"]
59*4882a593Smuzhiyun@@ -67,7 +67,7 @@ class _HookEntry(object):
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun     def __init__(self, hook, args, kwargs, hookable=None):
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun-        assert(isinstance(hook, collections.Callable))
64*4882a593Smuzhiyun+        assert(isinstance(hook, collections.abc.Callable))
65*4882a593Smuzhiyun         assert(isinstance(hookable, Hookable))
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun         for n, x in enumerate(args):
68*4882a593Smuzhiyun@@ -174,7 +174,7 @@ def add_hook_hookable(self, hook, *args, **kwargs):
69*4882a593Smuzhiyun         self.__add_hook(hook, self, *args, **kwargs)
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun     def __add_hook(self, hook, _hookable, *args, **kwargs):
72*4882a593Smuzhiyun-        assert isinstance(hook, collections.Callable)
73*4882a593Smuzhiyun+        assert isinstance(hook, collections.abc.Callable)
74*4882a593Smuzhiyun         assert isinstance(_hookable, Hookable)
75*4882a593Smuzhiyun         hookentry = _HookEntry(hook, args, kwargs, hookable=_hookable)
76*4882a593Smuzhiyun         self.__hooks__.add(hookentry)
77