Package: python-orderedmultidict
Version: 1.0-4
Severity: normal
Dear Maintainer,
in python 3.10, "from collections import <thing>" doesn't work anymore
and should be imported from collections.abc.
$ sh debian/tests/unittest
[0/1942]
EE
======================================================================
ERROR: test_itemlist (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: test_itemlist
Traceback (most recent call last):
File "/usr/lib/python3.10/unittest/loader.py", line 154, in loadTestsFromName
module = __import__(module_name)
File "/home/ubuntu/git/packages/python-orderedmultidict/python-orderedmultidict/tests/test_itemlist.py",
line 18, in <module>
from orderedmultidict.itemlist import itemlist
File "/home/ubuntu/git/packages/python-orderedmultidict/python-orderedmultidict/orderedmultidict/__init__.py",
line 14, in <module>
from .orderedmultidict import * # noqa
File "/home/ubuntu/git/packages/python-orderedmultidict/python-orderedmultidict/orderedmultidict/orderedmultidict.py",
line 15, in <module>
from collections import MutableMapping
ImportError: cannot import name 'MutableMapping' from 'collections'
(/usr/lib/python3.10/collections/__init__.py)
======================================================================
ERROR: test_orderedmultidict (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: test_orderedmultidict
Traceback (most recent call last):
File "/usr/lib/python3.10/unittest/loader.py", line 154, in loadTestsFromName
module = __import__(module_name)
File "/home/ubuntu/git/packages/python-orderedmultidict/python-orderedmultidict/tests/test_orderedmultidict.py",
line 20, in <module>
from orderedmultidict.orderedmultidict import omdict
File "/home/ubuntu/git/packages/python-orderedmultidict/python-orderedmultidict/orderedmultidict/__init__.py",
line 14, in <module>
from .orderedmultidict import * # noqa
File "/home/ubuntu/git/packages/python-orderedmultidict/python-orderedmultidict/orderedmultidict/orderedmultidict.py",
line 15, in <module>
from collections import MutableMapping
ImportError: cannot import name 'MutableMapping' from 'collections'
(/usr/lib/python3.10/collections/__init__.py)
----------------------------------------------------------------------
Ran 2 tests in 0.000s
Upstream fixed it in
https://github.com/gruns/orderedmultidict/commit/154e2c52a0368715c22e856f0c135e9770365d4d
which is part of the 1.0.1 release:
From 2a3d04c5bbb28804320d7f457d65ead3bcc07c10 Mon Sep 17 00:00:00 2001
From: Simon Brunning <
si...@brunningonline.net>
Date: Sat, 2 Feb 2019 09:13:36 +0000
Subject: [PATCH] Fix #19, warning importing from collections rather than
collections.abc.
---
orderedmultidict/orderedmultidict.py | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/orderedmultidict/orderedmultidict.py
b/orderedmultidict/orderedmultidict.py
index 2d21239..bcb6481 100644
--- a/orderedmultidict/orderedmultidict.py
+++ b/orderedmultidict/orderedmultidict.py
@@ -13,19 +13,23 @@
from __future__ import absolute_import
from itertools import chain
-from collections import MutableMapping
import six
from six.moves import map, zip_longest
from .itemlist import itemlist
+import sys
+
+if six.PY3:
+ from collections.abc import MutableMapping
+else:
+ from collections import MutableMapping
try:
from collections import OrderedDict as odict # Python 2.7 and later.
except ImportError:
from ordereddict import OrderedDict as odict # Python 2.6 and earlier.
-import sys
items_attr = 'items' if sys.version_info[0] >= 3 else 'iteritems'
_absent = object() # Marker that means no parameter was provided.