module_utils: remove deprecated compat.datetime APIs (#86018)

Fixes: #86000

Signed-off-by: Abhijeet Kasurde <Akasurde@redhat.com>
pull/86045/head
Abhijeet Kasurde 1 month ago committed by GitHub
parent 9a350ff104
commit 367de4498b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1,3 @@
---
removed_features:
- compat.datetime - removed deprecated datetime compat APIs (https://github.com/ansible/ansible/issues/86000).

@ -1,50 +0,0 @@
# Copyright (c) 2023 Ansible
# Simplified BSD License (see licenses/simplified_bsd.txt or https://opensource.org/licenses/BSD-2-Clause)
from __future__ import annotations
import datetime as _datetime
import typing as t
from ansible.module_utils.common.warnings import deprecate
_UTC = _datetime.timezone.utc
def _utcfromtimestamp(timestamp: float) -> _datetime.datetime:
"""Construct an aware UTC datetime from a POSIX timestamp."""
return _datetime.datetime.fromtimestamp(timestamp, _UTC)
def _utcnow() -> _datetime.datetime:
"""Construct an aware UTC datetime from time.time()."""
return _datetime.datetime.now(_UTC)
_deprecated_shims_map: dict[str, t.Callable[..., object] | _datetime.timezone] = {
'UTC': _UTC,
'utcfromtimestamp': _utcfromtimestamp,
'utcnow': _utcnow,
}
__all__ = tuple(_deprecated_shims_map)
def __getattr__(importable_name: str) -> t.Callable[..., object] | _datetime.timezone:
"""Inject import-time deprecation warnings.
Specifically, for ``UTC``, ``utcfromtimestamp()`` and ``utcnow()``.
"""
try:
importable = _deprecated_shims_map[importable_name]
except KeyError as key_err:
raise AttributeError(f"module {__name__!r} has no attribute {key_err}") from None
deprecate(
msg=f'The `ansible.module_utils.compat.datetime.{importable_name}` '
'function is deprecated.',
version='2.21',
)
return importable

@ -236,7 +236,6 @@ test/integration/targets/ansible-test-sanity-pylint/deprecated_thing.py pylint:a
lib/ansible/module_utils/basic.py pylint:ansible-deprecated-version # TODO: 2.21
lib/ansible/module_utils/basic.py pylint:ansible-deprecated-version-comment # TODO: 2.21
lib/ansible/module_utils/common/validation.py pylint:ansible-deprecated-version # TODO: 2.21
lib/ansible/module_utils/compat/datetime.py pylint:ansible-deprecated-version # TODO: 2.21
lib/ansible/module_utils/compat/paramiko.py pylint:ansible-deprecated-version # TODO: 2.21
lib/ansible/plugins/connection/paramiko_ssh.py pylint:ansible-deprecated-version # TODO: 2.21
lib/ansible/plugins/strategy/__init__.py pylint:ansible-deprecated-version # TODO: 2.21

Loading…
Cancel
Save