The zoneinfo module
It has been a while since I needed to explicitly handle timezone information in a python project.
Since then Python 3.9 introduced a module called zoneinfo which has been added to the standard library.
Put simply daylight savings time is a nightmare because of all the edge cases that it introduces. Naive datetime objects that do not have a timezone attached to them end up running into a bunch of potential edge case bugs. I've wrote about some of the complexities of timezone handling code in posts with the timezone tag.
These newer features handles a bunch of things that used to be annoyances without having to install 3rd party libraries. In particular PEP 615, adds support for the IANA Time Zone database in the standard library. This is the zoneinfo module. Additionally there's better support for daylight savings transitions since Python 3.6, see PEP 495 for a discussion of "folding". Specifically when a clock is turned backwards there will be more than one point in time where the local "wall clock" time is the same. This means that just using the naive local time will be ambiguous when there are timezone transitions. The previously mentioned features give you much more power to handle this edge case and now you don't need a 3rd party library to do so (although you may opt to use a favored 3rd party library that does this).