diff --git a/oslo_policy/policy.py b/oslo_policy/policy.py index f21ebe9f..6ba1bcd0 100644 --- a/oslo_policy/policy.py +++ b/oslo_policy/policy.py @@ -221,7 +221,7 @@ by setting the ``policy_default_rule`` configuration setting to the desired rule name. """ -import collections +import collections.abc import copy import logging import os @@ -953,9 +953,9 @@ class Enforcer(object): # a method on RequestContext objects that converts attributes of the # context object to policy values. However, ``to_policy_values()`` # doesn't actually return a dictionary, it's a subclass of - # collections.MutableMapping, which behaves like a dictionary but + # collections.abc.MutableMapping, which behaves like a dictionary but # doesn't pass the type check. - elif not isinstance(creds, collections.MutableMapping): + elif not isinstance(creds, collections.abc.MutableMapping): msg = ( 'Expected type oslo_context.context.RequestContext, dict, or ' 'the output of ' diff --git a/oslo_policy/shell.py b/oslo_policy/shell.py index 7ffb5ea4..da1bf1e1 100644 --- a/oslo_policy/shell.py +++ b/oslo_policy/shell.py @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -import collections +import collections.abc import sys from oslo_serialization import jsonutils @@ -59,7 +59,7 @@ def flatten(d, parent_key=''): items = [] for k, v in d.items(): new_key = parent_key + '.' + k if parent_key else k - if isinstance(v, collections.MutableMapping): + if isinstance(v, collections.abc.MutableMapping): items.extend(flatten(v, new_key).items()) else: items.append((new_key, v))