summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--changelogs/fragments/compat_removal.yml3
-rw-r--r--lib/ansible/module_utils/basic.py8
-rw-r--r--lib/ansible/module_utils/compat/importlib.py26
-rw-r--r--lib/ansible/module_utils/pycompat24.py73
-rw-r--r--test/sanity/ignore.txt4
-rw-r--r--test/units/executor/module_common/test_recursive_finder.py21
6 files changed, 8 insertions, 127 deletions
diff --git a/changelogs/fragments/compat_removal.yml b/changelogs/fragments/compat_removal.yml
new file mode 100644
index 0000000000..86da5d9933
--- /dev/null
+++ b/changelogs/fragments/compat_removal.yml
@@ -0,0 +1,3 @@
+---
+removed_features:
+ - removed deprecated pycompat24 and compat.importlib.
diff --git a/lib/ansible/module_utils/basic.py b/lib/ansible/module_utils/basic.py
index d3420c0980..41ae6288c5 100644
--- a/lib/ansible/module_utils/basic.py
+++ b/lib/ansible/module_utils/basic.py
@@ -2066,13 +2066,7 @@ def get_module_path():
def __getattr__(importable_name):
"""Inject import-time deprecation warnings."""
- if importable_name == 'get_exception':
- from ansible.module_utils.pycompat24 import get_exception
- importable = get_exception
- elif importable_name in {'literal_eval', '_literal_eval'}:
- from ast import literal_eval
- importable = literal_eval
- elif importable_name == 'datetime':
+ if importable_name == 'datetime':
import datetime
importable = datetime
elif importable_name == 'signal':
diff --git a/lib/ansible/module_utils/compat/importlib.py b/lib/ansible/module_utils/compat/importlib.py
deleted file mode 100644
index 4074f3733d..0000000000
--- a/lib/ansible/module_utils/compat/importlib.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) 2020 Matt Martz <matt@sivel.net>
-# Simplified BSD License (see licenses/simplified_bsd.txt or https://opensource.org/licenses/BSD-2-Clause)
-
-from __future__ import annotations
-
-from ansible.module_utils.common.warnings import deprecate
-
-
-def __getattr__(importable_name):
- """Inject import-time deprecation warnings.
-
- Specifically, for ``import_module()``.
- """
- if importable_name == 'import_module':
- deprecate(
- msg=f'The `ansible.module_utils.compat.importlib.'
- f'{importable_name}` function is deprecated.',
- version='2.19',
- )
- from importlib import import_module
- return import_module
-
- raise AttributeError(
- f'cannot import name {importable_name !r} '
- f'has no attribute ({__file__ !s})',
- )
diff --git a/lib/ansible/module_utils/pycompat24.py b/lib/ansible/module_utils/pycompat24.py
deleted file mode 100644
index 27d61485b2..0000000000
--- a/lib/ansible/module_utils/pycompat24.py
+++ /dev/null
@@ -1,73 +0,0 @@
-# This code is part of Ansible, but is an independent component.
-# This particular file snippet, and this file snippet only, is BSD licensed.
-# Modules you write using this snippet, which is embedded dynamically by Ansible
-# still belong to the author of the module, and may assign their own license
-# to the complete work.
-#
-# Copyright (c) 2016, Toshio Kuratomi <tkuratomi@ansible.com>
-# Copyright (c) 2015, Marius Gedminas
-#
-# Redistribution and use in source and binary forms, with or without modification,
-# are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-from __future__ import annotations
-
-import sys
-
-from ansible.module_utils.common.warnings import deprecate
-
-
-def get_exception():
- """Get the current exception.
-
- This code needs to work on Python 2.4 through 3.x, so we cannot use
- "except Exception, e:" (SyntaxError on Python 3.x) nor
- "except Exception as e:" (SyntaxError on Python 2.4-2.5).
- Instead we must use ::
-
- except Exception:
- e = get_exception()
-
- """
- deprecate(
- msg='The `ansible.module_utils.pycompat24.get_exception` '
- 'function is deprecated.',
- version='2.19',
- )
- return sys.exc_info()[1]
-
-
-def __getattr__(importable_name):
- """Inject import-time deprecation warning for ``literal_eval()``."""
- if importable_name == 'literal_eval':
- deprecate(
- msg=f'The `ansible.module_utils.pycompat24.'
- f'{importable_name}` function is deprecated.',
- version='2.19',
- )
- from ast import literal_eval
- return literal_eval
-
- raise AttributeError(
- f'cannot import name {importable_name !r} '
- f'has no attribute ({__file__ !s})',
- )
-
-
-__all__ = ('get_exception', 'literal_eval') # pylint: disable=undefined-all-variable
diff --git a/test/sanity/ignore.txt b/test/sanity/ignore.txt
index 4ec1539100..2466a64221 100644
--- a/test/sanity/ignore.txt
+++ b/test/sanity/ignore.txt
@@ -28,7 +28,6 @@ lib/ansible/modules/systemd_service.py validate-modules:parameter-invalid
lib/ansible/modules/uri.py validate-modules:doc-required-mismatch
lib/ansible/modules/user.py validate-modules:doc-default-does-not-match-spec
lib/ansible/modules/user.py validate-modules:use-run-command-not-popen
-lib/ansible/module_utils/basic.py no-get-exception # only referenced in deprecation code
lib/ansible/module_utils/basic.py pylint:unused-import # deferring resolution to allow enabling the rule now
lib/ansible/module_utils/compat/selinux.py import-3.8!skip # pass/fail depends on presence of libselinux.so
lib/ansible/module_utils/compat/selinux.py import-3.9!skip # pass/fail depends on presence of libselinux.so
@@ -46,7 +45,6 @@ lib/ansible/module_utils/powershell/Ansible.ModuleUtils.FileUtil.psm1 pslint:PSP
lib/ansible/module_utils/powershell/Ansible.ModuleUtils.Legacy.psm1 pslint:PSCustomUseLiteralPath
lib/ansible/module_utils/powershell/Ansible.ModuleUtils.Legacy.psm1 pslint:PSUseApprovedVerbs
lib/ansible/module_utils/powershell/Ansible.ModuleUtils.LinkUtil.psm1 pslint:PSUseApprovedVerbs
-lib/ansible/module_utils/pycompat24.py no-get-exception
lib/ansible/module_utils/six/__init__.py pylint:self-assigning-variable
lib/ansible/module_utils/six/__init__.py pylint:trailing-comma-tuple
lib/ansible/module_utils/six/__init__.py pylint:unidiomatic-typecheck
@@ -157,8 +155,6 @@ lib/ansible/modules/user.py pylint:used-before-assignment
lib/ansible/plugins/action/copy.py pylint:undefined-variable
test/integration/targets/module_utils/library/test_optional.py pylint:used-before-assignment
test/support/windows-integration/plugins/action/win_copy.py pylint:undefined-variable
-lib/ansible/module_utils/compat/importlib.py pylint:ansible-deprecated-version
-lib/ansible/module_utils/pycompat24.py pylint:ansible-deprecated-version
lib/ansible/plugins/connection/__init__.py pylint:ansible-deprecated-version
lib/ansible/plugins/filter/core.py pylint:ansible-deprecated-version
lib/ansible/vars/manager.py pylint:ansible-deprecated-version
diff --git a/test/units/executor/module_common/test_recursive_finder.py b/test/units/executor/module_common/test_recursive_finder.py
index 92d7c206e0..c44edcf3e9 100644
--- a/test/units/executor/module_common/test_recursive_finder.py
+++ b/test/units/executor/module_common/test_recursive_finder.py
@@ -1,20 +1,8 @@
-# (c) 2017, Toshio Kuratomi <tkuratomi@ansible.com>
-#
-# This file is part of Ansible
-#
-# Ansible is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# Ansible is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
+# -*- coding: utf-8 -*-
+# Copyright: (c) 2017, Toshio Kuratomi <tkuratomi@ansible.com>
+# Copyright: Contributors to the Ansible project
+# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import annotations
import os
@@ -62,7 +50,6 @@ MODULE_UTILS_BASIC_FILES = frozenset(('ansible/__init__.py',
'ansible/module_utils/errors.py',
'ansible/module_utils/parsing/__init__.py',
'ansible/module_utils/parsing/convert_bool.py',
- 'ansible/module_utils/pycompat24.py',
'ansible/module_utils/six/__init__.py',
))