2022-03-24T05:33:28 [140404123150144] INFO Manager __init__: config_file=/octodns/test.yaml
2022-03-24T05:33:28 [140404123150144] INFO Manager __init__: max_workers=2
2022-03-24T05:33:28 [140404123150144] INFO Manager __init__: include_meta=False
2022-03-24T05:33:28 [140404123150144] ERROR Manager _get_{}_class: Unable to import module octodns_ns1.Ns1Provider
Traceback (most recent call last):
File "/opt/octodns/env/src/octodns/octodns/manager.py", line 190, in _get_named_class
module = import_module(module_name)
File "/usr/local/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/opt/octodns/env/lib/python3.10/site-packages/octodns_ns1/__init__.py", line 7, in <module>
from collections import Mapping, OrderedDict, defaultdict
ImportError: cannot import name 'Mapping' from 'collections' (/usr/local/lib/python3.10/collections/__init__.py)
Traceback (most recent call last):
File "/opt/octodns/env/src/octodns/octodns/manager.py", line 190, in _get_named_class
module = import_module(module_name)
File "/usr/local/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/opt/octodns/env/lib/python3.10/site-packages/octodns_ns1/__init__.py", line 7, in <module>
from collections import Mapping, OrderedDict, defaultdict
ImportError: cannot import name 'Mapping' from 'collections' (/usr/local/lib/python3.10/collections/__init__.py)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/octodns/env/bin/octodns-sync", line 33, in <module>
sys.exit(load_entry_point('octodns', 'console_scripts', 'octodns-sync')())
File "/opt/octodns/env/src/octodns/octodns/cmds/sync.py", line 37, in main
manager = Manager(args.config_file)
File "/opt/octodns/env/src/octodns/octodns/manager.py", line 115, in __init__
_class = self._get_named_class('provider', _class)
File "/opt/octodns/env/src/octodns/octodns/manager.py", line 194, in _get_named_class
raise ManagerException(f'Unknown {_type} class: {_class}')
octodns.manager.ManagerException: Unknown provider class: octodns_ns1.Ns1Provider
Using python:3.9-slim instead works just fine. Code could be changed in octodns_ns1 to import Mapping from collections.abc (and fall back to collections in case ImportError is thrown).