Remove all usage of ansible.module_utils.six from main branch (#10888)

* Get rid of all six.moves imports.

* Get rid of iteritems.

* Get rid of *_type(s) aliases.

* Replace StringIO import.

* Get rid of PY2/PY3 constants.

* Get rid of raise_from.

* Get rid of python_2_unicode_compatible.

* Clean up global six imports.

* Remove all usage of ansible.module_utils.six.

* Linting.

* Fix xml module.

* Docs adjustments.
This commit is contained in:
Felix Fontein 2025-10-11 08:21:57 +02:00 committed by GitHub
commit a8977afb04
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
113 changed files with 188 additions and 352 deletions

View file

@ -9,9 +9,9 @@ from __future__ import annotations
import copy
import json
import re
from urllib import error as urllib_error
from urllib.parse import urlencode
from ansible.module_utils.six.moves.urllib import error as urllib_error
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible.module_utils.urls import open_url

View file

@ -7,10 +7,9 @@
from __future__ import annotations
import csv
from io import BytesIO, StringIO
from io import StringIO
from ansible.module_utils.common.text.converters import to_native
from ansible.module_utils.six import PY3
class CustomDialectFailureError(Exception):
@ -58,10 +57,7 @@ def read_csv(data, dialect, fieldnames=None):
if data.startswith(BOM):
data = data[len(BOM):]
if PY3:
fake_fh = StringIO(data)
else:
fake_fh = BytesIO(data)
fake_fh = StringIO(data)
reader = csv.DictReader(fake_fh, fieldnames=fieldnames, dialect=dialect)

View file

@ -13,13 +13,13 @@
from __future__ import annotations
import configparser
import os
import re
import traceback
# (TODO: remove AnsibleModule from next line!)
from ansible.module_utils.basic import AnsibleModule, missing_required_lib # noqa: F401, pylint: disable=unused-import
from ansible.module_utils.six.moves import configparser
from os.path import expanduser
from uuid import UUID

View file

@ -8,7 +8,6 @@ from __future__ import annotations
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 integer_types, string_types
from ansible_collections.community.general.plugins.module_utils.version import LooseVersion
@ -144,7 +143,7 @@ def vars_to_variables(vars, module):
# transform old vars to new variables structure
variables = list()
for item, value in vars.items():
if isinstance(value, (string_types, integer_types, float)):
if isinstance(value, (str, int, float)):
variables.append(
{
"name": item,

View file

@ -7,7 +7,6 @@ from __future__ import annotations
import os
import re
from ansible.module_utils.six import string_types
def _create_regex_group_complement(s):
@ -70,7 +69,7 @@ class HomebrewValidate(object):
- os.path.sep
"""
if isinstance(path, string_types):
if isinstance(path, str):
return not cls.INVALID_PATH_REGEX.search(path)
try:
@ -98,7 +97,7 @@ class HomebrewValidate(object):
return True
return isinstance(
brew_path, string_types
brew_path, str
) and not cls.INVALID_BREW_PATH_REGEX.search(brew_path)
@classmethod
@ -109,7 +108,7 @@ class HomebrewValidate(object):
return True
return isinstance(
package, string_types
package, str
) and not cls.INVALID_PACKAGE_REGEX.search(package)
@ -126,7 +125,7 @@ def parse_brew_path(module):
if not HomebrewValidate.valid_path(path):
module.fail_json(msg="Invalid path: {0}".format(path))
if isinstance(path, string_types):
if isinstance(path, str):
paths = path.split(":")
elif isinstance(path, list):
paths = path

View file

@ -8,10 +8,10 @@ from __future__ import annotations
import json
import traceback
import copy
from urllib.parse import urlencode, quote
from urllib.error import HTTPError
from ansible.module_utils.urls import open_url
from ansible.module_utils.six.moves.urllib.parse import urlencode, quote
from ansible.module_utils.six.moves.urllib.error import HTTPError
from ansible.module_utils.common.text.converters import to_native, to_text
URL_REALM_INFO = "{url}/realms/{realm}"

View file

@ -18,10 +18,9 @@ import uuid
import re
from ansible.module_utils.common.text.converters import to_bytes, to_native, to_text
from ansible.module_utils.six import PY3
from ansible.module_utils.six.moves.urllib.parse import quote
from ansible.module_utils.urls import fetch_url, HAS_GSSAPI
from ansible.module_utils.basic import env_fallback, AnsibleFallbackNotFound
from urllib.parse import quote
def _env_then_dns_fallback(*args, **kwargs):
@ -135,14 +134,7 @@ class IPAClient(object):
except Exception as e:
self._fail('post %s' % method, to_native(e))
if PY3:
charset = resp.headers.get_content_charset('latin-1')
else:
response_charset = resp.headers.getparam('charset')
if response_charset:
charset = response_charset
else:
charset = 'latin-1'
charset = resp.headers.get_content_charset('latin-1')
resp = json.loads(to_text(resp.read(), encoding=charset))
err = resp.get('error')
if err is not None:

View file

@ -15,7 +15,7 @@ import os
import hmac
import re
from ansible.module_utils.six.moves.urllib.parse import urlparse
from urllib.parse import urlparse
try:
from hashlib import sha1

View file

@ -6,14 +6,14 @@
from __future__ import annotations
import http.client as http_client
import os
import socket
import ssl
import json
from urllib.parse import urlparse
from ansible.module_utils.urls import generic_urlparse
from ansible.module_utils.six.moves.urllib.parse import urlparse
from ansible.module_utils.six.moves import http_client
from ansible.module_utils.common.text.converters import to_text
# httplib/http.client connection using unix domain socket

View file

@ -11,10 +11,10 @@
from __future__ import annotations
from ansible.module_utils.six.moves.urllib.parse import urlencode
from urllib.parse import urlencode
from ansible.module_utils.urls import open_url
from ansible.module_utils.basic import json
import ansible.module_utils.six.moves.urllib.error as urllib_error
import urllib.error as urllib_error
class Response(object):

View file

@ -15,7 +15,6 @@ import json
import time
import uuid
from ansible.module_utils.six import iteritems
from ansible.module_utils.urls import open_url
@ -167,7 +166,7 @@ def list_pritunl_organizations(
else:
if not any(
filter_val != org[filter_key]
for filter_key, filter_val in iteritems(filters)
for filter_key, filter_val in filters.items()
):
orgs.append(org)
@ -198,7 +197,7 @@ def list_pritunl_users(
else:
if not any(
filter_val != user[filter_key]
for filter_key, filter_val in iteritems(filters)
for filter_key, filter_val in filters.items()
):
users.append(user)

View file

@ -8,12 +8,12 @@ from __future__ import annotations
import json
import os
import uuid
from urllib.error import URLError, HTTPError
from urllib.parse import urlparse
from ansible.module_utils.urls import open_url
from ansible.module_utils.common.text.converters import to_native
from ansible.module_utils.common.text.converters import to_text
from ansible.module_utils.six.moves.urllib.error import URLError, HTTPError
from ansible.module_utils.six.moves.urllib.parse import urlparse
GET_HEADERS = {'accept': 'application/json'}

View file

@ -15,6 +15,7 @@ import abc
import collections
import json
import traceback
from collections.abc import Mapping
HPE_ONEVIEW_IMP_ERR = None
try:
@ -24,10 +25,8 @@ except ImportError:
HPE_ONEVIEW_IMP_ERR = traceback.format_exc()
HAS_HPE_ONEVIEW = False
from ansible.module_utils import six
from ansible.module_utils.basic import AnsibleModule, missing_required_lib
from ansible.module_utils.common.text.converters import to_native
from ansible.module_utils.six.moves.collections_abc import Mapping
def transform_list_to_dict(list_):
@ -128,7 +127,7 @@ class OneViewModuleException(Exception):
self.msg = None
self.oneview_response = None
if isinstance(data, six.string_types):
if isinstance(data, str):
self.msg = data
else:
self.oneview_response = data
@ -178,8 +177,7 @@ class OneViewModuleResourceNotFound(OneViewModuleException):
pass
@six.add_metaclass(abc.ABCMeta)
class OneViewModuleBase(object):
class OneViewModuleBase(object, metaclass=abc.ABCMeta):
MSG_CREATED = 'Resource created successfully.'
MSG_UPDATED = 'Resource updated successfully.'
MSG_DELETED = 'Resource deleted successfully.'

View file

@ -10,7 +10,6 @@ from __future__ import annotations
import time
import ssl
from os import environ
from ansible.module_utils.six import string_types
from ansible.module_utils.basic import AnsibleModule
@ -263,7 +262,7 @@ class OpenNebulaModule:
self.cast_template(template[key])
elif isinstance(value, list):
template[key] = ', '.join(value)
elif not isinstance(value, string_types):
elif not isinstance(value, str):
template[key] = str(value)
def requires_template_update(self, current, desired):

View file

@ -46,7 +46,6 @@ except ImportError:
from ansible.module_utils.common.text.converters import to_bytes
from ansible.module_utils.six import iteritems
__version__ = "1.6.0-dev"
@ -820,7 +819,7 @@ def is_attr_assigned_default(default_attribute_values, attr, assigned_value):
# this is to ensure forward compatibility when the API returns new keys that are not known during
# the time when the module author provided default values for the attribute
keys = {}
for k, v in iteritems(assigned_value.items()):
for k, v in assigned_value.items().items():
if k in default_val_for_attr:
keys[k] = v

View file

@ -4,8 +4,6 @@
from __future__ import annotations
from ansible.module_utils.six import raise_from
from ansible_collections.community.general.plugins.module_utils import deps
@ -49,7 +47,7 @@ class PackageRequirement:
return req.name, req
except Exception as e:
raise_from(ValueError("Invalid package specification for '{0}': {1}".format(name, e)), e)
raise ValueError("Invalid package specification for '{0}': {1}".format(name, e)) from e
def matches_version(self, version):
"""
@ -70,4 +68,4 @@ class PackageRequirement:
return ver in self.requirement.specifier
except InvalidVersion as e:
raise_from(ValueError("Invalid version '{0}': {1}".format(version, e)))
raise ValueError("Invalid version '{0}': {1}".format(version, e)) from e

View file

@ -4,6 +4,7 @@
from __future__ import annotations
import http.client as http_client
import json
import os
import random
@ -13,10 +14,8 @@ from ansible.module_utils.urls import open_url
from ansible.module_utils.common.text.converters import to_native
from ansible.module_utils.common.text.converters import to_text
from ansible.module_utils.common.text.converters import to_bytes
from ansible.module_utils.six import text_type
from ansible.module_utils.six.moves import http_client
from ansible.module_utils.six.moves.urllib.error import URLError, HTTPError
from ansible.module_utils.six.moves.urllib.parse import urlparse
from urllib.error import URLError, HTTPError
from urllib.parse import urlparse
GET_HEADERS = {'accept': 'application/json', 'OData-Version': '4.0'}
POST_HEADERS = {'content-type': 'application/json', 'accept': 'application/json',
@ -378,7 +377,7 @@ class RedfishUtils(object):
def write_buffer(body, line):
# Adds to the multipart body based on the provided data type
# At this time there is only support for strings, dictionaries, and bytes (default)
if isinstance(line, text_type):
if isinstance(line, str):
body.append(to_bytes(line, encoding='utf-8'))
elif isinstance(line, dict):
body.append(to_bytes(json.dumps(line), encoding='utf-8'))

View file

@ -29,11 +29,9 @@ from stringprep import (
)
from unicodedata import normalize
from ansible.module_utils.six import text_type
def is_unicode_str(string):
return True if isinstance(string, text_type) else False
return True if isinstance(string, str) else False
def mapping_profile(string):
@ -156,9 +154,8 @@ def saslprep(string):
# RFC4013: "The algorithm assumes all strings are
# comprised of characters from the Unicode [Unicode] character set."
# Validate the string is a Unicode string
# (text_type is the string type if PY3 and unicode otherwise):
if not is_unicode_str(string):
raise TypeError('input must be of type %s, not %s' % (text_type, type(string)))
raise TypeError('input must be of type str, not %s' % type(string))
# RFC4013: 2.1. Mapping.
string = mapping_profile(string)

View file

@ -10,10 +10,10 @@ import sys
import datetime
import time
import traceback
from urllib.parse import urlencode
from ansible.module_utils.basic import env_fallback, missing_required_lib
from ansible.module_utils.urls import fetch_url
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible_collections.community.general.plugins.module_utils.datetime import (
now,

View file

@ -10,12 +10,11 @@ import re
import time
import tarfile
import os
from urllib.parse import urlparse, urlunparse
from ansible.module_utils.urls import fetch_file
from ansible_collections.community.general.plugins.module_utils.redfish_utils import RedfishUtils
from ansible.module_utils.six.moves.urllib.parse import urlparse, urlunparse
class WdcRedfishUtils(RedfishUtils):
"""Extension to RedfishUtils to support WDC enclosures."""

View file

@ -17,7 +17,7 @@ description:
extends_documentation_fragment:
- community.general.attributes
requirements:
- Python package C(BeautifulSoup) on Python 2, C(beautifulsoup4) on Python 3.
- Python package C(beautifulsoup4)
attributes:
check_mode:
support: full
@ -213,14 +213,9 @@ from ansible_collections.community.general.plugins.module_utils.module_helper im
from ansible.module_utils.common.text.converters import to_text
from ansible.module_utils.urls import fetch_url
from ansible.module_utils.six import raise_from, PY2
if PY2:
with deps.declare("BeautifulSoup"):
from BeautifulSoup import BeautifulSoup
else:
with deps.declare("beautifulsoup4"):
from bs4 import BeautifulSoup
with deps.declare("beautifulsoup4"):
from bs4 import BeautifulSoup
# balancer member attributes extraction regexp:
EXPRESSION = re.compile(to_text(r"(b=([\w\.\-]+)&w=(https?|ajp|wss?|ftp|[sf]cgi)://([\w\.\-]+):?(\d*)([/\w\.\-]*)&?[\w\-\=]*)"))
@ -229,8 +224,6 @@ APACHE_VERSION_EXPRESSION = re.compile(to_text(r"SERVER VERSION: APACHE/([\d.]+)
def find_all(where, what):
if PY2:
return where.findAll(what)
return where.find_all(what)
@ -279,7 +272,7 @@ class BalancerMember(object):
try:
soup = BeautifulSoup(resp)
except TypeError as exc:
raise_from(ModuleHelperException("Cannot parse balancer_member_page HTML! {0}".format(exc)), exc)
raise ModuleHelperException("Cannot parse balancer_member_page HTML! {0}".format(exc)) from exc
subsoup = find_all(find_all(soup, 'table')[1], 'tr')
keys = find_all(subsoup[0], 'th')
@ -359,7 +352,7 @@ class Balancer(object):
try:
soup = BeautifulSoup(self.page)
except TypeError as e:
raise_from(ModuleHelperException("Cannot parse balancer page HTML! {0}".format(self.page)), e)
raise ModuleHelperException("Cannot parse balancer page HTML! {0}".format(self.page)) from e
elements = find_all(soup, 'a')
for element in elements[1::1]:

View file

@ -72,11 +72,8 @@ options:
default: false
notes:
- Can produce C(gzip), C(bzip2), C(lzma), and C(zip) compressed files or archives.
- This module uses C(tarfile), C(zipfile), C(gzip), and C(bz2) packages on the target host to create archives. These are
part of the Python standard library for Python 2 and 3.
requirements:
- Requires C(lzma) (standard library of Python 3) or L(backports.lzma, https://pypi.org/project/backports.lzma/) (Python
2) if using C(xz) format.
- This module uses C(tarfile), C(zipfile), C(gzip), C(bz2), and C(lzma) packages on the target host to create archives. These are
part of the Python standard library.
seealso:
- module: ansible.builtin.unarchive
author:
@ -188,13 +185,11 @@ import shutil
import tarfile
import zipfile
from fnmatch import fnmatch
from sys import version_info
from traceback import format_exc
from zlib import crc32
from ansible.module_utils.basic import AnsibleModule, missing_required_lib
from ansible.module_utils.common.text.converters import to_bytes, to_native
from ansible.module_utils import six
try: # python 3.2+
from zipfile import BadZipFile # type: ignore[attr-defined]
@ -202,22 +197,12 @@ except ImportError: # older python
from zipfile import BadZipfile as BadZipFile
LZMA_IMP_ERR = None
if six.PY3:
try:
import lzma
HAS_LZMA = True
except ImportError:
LZMA_IMP_ERR = format_exc()
HAS_LZMA = False
else:
try:
from backports import lzma
HAS_LZMA = True
except ImportError:
LZMA_IMP_ERR = format_exc()
HAS_LZMA = False
PY27 = version_info[0:2] >= (2, 7)
try:
import lzma
HAS_LZMA = True
except ImportError:
LZMA_IMP_ERR = format_exc()
HAS_LZMA = False
STATE_ABSENT = 'absent'
STATE_ARCHIVED = 'archive'
@ -226,7 +211,7 @@ STATE_INCOMPLETE = 'incomplete'
def common_path(paths):
empty = b'' if paths and isinstance(paths[0], six.binary_type) else ''
empty = b'' if paths and isinstance(paths[0], bytes) else ''
return os.path.join(
os.path.dirname(os.path.commonprefix([os.path.join(os.path.dirname(p), empty) for p in paths])), empty
@ -271,8 +256,7 @@ def _to_native_ascii(s):
return to_native(s, errors='surrogate_or_strict', encoding='ascii')
@six.add_metaclass(abc.ABCMeta)
class Archive(object):
class Archive(object, metaclass=abc.ABCMeta):
def __init__(self, module):
self.module = module
@ -574,16 +558,10 @@ class TarArchive(Archive):
self.module.fail_json(msg="%s is not a valid archive format" % self.format)
def _add(self, path, archive_name):
def py27_filter(tarinfo):
def filter(tarinfo):
return None if matches_exclusion_patterns(tarinfo.name, self.exclusion_patterns) else tarinfo
def py26_filter(path):
return matches_exclusion_patterns(path, self.exclusion_patterns)
if PY27:
self.file.add(path, archive_name, recursive=False, filter=py27_filter)
else:
self.file.add(path, archive_name, recursive=False, exclude=py26_filter)
self.file.add(path, archive_name, recursive=False, filter=filter)
def _get_checksums(self, path):
if HAS_LZMA:

View file

@ -14,7 +14,7 @@ description:
- Create an annotation event with a given category, title and description. Optionally start, end or durations can be provided.
author: "Nick Harring (@NickatEpic)"
requirements:
- requests (either >= 2.0.0 for Python 3, or >= 1.0.0 for Python 2)
- requests >= 2.0.0
extends_documentation_fragment:
- community.general.attributes
attributes:
@ -159,7 +159,6 @@ except ImportError:
HAS_REQUESTS = False
from ansible.module_utils.basic import AnsibleModule, missing_required_lib
from ansible.module_utils.six import PY3
from ansible.module_utils.common.text.converters import to_native
@ -168,7 +167,7 @@ def check_requests_dep(module):
if not HAS_REQUESTS:
module.fail_json(msg=missing_required_lib('requests'), exception=REQUESTS_IMP_ERR)
else:
required_version = '2.0.0' if PY3 else '1.0.0'
required_version = '2.0.0'
if LooseVersion(requests.__version__) < LooseVersion(required_version):
module.fail_json(msg="'requests' library version should be >= %s, found: %s." % (required_version, requests.__version__))

View file

@ -438,9 +438,9 @@ record:
"""
import json
from urllib.parse import urlencode
from ansible.module_utils.basic import AnsibleModule, env_fallback
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible.module_utils.common.text.converters import to_native, to_text
from ansible.module_utils.urls import fetch_url

View file

@ -71,9 +71,9 @@ RETURN = r"""
"""
import ssl
import xmlrpc.client as xmlrpc_client
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves import xmlrpc_client
from ansible.module_utils.common.text.converters import to_text
from ansible_collections.community.general.plugins.module_utils.datetime import (

View file

@ -148,10 +148,9 @@ system:
"""
import ssl
import xmlrpc.client as xmlrpc_client
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six import iteritems
from ansible.module_utils.six.moves import xmlrpc_client
from ansible.module_utils.common.text.converters import to_text
from ansible_collections.community.general.plugins.module_utils.datetime import (
@ -281,7 +280,7 @@ def main():
else:
system_id = conn.get_system_handle(name, token)
for key, value in iteritems(module.params['properties']):
for key, value in module.params['properties'].items():
if key not in system:
module.warn("Property '{0}' is not a valid system property.".format(key))
if system[key] != value:
@ -298,7 +297,7 @@ def main():
result['changed'] = True
if module.params['properties']:
for key, value in iteritems(module.params['properties']):
for key, value in module.params['properties'].items():
try:
conn.modify_system(system_id, key, value, token)
except Exception as e:
@ -307,8 +306,8 @@ def main():
# Add interface properties
interface_properties = dict()
if module.params['interfaces']:
for device, values in iteritems(module.params['interfaces']):
for key, value in iteritems(values):
for device, values in module.params['interfaces'].items():
for key, value in values.items():
if key == 'name':
continue
if key not in IFPROPS_MAPPING:

View file

@ -101,6 +101,7 @@ repo:
import stat
import os
import traceback
from urllib.error import HTTPError
try:
import dnf
@ -114,7 +115,6 @@ except ImportError:
HAS_DNF_PACKAGES = False
from ansible.module_utils.common import respawn
from ansible.module_utils.six.moves.urllib.error import HTTPError
from ansible.module_utils.basic import missing_required_lib
from ansible.module_utils import distro
from ansible.module_utils.basic import AnsibleModule

View file

@ -103,9 +103,9 @@ import re
import shlex
import sys
import tempfile
from shlex import quote as shlex_quote
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves import shlex_quote
class CronVarError(Exception):

View file

@ -50,8 +50,7 @@ options:
type: bool
default: false
requirements:
- Requires C(lzma) (standard library of Python 3) or L(backports.lzma, https://pypi.org/project/backports.lzma/) (Python
2) if using C(xz) format.
- Requires C(lzma) (standard library of Python 3) if using C(xz) format.
author:
- Stanislav Shamilov (@shamilovstas)
"""
@ -94,16 +93,12 @@ import os
import shutil
import tempfile
from ansible.module_utils import six
from ansible_collections.community.general.plugins.module_utils.mh.module_helper import ModuleHelper
from ansible.module_utils.common.text.converters import to_native, to_bytes
from ansible_collections.community.general.plugins.module_utils import deps
with deps.declare("lzma"):
if six.PY3:
import lzma
else:
from backports import lzma
import lzma
def lzma_decompress(src):
@ -111,10 +106,7 @@ def lzma_decompress(src):
def bz2_decompress(src):
if six.PY3:
return bz2.open(src, "rb")
else:
return bz2.BZ2File(src, "rb")
return bz2.open(src, "rb")
def gzip_decompress(src):

View file

@ -361,11 +361,10 @@ import hashlib
import hmac
import locale
from time import strftime, gmtime
from urllib.parse import urlencode
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.urls import fetch_url
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible.module_utils.six import string_types
class DME2(object):
@ -415,7 +414,7 @@ class DME2(object):
def query(self, resource, method, data=None):
url = self.baseurl + resource
if data and not isinstance(data, string_types):
if data and not isinstance(data, str):
data = urlencode(data)
response, info = fetch_url(self.module, url, data=data, method=method, headers=self._headers())

View file

@ -171,7 +171,8 @@ command:
sample: "/usr/bin/flatpak install --user --nontinteractive flathub org.gnome.Calculator"
"""
from ansible.module_utils.six.moves.urllib.parse import urlparse
from urllib.parse import urlparse
from ansible.module_utils.basic import AnsibleModule
from ansible_collections.community.general.plugins.module_utils.version import LooseVersion

View file

@ -64,8 +64,9 @@ EXAMPLES = r"""
message: 'deployed {{ target }}'
"""
from urllib.parse import urlencode
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible.module_utils.urls import fetch_url

View file

@ -181,7 +181,6 @@ import re
from ansible_collections.community.general.plugins.module_utils.homebrew import HomebrewValidate
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six import iteritems, string_types
# exceptions -------------------------------------------------------------- {{{
@ -224,7 +223,7 @@ class Homebrew(object):
return True
else:
return (
isinstance(state, string_types)
isinstance(state, str)
and state.lower() in (
'installed',
'upgraded',
@ -273,7 +272,7 @@ class Homebrew(object):
raise HomebrewException(self.message)
else:
if isinstance(path, string_types):
if isinstance(path, str):
self._path = path.split(':')
else:
self._path = path
@ -336,7 +335,7 @@ class Homebrew(object):
def _setup_instance_vars(self, **kwargs):
self.installed_packages = set()
self.outdated_packages = set()
for key, val in iteritems(kwargs):
for key, val in kwargs.items():
setattr(self, key, val)
def _prep(self):
@ -507,7 +506,7 @@ class Homebrew(object):
'update',
])
if rc == 0:
if out and isinstance(out, string_types):
if out and isinstance(out, str):
already_updated = any(
re.search(r'Already up-to-date.', s.strip(), re.IGNORECASE)
for s in out.split('\n')

View file

@ -158,7 +158,6 @@ from ansible_collections.community.general.plugins.module_utils.homebrew import
from ansible.module_utils.common.text.converters import to_bytes
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six import iteritems, string_types
# exceptions -------------------------------------------------------------- {{{
@ -201,7 +200,7 @@ class HomebrewCask(object):
return True
return (
isinstance(cask, string_types)
isinstance(cask, str)
and not cls.INVALID_CASK_REGEX.search(cask)
)
@ -217,7 +216,7 @@ class HomebrewCask(object):
return True
else:
return (
isinstance(state, string_types)
isinstance(state, str)
and state.lower() in (
'installed',
'absent',
@ -261,7 +260,7 @@ class HomebrewCask(object):
raise HomebrewCaskException(self.message)
else:
if isinstance(path, string_types):
if isinstance(path, str):
self._path = path.split(':')
else:
self._path = path
@ -348,7 +347,7 @@ class HomebrewCask(object):
self.message = ''
def _setup_instance_vars(self, **kwargs):
for key, val in iteritems(kwargs):
for key, val in kwargs.items():
setattr(self, key, val)
def _prep(self):
@ -488,7 +487,7 @@ class HomebrewCask(object):
'update',
])
if rc == 0:
if out and isinstance(out, string_types):
if out and isinstance(out, str):
already_updated = any(
re.search(r'Already up-to-date.', s.strip(), re.IGNORECASE)
for s in out.split('\n')

View file

@ -68,9 +68,9 @@ EXAMPLES = r"""
RETURN = """#"""
import traceback
from urllib.parse import urlencode
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible.module_utils.common.text.converters import to_native
from ansible.module_utils.urls import fetch_url

View file

@ -266,6 +266,7 @@ output:
import os
import traceback
from itertools import zip_longest
LXML_ETREE_IMP_ERR = None
try:
@ -284,7 +285,6 @@ except ImportError:
HAS_XMLJSON_COBRA = False
from ansible.module_utils.basic import AnsibleModule, missing_required_lib
from ansible.module_utils.six.moves import zip_longest
from ansible.module_utils.urls import fetch_url
from ansible_collections.community.general.plugins.module_utils.datetime import (

View file

@ -214,10 +214,8 @@ data:
"""
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.urls import fetch_url
from ansible.module_utils.six.moves.urllib.parse import urlencode
from urllib.parse import urlencode
USER_AGENT = 'ansible-community.general.ipbase_info/0.1.0'

View file

@ -205,12 +205,11 @@ cmd:
import os
import tempfile
import re
from urllib.parse import urlparse
from urllib.request import getproxies
# import module snippets
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves.urllib.parse import urlparse
from ansible.module_utils.six.moves.urllib.request import getproxies
def _get_keystore_type_keytool_parameters(keystore_type):

View file

@ -182,7 +182,6 @@ import os
import re
import tempfile
from ansible.module_utils.six import PY2
from ansible.module_utils.basic import AnsibleModule, missing_required_lib
from ansible.module_utils.common.text.converters import to_bytes, to_native
@ -509,8 +508,6 @@ def create_file(content):
def hex_decode(s):
if PY2:
return s.decode('hex')
return s.hex()

View file

@ -317,9 +317,9 @@ token_uuid:
returned: success
"""
from urllib.parse import urlencode
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.urls import fetch_url, basic_auth_header
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible_collections.community.general.plugins.module_utils import deps
import json

View file

@ -338,12 +338,11 @@ import os
import tempfile
import time
from collections import OrderedDict
from http import cookiejar
from urllib.parse import urlencode
from ansible.module_utils.basic import AnsibleModule, to_bytes
from ansible.module_utils.six.moves import http_cookiejar as cookiejar
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible.module_utils.urls import fetch_url, url_argument_spec, basic_auth_header
from ansible.module_utils.six import text_type, binary_type
from ansible.module_utils.common.text.converters import to_native
from ansible_collections.community.general.plugins.module_utils.jenkins import download_updates_file
@ -835,7 +834,7 @@ class JenkinsPlugin(object):
# Store the plugin into a temp file and then move it
tmp_f_fd, tmp_f = tempfile.mkstemp()
if isinstance(data, (text_type, binary_type)):
if isinstance(data, (str, bytes)):
os.write(tmp_f_fd, data)
else:
os.write(tmp_f_fd, data.read())

View file

@ -102,10 +102,10 @@ output:
"""
import json
from http import cookiejar
from urllib.parse import urlencode
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves import http_cookiejar as cookiejar
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible.module_utils.urls import fetch_url
from ansible.module_utils.common.text.converters import to_native

View file

@ -482,9 +482,9 @@ import os
import random
import string
import traceback
from urllib.request import pathname2url
from ansible_collections.community.general.plugins.module_utils.module_helper import StateModuleHelper, cause_changes
from ansible.module_utils.six.moves.urllib.request import pathname2url
from ansible.module_utils.common.text.converters import to_text, to_bytes, to_native
from ansible.module_utils.urls import fetch_url

View file

@ -131,7 +131,7 @@ end_state:
from ansible_collections.community.general.plugins.module_utils.identity.keycloak.keycloak import KeycloakAPI, camel, \
keycloak_argument_spec, get_token, KeycloakError
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves.urllib.parse import urlencode
from urllib.parse import urlencode
from copy import deepcopy

View file

@ -102,7 +102,7 @@ components:
from ansible_collections.community.general.plugins.module_utils.identity.keycloak.keycloak import KeycloakAPI, \
keycloak_argument_spec, get_token, KeycloakError
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves.urllib.parse import quote
from urllib.parse import quote
def main():

View file

@ -224,7 +224,7 @@ end_state:
from ansible_collections.community.general.plugins.module_utils.identity.keycloak.keycloak import KeycloakAPI, camel, \
keycloak_argument_spec, get_token, KeycloakError
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves.urllib.parse import urlencode
from urllib.parse import urlencode
from copy import deepcopy

View file

@ -721,7 +721,7 @@ end_state:
from ansible_collections.community.general.plugins.module_utils.identity.keycloak.keycloak import KeycloakAPI, camel, \
keycloak_argument_spec, get_token, KeycloakError
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves.urllib.parse import urlencode
from urllib.parse import urlencode
from copy import deepcopy

View file

@ -408,8 +408,8 @@ data:
from ansible_collections.community.general.plugins.module_utils.identity.keycloak.keycloak import KeycloakAPI, camel, \
keycloak_argument_spec, get_token, KeycloakError
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves.urllib.parse import urlencode
from copy import deepcopy
from urllib.parse import urlencode
import json

View file

@ -108,7 +108,6 @@ import traceback
from ansible.module_utils.basic import AnsibleModule, missing_required_lib
from ansible.module_utils.common.text.converters import to_bytes, to_native, to_text
from ansible.module_utils.six import binary_type, string_types, text_type
from ansible_collections.community.general.plugins.module_utils.ldap import LdapGeneric, gen_specs, ldap_required_together
LDAP_IMP_ERR = None
@ -147,8 +146,8 @@ def main():
def _normalize_string(val, convert_to_base64):
if isinstance(val, (string_types, binary_type)):
if isinstance(val, text_type):
if isinstance(val, (str, bytes)):
if isinstance(val, str):
val = to_bytes(val, encoding='utf-8')
if convert_to_base64:
val = to_text(base64.b64encode(val))

View file

@ -418,10 +418,10 @@ import copy
import datetime
import os
import time
from urllib.parse import urlencode
from ansible.module_utils.basic import AnsibleModule
from ansible_collections.community.general.plugins.module_utils.lxd import LXDClient, LXDClientException
from ansible.module_utils.six.moves.urllib.parse import urlencode
# LXD_ANSIBLE_STATES is a map of states that contain values of methods used
# when a particular state is evoked.

View file

@ -221,9 +221,10 @@ actions:
"""
import os
from urllib.parse import urlencode
from ansible.module_utils.basic import AnsibleModule
from ansible_collections.community.general.plugins.module_utils.lxd import LXDClient, LXDClientException
from ansible.module_utils.six.moves.urllib.parse import urlencode
# ANSIBLE_LXD_DEFAULT_URL is a default value of the lxd endpoint
ANSIBLE_LXD_DEFAULT_URL = 'unix:/var/lib/lxd/unix.socket'

View file

@ -227,7 +227,6 @@ from email.mime.text import MIMEText
from email.header import Header
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six import PY3
from ansible.module_utils.common.text.converters import to_native
@ -286,10 +285,7 @@ def main():
try:
if secure != 'never':
try:
if PY3:
smtp = smtplib.SMTP_SSL(host=host, port=port, local_hostname=local_hostname, timeout=timeout)
else:
smtp = smtplib.SMTP_SSL(local_hostname=local_hostname, timeout=timeout)
smtp = smtplib.SMTP_SSL(host=host, port=port, local_hostname=local_hostname, timeout=timeout)
code, smtpmessage = smtp.connect(host, port)
secure_state = True
except ssl.SSLError as e:
@ -300,10 +296,7 @@ def main():
pass
if not secure_state:
if PY3:
smtp = smtplib.SMTP(host=host, port=port, local_hostname=local_hostname, timeout=timeout)
else:
smtp = smtplib.SMTP(local_hostname=local_hostname, timeout=timeout)
smtp = smtplib.SMTP(host=host, port=port, local_hostname=local_hostname, timeout=timeout)
code, smtpmessage = smtp.connect(host, port)
except smtplib.SMTPException as e:

View file

@ -142,8 +142,7 @@ targets:
version_added: 7.2.0
"""
from ansible.module_utils.six import iteritems
from ansible.module_utils.six.moves import shlex_quote
from shlex import quote as shlex_quote
from ansible.module_utils.basic import AnsibleModule
@ -200,7 +199,7 @@ def main():
# Fall back to system make
make_path = module.get_bin_path('make', required=True)
if module.params['params'] is not None:
make_parameters = [k + (('=' + str(v)) if v is not None else '') for k, v in iteritems(module.params['params'])]
make_parameters = [k + (('=' + str(v)) if v is not None else '') for k, v in module.params['params'].items()]
else:
make_parameters = []

View file

@ -244,6 +244,7 @@ import re
from ansible.module_utils.ansible_release import __version__ as ansible_version
from re import match
from urllib.parse import urlparse
LXML_ETREE_IMP_ERR = None
try:
@ -271,7 +272,6 @@ except ImportError:
from ansible.module_utils.basic import AnsibleModule, missing_required_lib
from ansible.module_utils.six.moves.urllib.parse import urlparse
from ansible.module_utils.urls import fetch_url
from ansible.module_utils.common.text.converters import to_bytes, to_native, to_text

View file

@ -55,7 +55,6 @@ import re
from collections import namedtuple
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six import python_2_unicode_compatible
STATE_COMMAND_MAP = {
@ -70,7 +69,6 @@ MONIT_SERVICES = ['Process', 'File', 'Fifo', 'Filesystem', 'Directory', 'Remote
'Network']
@python_2_unicode_compatible
class StatusValue(namedtuple("Status", "value, is_pending")):
MISSING = 'missing'
OK = 'ok'

View file

@ -87,7 +87,7 @@ EXAMPLES = r"""
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.urls import fetch_url
from ansible.module_utils.six.moves.urllib.parse import quote
from urllib.parse import quote
import json
# ===========================================

View file

@ -69,8 +69,8 @@ EXAMPLES = r"""
delegate_to: localhost
"""
import json
from urllib.parse import urlencode
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.urls import fetch_url, url_argument_spec

View file

@ -165,10 +165,10 @@ operationStatusId:
sample: 2
"""
from urllib.parse import urljoin
from ansible.module_utils.basic import AnsibleModule
from ansible_collections.community.general.plugins.module_utils.ocapi_utils import OcapiUtils
from ansible.module_utils.common.text.converters import to_native
from ansible.module_utils.six.moves.urllib.parse import urljoin
# More will be added as module features are expanded
CATEGORY_COMMANDS_ALL = {

View file

@ -137,10 +137,11 @@ status:
}
"""
from urllib.parse import urljoin
from ansible.module_utils.basic import AnsibleModule
from ansible_collections.community.general.plugins.module_utils.ocapi_utils import OcapiUtils
from ansible.module_utils.common.text.converters import to_native
from ansible.module_utils.six.moves.urllib.parse import urljoin
# More will be added as module features are expanded
CATEGORY_COMMANDS_ALL = {

View file

@ -200,7 +200,6 @@ servers:
import os
import time
from ansible.module_utils.six.moves import xrange
from ansible.module_utils.basic import AnsibleModule
from ansible_collections.community.general.plugins.module_utils.oneandone import (
get_datacenter,
@ -576,7 +575,7 @@ def _auto_increment_hostname(count, hostname):
return [
hostname % i
for i in xrange(1, count + 1)
for i in range(1, count + 1)
]
@ -588,7 +587,7 @@ def _auto_increment_description(count, description):
if '%' in description:
return [
description % i
for i in xrange(1, count + 1)
for i in range(1, count + 1)
]
else:
return [description] * count

View file

@ -138,7 +138,6 @@ from datetime import datetime
import re
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six import binary_type, text_type
# exceptions --------------------------------------------------------------- {{{
@ -200,7 +199,7 @@ class OSXDefaults(object):
if data_type == "string":
return str(value)
elif data_type in ["bool", "boolean"]:
if isinstance(value, (binary_type, text_type)):
if isinstance(value, (bytes, str)):
value = value.lower()
if value in [True, 1, "true", "1", "yes"]:
return True

View file

@ -112,6 +112,7 @@ RETURN = r"""
"""
import time
from urllib.parse import quote_plus
try:
import ovh
@ -122,7 +123,6 @@ except ImportError:
HAS_OVH = False
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves.urllib.parse import quote_plus
def getOvhClient(ansibleModule):

View file

@ -218,8 +218,8 @@ import json
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.urls import fetch_url
from ansible.module_utils.six.moves.urllib.parse import urlparse, urlencode, urlunparse
from datetime import datetime
from urllib.parse import urlparse, urlencode, urlunparse
def check(module, name, state, service_id, integration_key, api_key, incident_key=None, http_call=fetch_url):

View file

@ -65,7 +65,6 @@ import abc
import re
from os.path import basename
from ansible.module_utils import six
from ansible.module_utils.basic import AnsibleModule
from ansible_collections.community.general.plugins.module_utils import deps
from ansible.module_utils.common.text.converters import to_native
@ -80,8 +79,7 @@ class PSAdapterError(Exception):
pass
@six.add_metaclass(abc.ABCMeta)
class PSAdapter(object):
class PSAdapter(object, metaclass=abc.ABCMeta):
NAME_ATTRS = ('name', 'cmdline')
PATTERN_ATTRS = ('name', 'exe', 'cmdline')

View file

@ -64,8 +64,8 @@ EXAMPLES = r"""
import re
from shlex import quote as shlex_quote
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves import shlex_quote
def query_package(module, name):

View file

@ -87,8 +87,8 @@ EXAMPLES = r"""
delegate_to: localhost
"""
from urllib.parse import urlencode
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible.module_utils.urls import fetch_url

View file

@ -270,6 +270,7 @@ subscribed_pool_ids:
from os.path import isfile
from os import getuid, unlink
import configparser
import re
import shutil
import tempfile
@ -277,7 +278,6 @@ import json
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.common.text.converters import to_native
from ansible.module_utils.six.moves import configparser
from ansible.module_utils import distro

View file

@ -83,10 +83,11 @@ EXAMPLES = r"""
revision: "{{ lookup('pipe', 'git rev-parse HEAD') }}"
user: "{{ lookup('env', 'USER') }}"
"""
import traceback
from urllib.parse import urlencode
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible.module_utils.common.text.converters import to_native
from ansible.module_utils.urls import fetch_url

View file

@ -128,8 +128,8 @@ executions:
]
"""
from urllib.parse import quote
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves.urllib.parse import quote
from ansible_collections.community.general.plugins.module_utils.rundeck import (
api_argument_spec,
api_request

View file

@ -180,9 +180,9 @@ execution_info:
# Modules import
from datetime import datetime, timedelta
from time import sleep
from urllib.parse import quote
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves.urllib.parse import quote
from ansible_collections.community.general.plugins.module_utils.rundeck import (
api_argument_spec,
api_request

View file

@ -125,6 +125,7 @@ EXAMPLES = r"""
#
import os
import traceback
from urllib.parse import urlencode
from ansible_collections.community.general.plugins.module_utils.version import LooseVersion
@ -137,7 +138,6 @@ except ImportError:
HAS_SENDGRID = False
from ansible.module_utils.basic import AnsibleModule, missing_required_lib
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible.module_utils.common.text.converters import to_bytes
from ansible.module_utils.urls import fetch_url

View file

@ -286,7 +286,6 @@ except ImportError:
HAS_SL = False
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six import string_types
# TODO: get this info from API
@ -374,7 +373,7 @@ def cancel_instance(module):
canceled = True
if module.params.get('instance_id') is None and (module.params.get('tags') or module.params.get('hostname') or module.params.get('domain')):
tags = module.params.get('tags')
if isinstance(tags, string_types):
if isinstance(tags, str):
tags = [module.params.get('tags')]
instances = vsManager.list_instances(tags=tags, hostname=module.params.get('hostname'), domain=module.params.get('domain'))
for instance in instances:

View file

@ -266,8 +266,8 @@ EXAMPLES = r"""
import re
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible.module_utils.urls import fetch_url
from urllib.parse import urlencode
OLD_SLACK_INCOMING_WEBHOOK = 'https://%s/services/hooks/incoming-webhook?token=%s'
SLACK_INCOMING_WEBHOOK = 'https://hooks.%s/services/%s'

View file

@ -145,7 +145,7 @@ changed_attrs:
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.common.text.converters import to_native
from ansible.module_utils.urls import fetch_url
from ansible.module_utils.six.moves.urllib.parse import quote
from urllib.parse import quote
import json
import re
import xml.etree.ElementTree as ET

View file

@ -225,7 +225,6 @@ from copy import deepcopy
from ansible.module_utils.basic import AnsibleModule, 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.general.plugins.module_utils._stormssh import ConfigParser, HAS_PARAMIKO, PARAMIKO_IMPORT_ERROR
from ansible_collections.community.general.plugins.module_utils.ssh import determine_config_file
@ -301,7 +300,7 @@ class SSHConfig(object):
if key.lower() != key:
self.module.fail_json(msg="The other_options key {key!r} must be lower case".format(key=key))
if key not in args:
if not isinstance(value, string_types):
if not isinstance(value, str):
self.module.fail_json(msg="The other_options value provided for key {key!r} must be a string, got {type}".format(key=key,
type=type(value)))
args[key] = value

View file

@ -121,7 +121,7 @@ EXAMPLES = r"""
import json
from ansible.module_utils.basic import AnsibleModule, env_fallback
from ansible.module_utils.six.moves.urllib.parse import urlencode
from urllib.parse import urlencode
from ansible.module_utils.urls import fetch_url

View file

@ -84,10 +84,10 @@ telegram_error:
"""
import json
from urllib.parse import quote
from ansible.module_utils.basic import AnsibleModule
# noinspection PyUnresolvedReferences
from ansible.module_utils.six.moves.urllib.parse import quote
from ansible.module_utils.urls import fetch_url

View file

@ -281,8 +281,7 @@ command:
import os
import json
import tempfile
from ansible.module_utils.six.moves import shlex_quote
from ansible.module_utils.six import integer_types
from shlex import quote as shlex_quote
from ansible.module_utils.basic import AnsibleModule
@ -599,11 +598,11 @@ def main():
ret_out.append('{0}={{{1}}}'.format(k, process_complex_args(v)))
elif isinstance(v, list):
ret_out.append("{0}={1}".format(k, process_complex_args(v)))
elif isinstance(v, (integer_types, float, str, bool)):
elif isinstance(v, (int, float, str, bool)):
ret_out.append('{0}={1}'.format(k, format_args(v)))
else:
# only to handle anything unforeseen
module.fail_json(msg="Supported types are, dictionaries, lists, strings, integer_types, boolean and float.")
module.fail_json(msg="Supported types are, dictionaries, lists, strings, integers, boolean and float.")
if isinstance(vars, list):
l_out = []
for item in vars:
@ -611,11 +610,11 @@ def main():
l_out.append("{{{0}}}".format(process_complex_args(item)))
elif isinstance(item, list):
l_out.append("{0}".format(process_complex_args(item)))
elif isinstance(item, (str, integer_types, float, bool)):
elif isinstance(item, (str, int, float, bool)):
l_out.append(format_args(item))
else:
# only to handle anything unforeseen
module.fail_json(msg="Supported types are, dictionaries, lists, strings, integer_types, boolean and float.")
module.fail_json(msg="Supported types are, dictionaries, lists, strings, integers, boolean and float.")
ret_out.append("[{0}]".format(",".join(l_out)))
return ",".join(ret_out)

View file

@ -71,7 +71,6 @@ import string
import filecmp
from ansible.module_utils.basic import AnsibleModule, get_distribution
from ansible.module_utils.six import iteritems
class Timezone(object):
@ -189,7 +188,7 @@ class Timezone(object):
`--diff` option of ansible-playbook.
"""
diff = {phase1: {}, phase2: {}}
for key, value in iteritems(self.value):
for key, value in self.value.items():
diff[phase1][key] = value[phase1]
diff[phase2][key] = value[phase2]
return diff
@ -205,12 +204,12 @@ class Timezone(object):
"""
if phase == 'planned':
return
for key, value in iteritems(self.value):
for key, value in self.value.items():
value[phase] = self.get(key, phase)
def change(self):
"""Make the changes effect based on `self.value`."""
for key, value in iteritems(self.value):
for key, value in self.value.items():
if value['before'] != value['planned']:
self.set(key, value['planned'])

View file

@ -107,8 +107,8 @@ EXAMPLES = r"""
# =======================================
# twilio module support methods
#
from urllib.parse import urlencode
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible.module_utils.urls import fetch_url

View file

@ -58,9 +58,9 @@ EXAMPLES = r"""
"""
import json
from urllib.parse import urlencode
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible.module_utils.urls import fetch_url, ConnectionError

View file

@ -57,9 +57,9 @@ EXAMPLES = r"""
"""
import json
from urllib.parse import urlencode
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six.moves.urllib.parse import urlencode
from ansible.module_utils.urls import fetch_url
from ansible.module_utils.common.text.converters import to_text

View file

@ -542,7 +542,6 @@ except ImportError:
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.common.network import is_mac
from ansible.module_utils import six
from ansible_collections.community.general.plugins.module_utils.xenserver import (
xenserver_common_argument_spec, XenServerObject, get_object_ref,
gather_vm_params, gather_vm_facts, set_vm_power_state,
@ -714,7 +713,7 @@ class XenServerVM(XenServerObject):
try:
for change in config_changes:
if isinstance(change, six.string_types):
if isinstance(change, str):
if change == "name":
self.xapi_session.xenapi.VM.set_name_label(self.vm_ref, self.module.params['name'])
elif change == "name_desc":

View file

@ -361,6 +361,7 @@ import os
import re
import traceback
from collections.abc import MutableMapping
from io import BytesIO
from ansible_collections.community.general.plugins.module_utils.version import LooseVersion
@ -374,8 +375,6 @@ except ImportError:
HAS_LXML = False
from ansible.module_utils.basic import AnsibleModule, json_dict_bytes_to_unicode, missing_required_lib
from ansible.module_utils.six import iteritems, string_types
from ansible.module_utils.six.moves.collections_abc import MutableMapping
from ansible.module_utils.common.text.converters import to_bytes, to_native
_IDENT = r"[a-zA-Z-][a-zA-Z0-9_\-\.]*"
@ -746,13 +745,13 @@ def child_to_element(module, child, in_type):
except etree.XMLSyntaxError as e:
module.fail_json(msg="Error while parsing child element: %s" % e)
elif in_type == 'yaml':
if isinstance(child, string_types):
if isinstance(child, str):
return etree.Element(child)
elif isinstance(child, MutableMapping):
if len(child) > 1:
module.fail_json(msg="Can only create children from hashes with one key")
(key, value) = next(iteritems(child))
(key, value) = list(child.items())[0]
if isinstance(value, MutableMapping):
children = value.pop('_', None)
child_value = value.pop('+value', None)

View file

@ -116,7 +116,6 @@ parsable:
from collections import defaultdict
from ansible.module_utils.six import iteritems
from ansible.module_utils.basic import AnsibleModule
@ -152,7 +151,7 @@ class ZPoolFacts(object):
self._pools[pool].update({prop: value})
for k, v in iteritems(self._pools):
for k, v in self._pools.items():
v.update({'name': k})
self.facts.append(v)

View file

@ -126,6 +126,7 @@ EXAMPLES = r"""
runrefresh: true
"""
import configparser
import traceback
XML_IMP_ERR = None
@ -140,9 +141,7 @@ from ansible.module_utils.basic import AnsibleModule, missing_required_lib
from ansible.module_utils.urls import fetch_url
from ansible.module_utils.common.text.converters import to_text
from ansible.module_utils.six import PY3
from ansible.module_utils.six.moves import configparser, StringIO
from io import open
from io import StringIO, open
from ansible_collections.community.general.plugins.module_utils.version import LooseVersion
@ -408,10 +407,7 @@ def main():
repofile = configparser.ConfigParser()
try:
if PY3:
repofile.read_file(StringIO(repofile_text))
else:
repofile.readfp(StringIO(repofile_text))
repofile.read_file(StringIO(repofile_text))
except configparser.Error:
module.fail_json(msg='Invalid format, .repo file could not be parsed')