- changed status to resolved
module 'collections' has no attribute 'Callable'
Issue #11
resolved
It seem there were some changes in the Python stdlib.
-=>> vmm ld
Traceback (most recent call last):
File "/usr/lib/python-exec/python3.10/vmm", line 18, in <module>
sys.exit(run(sys.argv))
File "/usr/lib/python3.10/site-packages/VirtualMailManager/cli/main.py", line 43, in run
handler = _get_handler()
File "/usr/lib/python3.10/site-packages/VirtualMailManager/cli/main.py", line 27, in _get_handler
handler = CliHandler()
File "/usr/lib/python3.10/site-packages/VirtualMailManager/cli/handler.py", line 44, in __init__
super(CliHandler, self).__init__(skip_some_checks)
File "/usr/lib/python3.10/site-packages/VirtualMailManager/handler.py", line 89, in __init__
self._cfg = Cfg(self._cfg_fname)
File "/usr/lib/python3.10/site-packages/VirtualMailManager/config.py", line 292, in __init__
LazyConfig.__init__(self)
File "/usr/lib/python3.10/site-packages/VirtualMailManager/config.py", line 73, in __init__
'optionname': LazyConfigOption(int, 1, self.getint),
File "/usr/lib/python3.10/site-packages/VirtualMailManager/config.py", line 251, in __init__
if not isinstance(getter, collections.Callable):
AttributeError: module 'collections' has no attribute 'Callable'
I've found this discussion on Stack Overflow: BeautifulSoup AttributeError 'collections' has no attribute 'Callable' that seemed relevant.
This patch seem to solve the issue:
diff --git a/VirtualMailManager/config.py b/VirtualMailManager/config.py
index b28da4a..8a5137f 100644
--- a/VirtualMailManager/config.py
+++ b/VirtualMailManager/config.py
@@ -8,6 +8,7 @@
"""
import collections
+collections.Callable = collections.abc.Callable
from configparser import \
Error, MissingSectionHeaderError, NoOptionError, NoSectionError, \
I have this issue with git HEAD but it's probably present in 0.7.0, too. I use Python 3.10.6.
Comments (1)
-
repo owner - Log in to comment
VMM/config: No longer
import collections
.There was a change in Python 3.10¹ which results in: AttributeError: module 'collections' has no attribute 'Callable'
Python 3.2 brought back the builtin function callable(). Yeah!
fixes issue
#111 = https://docs.python.org/3.10/whatsnew/3.10.html#collections-abc
→ <<cset 29d157a4ee8f>>