diff --git a/src/flake8/plugins/manager.py b/src/flake8/plugins/manager.py index 1b9005e..e17fc17 100644 --- a/src/flake8/plugins/manager.py +++ b/src/flake8/plugins/manager.py @@ -1,6 +1,6 @@ """Plugin loading and management logic and classes.""" -import collections import logging +import sys import pkg_resources @@ -8,6 +8,11 @@ from flake8 import exceptions from flake8 import utils from flake8.plugins import notifier +if sys.version_info >= (3, 3): + import collections.abc as collections_abc +else: + import collections as collections_abc + LOG = logging.getLogger(__name__) __all__ = ( @@ -411,7 +416,7 @@ class PluginTypeManager(object): def generated_function(plugin): # noqa: D105 method = getattr(plugin, method_name, None) if method is not None and isinstance( - method, collections.Callable + method, collections_abc.Callable ): return method(optmanager, *args, **kwargs) diff --git a/tests/unit/test_plugin_type_manager.py b/tests/unit/test_plugin_type_manager.py index 388cd8d..18058d4 100644 --- a/tests/unit/test_plugin_type_manager.py +++ b/tests/unit/test_plugin_type_manager.py @@ -1,5 +1,5 @@ """Tests for flake8.plugins.manager.PluginTypeManager.""" -import collections +import sys import mock import pytest @@ -7,6 +7,11 @@ import pytest from flake8 import exceptions from flake8.plugins import manager +if sys.version_info >= (3, 3): + import collections.abc as collections_abc +else: + import collections as collections_abc + TEST_NAMESPACE = "testing.plugin-type-manager" @@ -86,7 +91,7 @@ def test_generate_call_function(): 'method_name', optmanager, ) - assert isinstance(func, collections.Callable) + assert isinstance(func, collections_abc.Callable) assert func(plugin) is optmanager