From ebe42308cc3b4000d60be83888309316833b3560 Mon Sep 17 00:00:00 2001 From: Felix Fontein Date: Sat, 4 Oct 2025 23:45:27 +0200 Subject: [PATCH] Replace ansible.module_utils.six with own module utils in some cases (#1138) * Replace ansible.module_utils.six with own module utils in some cases. * Add ignore.txt entires. --- LICENSES/MIT.txt | 18 ++++ README.md | 1 + changelogs/fragments/1138-six.yml | 4 + galaxy.yml | 1 + plugins/module_utils/_api/_import_helper.py | 2 +- plugins/module_utils/_api/api/client.py | 2 +- plugins/module_utils/_api/auth.py | 2 +- plugins/module_utils/_api/context/api.py | 2 +- plugins/module_utils/_api/context/context.py | 2 +- .../module_utils/_api/credentials/store.py | 2 +- .../module_utils/_api/credentials/utils.py | 2 +- plugins/module_utils/_api/errors.py | 2 +- .../_api/transport/npipesocket.py | 2 +- .../module_utils/_api/transport/sshconn.py | 2 +- .../module_utils/_api/transport/unixconn.py | 2 +- plugins/module_utils/_api/utils/build.py | 2 +- .../module_utils/_api/utils/json_stream.py | 2 +- plugins/module_utils/_api/utils/socket.py | 2 +- plugins/module_utils/_api/utils/utils.py | 2 +- plugins/module_utils/_scramble.py | 2 +- plugins/module_utils/_six.py | 88 +++++++++++++++++++ plugins/module_utils/common.py | 2 +- plugins/module_utils/common_api.py | 2 +- plugins/module_utils/common_cli.py | 2 +- plugins/module_utils/compose_v2.py | 2 +- plugins/module_utils/copy.py | 2 +- plugins/module_utils/module_container/base.py | 2 +- plugins/module_utils/socket_handler.py | 2 +- plugins/module_utils/socket_helper.py | 2 +- plugins/module_utils/util.py | 2 +- plugins/modules/docker_compose_v2.py | 2 +- plugins/modules/docker_compose_v2_exec.py | 2 +- plugins/modules/docker_compose_v2_run.py | 2 +- plugins/modules/docker_container_copy_into.py | 2 +- plugins/modules/docker_container_exec.py | 2 +- plugins/modules/docker_context_info.py | 2 +- plugins/modules/docker_stack.py | 2 +- plugins/modules/docker_swarm_service.py | 2 +- plugins/modules/docker_volume.py | 2 +- tests/sanity/ignore-2.15.txt | 1 + tests/sanity/ignore-2.16.txt | 1 + tests/sanity/ignore-2.20.txt | 35 -------- .../module_utils/_api/utils/test_utils.py | 2 +- 43 files changed, 149 insertions(+), 70 deletions(-) create mode 100644 LICENSES/MIT.txt create mode 100644 changelogs/fragments/1138-six.yml create mode 100644 plugins/module_utils/_six.py diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt new file mode 100644 index 00000000..1cc22a5a --- /dev/null +++ b/LICENSES/MIT.txt @@ -0,0 +1,18 @@ +Copyright (c) 2010-2024 Benjamin Peterson + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md index 51bcc5f2..b7b5b832 100644 --- a/README.md +++ b/README.md @@ -160,5 +160,6 @@ This collection is primarily licensed and distributed as a whole under the GNU G See [LICENSES/GPL-3.0-or-later.txt](https://github.com/ansible-collections/community.docker/blob/main/COPYING) for the full text. Parts of the collection are licensed under the [Apache 2.0 license](https://github.com/ansible-collections/community.docker/blob/main/LICENSES/Apache-2.0.txt). This mostly applies to files vendored from the [Docker SDK for Python](https://github.com/docker/docker-py/). +Also `plugins/module_utils/_six.py` is licensed under the [MIT license](https://github.com/ansible-collections/community.dns/blob/main/LICENSES/MIT.txt). All files have a machine readable `SDPX-License-Identifier:` comment denoting its respective license(s) or an equivalent entry in an accompanying `.license` file. Only changelog fragments (which will not be part of a release) are covered by a blanket statement in `REUSE.toml`. This conforms to the [REUSE specification](https://reuse.software/spec/). diff --git a/changelogs/fragments/1138-six.yml b/changelogs/fragments/1138-six.yml new file mode 100644 index 00000000..8ad153b9 --- /dev/null +++ b/changelogs/fragments/1138-six.yml @@ -0,0 +1,4 @@ +bugfixes: + - "Avoid usage of deprecated ``ansible.module_utils.six`` in some of the code that still supports Python 2 (https://github.com/ansible-collections/community.docker/pull/1138)." +minor_changes: + - "Note that some new code in ``plugins/module_utils/_six.py`` is MIT licensed (https://github.com/ansible-collections/community.docker/pull/1138)." diff --git a/galaxy.yml b/galaxy.yml index 81008204..71fdbda2 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -15,6 +15,7 @@ description: Modules and plugins for working with Docker license: - GPL-3.0-or-later - Apache-2.0 + - MIT # license_file: COPYING tags: - docker diff --git a/plugins/module_utils/_api/_import_helper.py b/plugins/module_utils/_api/_import_helper.py index 0afe0b47..29151d80 100644 --- a/plugins/module_utils/_api/_import_helper.py +++ b/plugins/module_utils/_api/_import_helper.py @@ -12,7 +12,7 @@ __metaclass__ = type import traceback -from ansible.module_utils.six import PY2 +from ansible_collections.community.docker.plugins.module_utils._six import PY2 REQUESTS_IMPORT_ERROR = None diff --git a/plugins/module_utils/_api/api/client.py b/plugins/module_utils/_api/api/client.py index 5ae7e205..066e5157 100644 --- a/plugins/module_utils/_api/api/client.py +++ b/plugins/module_utils/_api/api/client.py @@ -15,7 +15,7 @@ import logging import struct from functools import partial -from ansible.module_utils.six import PY3, binary_type, iteritems, string_types, raise_from +from ansible_collections.community.docker.plugins.module_utils._six import PY3, binary_type, iteritems, string_types, raise_from from ansible.module_utils.six.moves.urllib.parse import quote from .. import auth diff --git a/plugins/module_utils/_api/auth.py b/plugins/module_utils/_api/auth.py index 1bcfd653..e80eb660 100644 --- a/plugins/module_utils/_api/auth.py +++ b/plugins/module_utils/_api/auth.py @@ -14,7 +14,7 @@ import base64 import json import logging -from ansible.module_utils.six import iteritems, string_types +from ansible_collections.community.docker.plugins.module_utils._six import iteritems, string_types from . import errors from .credentials.store import Store diff --git a/plugins/module_utils/_api/context/api.py b/plugins/module_utils/_api/context/api.py index f7166837..9bf82f96 100644 --- a/plugins/module_utils/_api/context/api.py +++ b/plugins/module_utils/_api/context/api.py @@ -13,7 +13,7 @@ __metaclass__ = type import json import os -from ansible.module_utils.six import raise_from +from ansible_collections.community.docker.plugins.module_utils._six import raise_from from .. import errors diff --git a/plugins/module_utils/_api/context/context.py b/plugins/module_utils/_api/context/context.py index c3e081f4..9060b38c 100644 --- a/plugins/module_utils/_api/context/context.py +++ b/plugins/module_utils/_api/context/context.py @@ -14,7 +14,7 @@ import json import os from shutil import copyfile, rmtree -from ansible.module_utils.six import raise_from +from ansible_collections.community.docker.plugins.module_utils._six import raise_from from ..errors import ContextException from ..tls import TLSConfig diff --git a/plugins/module_utils/_api/credentials/store.py b/plugins/module_utils/_api/credentials/store.py index e1bd28e3..57398b6b 100644 --- a/plugins/module_utils/_api/credentials/store.py +++ b/plugins/module_utils/_api/credentials/store.py @@ -14,7 +14,7 @@ import errno import json import subprocess -from ansible.module_utils.six import PY3, binary_type +from ansible_collections.community.docker.plugins.module_utils._six import PY3, binary_type from . import constants from . import errors diff --git a/plugins/module_utils/_api/credentials/utils.py b/plugins/module_utils/_api/credentials/utils.py index 1ab84fe5..6dd62cd9 100644 --- a/plugins/module_utils/_api/credentials/utils.py +++ b/plugins/module_utils/_api/credentials/utils.py @@ -13,7 +13,7 @@ __metaclass__ = type import os import sys -from ansible.module_utils.six import PY2 +from ansible_collections.community.docker.plugins.module_utils._six import PY2 if PY2: from distutils.spawn import find_executable as which diff --git a/plugins/module_utils/_api/errors.py b/plugins/module_utils/_api/errors.py index a7b92247..4e86a276 100644 --- a/plugins/module_utils/_api/errors.py +++ b/plugins/module_utils/_api/errors.py @@ -13,7 +13,7 @@ __metaclass__ = type from ._import_helper import HTTPError as _HTTPError from ansible.module_utils.common.text.converters import to_native -from ansible.module_utils.six import raise_from +from ansible_collections.community.docker.plugins.module_utils._six import raise_from class DockerException(Exception): diff --git a/plugins/module_utils/_api/transport/npipesocket.py b/plugins/module_utils/_api/transport/npipesocket.py index 5e5a90da..3fb1557b 100644 --- a/plugins/module_utils/_api/transport/npipesocket.py +++ b/plugins/module_utils/_api/transport/npipesocket.py @@ -15,7 +15,7 @@ import io import time import traceback -from ansible.module_utils.six import PY2 +from ansible_collections.community.docker.plugins.module_utils._six import PY2 PYWIN32_IMPORT_ERROR = None try: diff --git a/plugins/module_utils/_api/transport/sshconn.py b/plugins/module_utils/_api/transport/sshconn.py index a621d755..78a92569 100644 --- a/plugins/module_utils/_api/transport/sshconn.py +++ b/plugins/module_utils/_api/transport/sshconn.py @@ -17,7 +17,7 @@ import socket import subprocess import traceback -from ansible.module_utils.six import PY3 +from ansible_collections.community.docker.plugins.module_utils._six import PY3 from ansible.module_utils.six.moves.queue import Empty from ansible.module_utils.six.moves.urllib_parse import urlparse diff --git a/plugins/module_utils/_api/transport/unixconn.py b/plugins/module_utils/_api/transport/unixconn.py index 4dce1f56..ffbe0b05 100644 --- a/plugins/module_utils/_api/transport/unixconn.py +++ b/plugins/module_utils/_api/transport/unixconn.py @@ -12,7 +12,7 @@ __metaclass__ = type import socket -from ansible.module_utils.six import PY2 +from ansible_collections.community.docker.plugins.module_utils._six import PY2 from .basehttpadapter import BaseHTTPAdapter from .. import constants diff --git a/plugins/module_utils/_api/utils/build.py b/plugins/module_utils/_api/utils/build.py index 67946457..1ae2e965 100644 --- a/plugins/module_utils/_api/utils/build.py +++ b/plugins/module_utils/_api/utils/build.py @@ -17,7 +17,7 @@ import re import tarfile import tempfile -from ansible.module_utils.six import PY3 +from ansible_collections.community.docker.plugins.module_utils._six import PY3 from . import fnmatch from ..constants import IS_WINDOWS_PLATFORM, WINDOWS_LONGPATH_PREFIX diff --git a/plugins/module_utils/_api/utils/json_stream.py b/plugins/module_utils/_api/utils/json_stream.py index f3a74bac..da9a22a2 100644 --- a/plugins/module_utils/_api/utils/json_stream.py +++ b/plugins/module_utils/_api/utils/json_stream.py @@ -13,7 +13,7 @@ __metaclass__ = type import json import json.decoder -from ansible.module_utils.six import text_type +from ansible_collections.community.docker.plugins.module_utils._six import text_type from ..errors import StreamParseError diff --git a/plugins/module_utils/_api/utils/socket.py b/plugins/module_utils/_api/utils/socket.py index 16dc07e8..754447e0 100644 --- a/plugins/module_utils/_api/utils/socket.py +++ b/plugins/module_utils/_api/utils/socket.py @@ -16,7 +16,7 @@ import select import socket as pysocket import struct -from ansible.module_utils.six import PY3, binary_type +from ansible_collections.community.docker.plugins.module_utils._six import PY3, binary_type from ..transport.npipesocket import NpipeSocket diff --git a/plugins/module_utils/_api/utils/utils.py b/plugins/module_utils/_api/utils/utils.py index 7c1b4f89..1d0781a1 100644 --- a/plugins/module_utils/_api/utils/utils.py +++ b/plugins/module_utils/_api/utils/utils.py @@ -19,7 +19,7 @@ import shlex import string from ansible_collections.community.docker.plugins.module_utils.version import StrictVersion -from ansible.module_utils.six import PY2, PY3, binary_type, integer_types, iteritems, string_types, text_type +from ansible_collections.community.docker.plugins.module_utils._six import PY2, PY3, binary_type, integer_types, iteritems, string_types, text_type from .. import errors from ..constants import DEFAULT_HTTP_HOST diff --git a/plugins/module_utils/_scramble.py b/plugins/module_utils/_scramble.py index 10325731..a9a6103d 100644 --- a/plugins/module_utils/_scramble.py +++ b/plugins/module_utils/_scramble.py @@ -9,7 +9,7 @@ import base64 import random from ansible.module_utils.common.text.converters import to_bytes, to_native, to_text -from ansible.module_utils.six import PY2 +from ansible_collections.community.docker.plugins.module_utils._six import PY2 def generate_insecure_key(): diff --git a/plugins/module_utils/_six.py b/plugins/module_utils/_six.py new file mode 100644 index 00000000..70fd42f4 --- /dev/null +++ b/plugins/module_utils/_six.py @@ -0,0 +1,88 @@ +# This code is strewn with things that are not defined on Python3 (unicode, +# long, etc) but they are all shielded by version checks. This is also an +# upstream vendored file that we're not going to modify on our own +# pylint: disable=undefined-variable +# +# Copyright (c) 2010-2024 Benjamin Peterson +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +# Extracted from https://github.com/benjaminp/six/blob/7d2a0e96602b83cd082896c8c224a87f1efe2111/six.py +# SPDX-License-Identifier: MIT + +from __future__ import absolute_import, division, print_function + + +__metaclass__ = type + +import sys as _sys + + +# Useful for very coarse version differentiation. +PY2 = _sys.version_info[0] == 2 +PY3 = _sys.version_info[0] > 2 + + +if PY3: + string_types = (str,) + integer_types = (int,) + binary_type = bytes + text_type = str + + def iteritems(d): + return d.items() +else: + string_types = (basestring,) # noqa: F821, pylint: disable=undefined-variable + integer_types = (int, long) # noqa: F821, pylint: disable=undefined-variable + binary_type = str + text_type = unicode # noqa: F821, pylint: disable=undefined-variable + + def iteritems(d): + return d.iteritems() + + +if PY3: + import builtins as _builtins + getattr(_builtins, "exec")("""def raise_from(value, from_value): + try: + raise value from from_value + finally: + value = None +""") +else: + def raise_from(value, from_value): + raise value + + +def add_metaclass(metaclass): + """Class decorator for creating a class with a metaclass.""" + def wrapper(cls): + orig_vars = cls.__dict__.copy() + slots = orig_vars.get('__slots__') + if slots is not None: + if isinstance(slots, str): + slots = [slots] + for slots_var in slots: + orig_vars.pop(slots_var) + orig_vars.pop('__dict__', None) + orig_vars.pop('__weakref__', None) + if hasattr(cls, '__qualname__'): + orig_vars['__qualname__'] = cls.__qualname__ + return metaclass(cls.__name__, cls.__bases__, orig_vars) + return wrapper diff --git a/plugins/module_utils/common.py b/plugins/module_utils/common.py index 8752b1ab..e12badf6 100644 --- a/plugins/module_utils/common.py +++ b/plugins/module_utils/common.py @@ -15,7 +15,7 @@ import traceback from ansible.module_utils.basic import AnsibleModule, missing_required_lib from ansible.module_utils.six.moves.collections_abc import Mapping, Sequence -from ansible.module_utils.six import string_types +from ansible_collections.community.docker.plugins.module_utils._six import string_types from ansible.module_utils.parsing.convert_bool import BOOLEANS_TRUE, BOOLEANS_FALSE from ansible_collections.community.docker.plugins.module_utils.version import LooseVersion diff --git a/plugins/module_utils/common_api.py b/plugins/module_utils/common_api.py index 64b612d1..03c37189 100644 --- a/plugins/module_utils/common_api.py +++ b/plugins/module_utils/common_api.py @@ -13,7 +13,7 @@ import re from ansible.module_utils.basic import AnsibleModule, missing_required_lib from ansible.module_utils.six.moves.collections_abc import Mapping, Sequence -from ansible.module_utils.six import string_types +from ansible_collections.community.docker.plugins.module_utils._six import string_types from ansible.module_utils.parsing.convert_bool import BOOLEANS_TRUE, BOOLEANS_FALSE from ansible_collections.community.docker.plugins.module_utils.version import LooseVersion diff --git a/plugins/module_utils/common_cli.py b/plugins/module_utils/common_cli.py index a6f7e55a..ae175f2f 100644 --- a/plugins/module_utils/common_cli.py +++ b/plugins/module_utils/common_cli.py @@ -13,7 +13,7 @@ import shlex from ansible.module_utils.basic import AnsibleModule, env_fallback from ansible.module_utils.common.process import get_bin_path from ansible.module_utils.common.text.converters import to_native -from ansible.module_utils.six import string_types +from ansible_collections.community.docker.plugins.module_utils._six import string_types from ansible_collections.community.docker.plugins.module_utils.version import LooseVersion diff --git a/plugins/module_utils/compose_v2.py b/plugins/module_utils/compose_v2.py index b5f31556..c9357e87 100644 --- a/plugins/module_utils/compose_v2.py +++ b/plugins/module_utils/compose_v2.py @@ -17,7 +17,7 @@ from collections import namedtuple from ansible.module_utils.basic import missing_required_lib from ansible.module_utils.common.text.converters import to_native -from ansible.module_utils.six import string_types +from ansible_collections.community.docker.plugins.module_utils._six import string_types from ansible.module_utils.six.moves import shlex_quote from ansible_collections.community.docker.plugins.module_utils.util import DockerBaseClass diff --git a/plugins/module_utils/copy.py b/plugins/module_utils/copy.py index 6df84598..1e736a2e 100644 --- a/plugins/module_utils/copy.py +++ b/plugins/module_utils/copy.py @@ -16,7 +16,7 @@ import stat import tarfile from ansible.module_utils.common.text.converters import to_bytes, to_native, to_text -from ansible.module_utils.six import raise_from +from ansible_collections.community.docker.plugins.module_utils._six import raise_from from ansible_collections.community.docker.plugins.module_utils._api.errors import APIError, NotFound diff --git a/plugins/module_utils/module_container/base.py b/plugins/module_utils/module_container/base.py index 8b05e4b0..3870dac9 100644 --- a/plugins/module_utils/module_container/base.py +++ b/plugins/module_utils/module_container/base.py @@ -15,7 +15,7 @@ from functools import partial from ansible.module_utils.common.text.converters import to_native, to_text from ansible.module_utils.common.text.formatters import human_to_bytes -from ansible.module_utils.six import string_types +from ansible_collections.community.docker.plugins.module_utils._six import string_types from ansible_collections.community.docker.plugins.module_utils.util import ( clean_dict_booleans_for_docker_api, diff --git a/plugins/module_utils/socket_handler.py b/plugins/module_utils/socket_handler.py index 878dc7c5..59c575a3 100644 --- a/plugins/module_utils/socket_handler.py +++ b/plugins/module_utils/socket_handler.py @@ -11,7 +11,7 @@ import os.path import socket as pysocket import struct -from ansible.module_utils.six import PY2 +from ansible_collections.community.docker.plugins.module_utils._six import PY2 from ansible_collections.community.docker.plugins.module_utils._api.utils import socket as docker_socket diff --git a/plugins/module_utils/socket_helper.py b/plugins/module_utils/socket_helper.py index 257bf61a..f8df2bdf 100644 --- a/plugins/module_utils/socket_helper.py +++ b/plugins/module_utils/socket_helper.py @@ -11,7 +11,7 @@ import os import os.path import socket as pysocket -from ansible.module_utils.six import PY2 +from ansible_collections.community.docker.plugins.module_utils._six import PY2 def make_file_unblocking(file): diff --git a/plugins/module_utils/util.py b/plugins/module_utils/util.py index f768ff6c..b14c4d1b 100644 --- a/plugins/module_utils/util.py +++ b/plugins/module_utils/util.py @@ -12,7 +12,7 @@ from datetime import timedelta from ansible.module_utils.basic import env_fallback from ansible.module_utils.common.collections import is_sequence -from ansible.module_utils.six import string_types +from ansible_collections.community.docker.plugins.module_utils._six import string_types from ansible.module_utils.six.moves.urllib.parse import urlparse from ansible.module_utils.common.text.converters import to_text diff --git a/plugins/modules/docker_compose_v2.py b/plugins/modules/docker_compose_v2.py index cab98b29..72350736 100644 --- a/plugins/modules/docker_compose_v2.py +++ b/plugins/modules/docker_compose_v2.py @@ -441,7 +441,7 @@ import traceback from ansible.module_utils.common.validation import check_type_int from ansible.module_utils.common.text.converters import to_native -from ansible.module_utils.six import string_types +from ansible_collections.community.docker.plugins.module_utils._six import string_types from ansible_collections.community.docker.plugins.module_utils.common_cli import ( AnsibleModuleDockerClient, diff --git a/plugins/modules/docker_compose_v2_exec.py b/plugins/modules/docker_compose_v2_exec.py index c4f379e5..13fcab0c 100644 --- a/plugins/modules/docker_compose_v2_exec.py +++ b/plugins/modules/docker_compose_v2_exec.py @@ -169,7 +169,7 @@ import shlex import traceback from ansible.module_utils.common.text.converters import to_text, to_native -from ansible.module_utils.six import string_types +from ansible_collections.community.docker.plugins.module_utils._six import string_types from ansible_collections.community.docker.plugins.module_utils.common_cli import ( AnsibleModuleDockerClient, diff --git a/plugins/modules/docker_compose_v2_run.py b/plugins/modules/docker_compose_v2_run.py index a07531d3..b9352404 100644 --- a/plugins/modules/docker_compose_v2_run.py +++ b/plugins/modules/docker_compose_v2_run.py @@ -242,7 +242,7 @@ import shlex import traceback from ansible.module_utils.common.text.converters import to_text, to_native -from ansible.module_utils.six import string_types +from ansible_collections.community.docker.plugins.module_utils._six import string_types from ansible_collections.community.docker.plugins.module_utils.common_cli import ( AnsibleModuleDockerClient, diff --git a/plugins/modules/docker_container_copy_into.py b/plugins/modules/docker_container_copy_into.py index fca231d7..0a95e4c5 100644 --- a/plugins/modules/docker_container_copy_into.py +++ b/plugins/modules/docker_container_copy_into.py @@ -173,7 +173,7 @@ import traceback from ansible.module_utils.common.text.converters import to_bytes, to_native, to_text from ansible.module_utils.common.validation import check_type_int -from ansible.module_utils.six import integer_types, string_types +from ansible_collections.community.docker.plugins.module_utils._six import integer_types, string_types from ansible_collections.community.docker.plugins.module_utils._api.errors import APIError, DockerException, NotFound diff --git a/plugins/modules/docker_container_exec.py b/plugins/modules/docker_container_exec.py index 130ed731..f1ad9219 100644 --- a/plugins/modules/docker_container_exec.py +++ b/plugins/modules/docker_container_exec.py @@ -168,7 +168,7 @@ import shlex import traceback from ansible.module_utils.common.text.converters import to_text, to_bytes, to_native -from ansible.module_utils.six import string_types +from ansible_collections.community.docker.plugins.module_utils._six import string_types from ansible_collections.community.docker.plugins.module_utils.common_api import ( AnsibleDockerClient, diff --git a/plugins/modules/docker_context_info.py b/plugins/modules/docker_context_info.py index cfdc4485..04e99680 100644 --- a/plugins/modules/docker_context_info.py +++ b/plugins/modules/docker_context_info.py @@ -177,7 +177,7 @@ import traceback from ansible.module_utils.basic import AnsibleModule from ansible.module_utils.common.text.converters import to_native, to_text -from ansible.module_utils.six import string_types +from ansible_collections.community.docker.plugins.module_utils._six import string_types from ansible_collections.community.docker.plugins.module_utils._api.context.api import ( ContextAPI, diff --git a/plugins/modules/docker_stack.py b/plugins/modules/docker_stack.py index b6521986..21917865 100644 --- a/plugins/modules/docker_stack.py +++ b/plugins/modules/docker_stack.py @@ -161,7 +161,7 @@ import os import tempfile import traceback -from ansible.module_utils.six import string_types +from ansible_collections.community.docker.plugins.module_utils._six import string_types from time import sleep from ansible.module_utils.common.text.converters import to_native diff --git a/plugins/modules/docker_swarm_service.py b/plugins/modules/docker_swarm_service.py index 8be5b243..9a5b8c06 100644 --- a/plugins/modules/docker_swarm_service.py +++ b/plugins/modules/docker_swarm_service.py @@ -870,7 +870,7 @@ from ansible_collections.community.docker.plugins.module_utils.util import ( ) from ansible.module_utils.basic import human_to_bytes -from ansible.module_utils.six import string_types +from ansible_collections.community.docker.plugins.module_utils._six import string_types from ansible.module_utils.common.text.converters import to_text, to_native try: diff --git a/plugins/modules/docker_volume.py b/plugins/modules/docker_volume.py index ce0db3ce..abf5b76f 100644 --- a/plugins/modules/docker_volume.py +++ b/plugins/modules/docker_volume.py @@ -121,7 +121,7 @@ volume: import traceback from ansible.module_utils.common.text.converters import to_native -from ansible.module_utils.six import iteritems +from ansible_collections.community.docker.plugins.module_utils._six import iteritems from ansible_collections.community.docker.plugins.module_utils.common_api import ( AnsibleDockerClient, diff --git a/tests/sanity/ignore-2.15.txt b/tests/sanity/ignore-2.15.txt index 0a0b790b..9644a8ba 100644 --- a/tests/sanity/ignore-2.15.txt +++ b/tests/sanity/ignore-2.15.txt @@ -5,3 +5,4 @@ plugins/inventory/docker_swarm.py yamllint:unparsable-with-libyaml plugins/modules/docker_container_copy_into.py validate-modules:invalid-documentation plugins/modules/docker_container_copy_into.py validate-modules:undocumented-parameter # _max_file_size_for_diff is used by the action plugin plugins/modules/docker_image_build.py validate-modules:invalid-documentation +plugins/module_utils/_six.py no-dict-iteritems diff --git a/tests/sanity/ignore-2.16.txt b/tests/sanity/ignore-2.16.txt index e50c576e..2fb825ac 100644 --- a/tests/sanity/ignore-2.16.txt +++ b/tests/sanity/ignore-2.16.txt @@ -4,3 +4,4 @@ plugins/inventory/docker_swarm.py yamllint:unparsable-with-libyaml plugins/modules/docker_container_copy_into.py validate-modules:invalid-documentation plugins/modules/docker_container_copy_into.py validate-modules:undocumented-parameter # _max_file_size_for_diff is used by the action plugin plugins/modules/docker_image_build.py validate-modules:invalid-documentation +plugins/module_utils/_six.py no-dict-iteritems diff --git a/tests/sanity/ignore-2.20.txt b/tests/sanity/ignore-2.20.txt index 361a5051..e70426ee 100644 --- a/tests/sanity/ignore-2.20.txt +++ b/tests/sanity/ignore-2.20.txt @@ -1,39 +1,4 @@ -plugins/module_utils/_api/_import_helper.py pylint:ansible-bad-import-from -plugins/module_utils/_api/api/client.py pylint:ansible-bad-import-from plugins/module_utils/_api/api/client.py pylint:use-yield-from # suggested construct does not work with Python 2 -plugins/module_utils/_api/auth.py pylint:ansible-bad-import-from -plugins/module_utils/_api/context/api.py pylint:ansible-bad-import-from -plugins/module_utils/_api/context/context.py pylint:ansible-bad-import-from -plugins/module_utils/_api/credentials/store.py pylint:ansible-bad-import-from -plugins/module_utils/_api/credentials/utils.py pylint:ansible-bad-import-from -plugins/module_utils/_api/errors.py pylint:ansible-bad-import-from -plugins/module_utils/_api/transport/npipesocket.py pylint:ansible-bad-import-from -plugins/module_utils/_api/transport/sshconn.py pylint:ansible-bad-import-from -plugins/module_utils/_api/transport/unixconn.py pylint:ansible-bad-import-from -plugins/module_utils/_api/utils/build.py pylint:ansible-bad-import-from plugins/module_utils/_api/utils/build.py pylint:use-yield-from # suggested construct does not work with Python 2 -plugins/module_utils/_api/utils/json_stream.py pylint:ansible-bad-import-from -plugins/module_utils/_api/utils/socket.py pylint:ansible-bad-import-from -plugins/module_utils/_api/utils/utils.py pylint:ansible-bad-import-from -plugins/module_utils/_scramble.py pylint:ansible-bad-import-from -plugins/module_utils/common.py pylint:ansible-bad-import-from -plugins/module_utils/common_api.py pylint:ansible-bad-import-from -plugins/module_utils/common_cli.py pylint:ansible-bad-import-from -plugins/module_utils/compose_v2.py pylint:ansible-bad-import-from -plugins/module_utils/copy.py pylint:ansible-bad-import-from -plugins/module_utils/module_container/base.py pylint:ansible-bad-import-from -plugins/module_utils/socket_handler.py pylint:ansible-bad-import-from -plugins/module_utils/socket_helper.py pylint:ansible-bad-import-from -plugins/module_utils/util.py pylint:ansible-bad-import-from -plugins/modules/docker_compose_v2.py pylint:ansible-bad-import-from -plugins/modules/docker_compose_v2_exec.py pylint:ansible-bad-import-from -plugins/modules/docker_compose_v2_run.py pylint:ansible-bad-import-from -plugins/modules/docker_container_copy_into.py pylint:ansible-bad-import-from plugins/modules/docker_container_copy_into.py validate-modules:undocumented-parameter # _max_file_size_for_diff is used by the action plugin -plugins/modules/docker_container_exec.py pylint:ansible-bad-import-from -plugins/modules/docker_context_info.py pylint:ansible-bad-import-from -plugins/modules/docker_stack.py pylint:ansible-bad-import-from -plugins/modules/docker_swarm_service.py pylint:ansible-bad-import-from -plugins/modules/docker_volume.py pylint:ansible-bad-import-from -tests/unit/plugins/module_utils/_api/utils/test_utils.py pylint:ansible-bad-import-from tests/unit/plugins/module_utils/test_copy.py pylint:use-yield-from # suggested construct does not work with Python 2 diff --git a/tests/unit/plugins/module_utils/_api/utils/test_utils.py b/tests/unit/plugins/module_utils/_api/utils/test_utils.py index e724b079..4ba48ba2 100644 --- a/tests/unit/plugins/module_utils/_api/utils/test_utils.py +++ b/tests/unit/plugins/module_utils/_api/utils/test_utils.py @@ -19,7 +19,7 @@ import tempfile import unittest import sys -from ansible.module_utils.six import PY3 +from ansible_collections.community.docker.plugins.module_utils._six import PY3 import pytest