Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix RecursionError when adding to a DateTime with a FixedTimezone (#431)
This seems to have been caused by `bpo-32417`. Before that change, adding a timedelta to a date/datetime subclass would always return an instance of date/datetime instead of the subclass. After the change, the subclass is preserved. The RecursionError was caused by adding a timedelta to a DateTime. Doing this uses the `convert` method of the DateTime's timezone to convert the new DateTime into the correct timezone. In the case of FixedTimezones, this requires adding the UTC offset of the timezone (a timedelta) to the DateTime, causing the recursion. Before bpo-32417, the subclass of the DateTime was dropped while calling `astimezone`. This meant that the object that was passed into `fromutc` by `astimezone` was a stdlib datetime, not a Pendulum DateTime. Calling the stdlib datetime's add function would then do the addition and return the result (which would then be upconverted back into a Pendulum DateTime instance). Now, due to the subclass being preserved, the Pendulum DateTime's add function is being called instead, causing the recursion. This commit fixes the RecursionError by always using the stdlib datetime's addition function to add the offset to the DateTime when calling fromutc. bpo-32417: https://bugs.python.org/issue32417 commit: python/cpython@89427cd Fixes #422
- Loading branch information
e4cbd28
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sdispater Any plan for new release for this bug? This bug block us from upgrading to Python 3.8, so it would be nice for us to release new version of pendulum.