twilio / twilio-python

A Python module for communicating with the Twilio API and generating TwiML.
MIT License
1.84k stars 703 forks source link

chore: Drop dependency on `pytz` by using stdlib `datetime.timezone.utc` #721

Closed Zac-HD closed 11 months ago

Zac-HD commented 1 year ago

This PR fixes #720, by replacing each use of pytz.utc with the standard-library datetime.timezone.utc object. This is only detectable by introspecting twilio.base.deserialize.iso8601_datetime("2023-08-24T12:34:56Z").tzinfo.__class__, but from the docs that function isn't even part of the public API. Overall I think it's fair to say that users won't be able to tell any difference at all, aside from having slightly fewer dependencies to manage!

While making this change I noticed that there were a few functions annotated as -> Optional[...] which could never return None, so I've also included a commit removing the redundant part of the annotation.

Zac-HD commented 11 months ago

Thanks @kridai @AsabuHere! I'm unreasonably excited for such a small change 😅