| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| import sys |
| import os |
| import errno |
| import socket |
| import warnings |
|
|
| from boto3.exceptions import PythonDeprecationWarning |
|
|
| from s3transfer.manager import TransferConfig |
|
|
| |
| |
| |
| |
| SOCKET_ERROR = ConnectionError |
|
|
| _APPEND_MODE_CHAR = 'a' |
|
|
| import collections.abc as collections_abc |
|
|
|
|
| TRANSFER_CONFIG_SUPPORTS_CRT = hasattr(TransferConfig, 'UNSET_DEFAULT') |
|
|
|
|
| if sys.platform.startswith('win'): |
| def rename_file(current_filename, new_filename): |
| try: |
| os.remove(new_filename) |
| except OSError as e: |
| if not e.errno == errno.ENOENT: |
| |
| |
| |
| |
| raise |
| os.rename(current_filename, new_filename) |
| else: |
| rename_file = os.rename |
|
|
|
|
| def filter_python_deprecation_warnings(): |
| """ |
| Invoking this filter acknowledges your runtime will soon be deprecated |
| at which time you will stop receiving all updates to your client. |
| """ |
| warnings.filterwarnings( |
| 'ignore', |
| message=".*Boto3 will no longer support Python.*", |
| category=PythonDeprecationWarning, |
| module=r".*boto3\.compat" |
| ) |
|
|
|
|
| def _warn_deprecated_python(): |
| """Use this template for future deprecation campaigns as needed.""" |
| py_39_params = { |
| 'date': 'April 29, 2026', |
| 'blog_link': ( |
| 'https://aws.amazon.com/blogs/developer/' |
| 'python-support-policy-updates-for-aws-sdks-and-tools/' |
| ) |
| } |
| deprecated_versions = { |
| |
| (3, 9): py_39_params, |
| } |
| py_version = sys.version_info[:2] |
|
|
| if py_version in deprecated_versions: |
| params = deprecated_versions[py_version] |
| warning = ( |
| "Boto3 will no longer support Python {}.{} " |
| "starting {}. To continue receiving service updates, " |
| "bug fixes, and security updates please upgrade to Python 3.10 or " |
| "later. More information can be found here: {}" |
| ).format(py_version[0], py_version[1], params['date'], params['blog_link']) |
| warnings.warn(warning, PythonDeprecationWarning) |
|
|
|
|
| def is_append_mode(fileobj): |
| return ( |
| hasattr(fileobj, 'mode') and |
| isinstance(fileobj.mode, str) and |
| _APPEND_MODE_CHAR in fileobj.mode |
| ) |
|
|