boto / boto3

AWS SDK for Python
https://aws.amazon.com/sdk-for-python/
Apache License 2.0
8.84k stars 1.84k forks source link

Boto3 UTC DeprecationWarnings #3889

Open BookWorm0 opened 9 months ago

BookWorm0 commented 9 months ago

Describe the bug

Running the attached script under Python 3.12 with Python flag -Wa produces DepricationWarnings. bug.txt

Expected Behavior

No warnings should be issued.

Current Behavior

For "import boto3", the warning is: dateutil\tz\tz.py:37: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC). EPOCH = datetime.datetime.utcfromtimestamp(0)

For s3client.list_objects, the warning is: botocore\auth.py:419: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). datetime_now = datetime.datetime.utcnow()

Reproduction Steps

Rename the script from bug.txt to bug.py.

Run the script as follows from CMD.EXE: py -Wa bug.py BUCKETNAME

where BUCKETNAME identifies an S3 bucket to which you are authorized to access.

Possible Solution

Boto source code should be modified as suggested in the warnings.

Additional Information/Context

No response

SDK version used

boto3-1.28.61 botocore-1.31.61

Environment details (OS name and version, etc.)

Windows 10 Pro Version 10.0.19045 Build 19045; Python 3.12.0

tim-finnigan commented 9 months ago

Hi @BookWorm0 thanks for reaching out. The team is aware of this issue and working on addressing the warnings. These deprecations won't cause impact currently beyond the warnings. The required changes are not fully backwards compatible for existing usage. We'll be prioritizing a more robust fix in an upcoming release.

kfrydel commented 8 months ago

@tim-finnigan Thank you very much!

StevenMapes commented 7 months ago

Any update on this as the warnings break my CI/CD flow unless I turn off error::DeprecationWarning which I really don't want to

alex-morgun commented 1 week ago

Add pytest decorator to affected tests, if you use pytest @pytest.mark.filterwarnings("ignore:datetime.datetime.utcnow")