python: Replace DictMixin with Mapping / MutableMapping

Python 3 has removed support for DictMixin, so switch to Mapping /
MutableMapping in collections which provides the same functionality.

Change-Id: I61fbe366d2c9fc6e01b470f82f49cc02b99dec32
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/15984
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
diff --git a/src/python/m5/debug.py b/src/python/m5/debug.py
index f7e34a7..d2892f7 100644
--- a/src/python/m5/debug.py
+++ b/src/python/m5/debug.py
@@ -28,7 +28,7 @@
 
 from __future__ import print_function
 
-from UserDict import DictMixin
+from collections import Mapping
 
 import _m5.debug
 from _m5.debug import SimpleFlag, CompoundFlag
@@ -56,7 +56,7 @@
             printList([ c.name() for c in children ], indent=8)
     print()
 
-class AllFlags(DictMixin):
+class AllFlags(Mapping):
     def __init__(self):
         self._version = -1
         self._dict = {}
@@ -79,6 +79,14 @@
         self._update()
         return self._dict[item]
 
+    def __iter__(self):
+        self._update()
+        return iter(self._dict)
+
+    def __len__(self):
+        self._update()
+        return len(self._dict)
+
     def keys(self):
         self._update()
         return self._dict.keys()
@@ -91,16 +99,4 @@
         self._update()
         return self._dict.items()
 
-    def iterkeys(self):
-        self._update()
-        return self._dict.iterkeys()
-
-    def itervalues(self):
-        self._update()
-        return self._dict.itervalues()
-
-    def iteritems(self):
-        self._update()
-        return self._dict.iteritems()
-
 flags = AllFlags()