Skip to content

in_timezone on PyPy env causes RecursionError #361

Description

@anyat8

Hi!
I am running on PyPy 7.1.0 (same happens on PyPy 6.0.0).

now_string = pendulum.now().isoformat()
now_pendulum = pendulum.parse(now_string)
now_pendulum.in_timezone('UTC')

Causes RecursionError (on CPython works fine).

...
...
...
  File "/Users/user1/anaconda/envs/pypy/site-packages/pendulum/datetime.py", line 1442, in __add__
    return self._add_timedelta(other)
  File "/Users/user1/anaconda/envs/pypy/site-packages/pendulum/datetime.py", line 750, in _add_timedelta
    return self.add(seconds=delta.total_seconds())
  File "/Users/user1/anaconda/envs/pypy/site-packages/pendulum/datetime.py", line 660, in add
    dt = self.tz.convert(dt)
  File "/Users/user1/anaconda/envs/pypy/site-packages/pendulum/tz/timezone.py", line 66, in convert
    return self._convert(dt)
  File "/Users/user1/anaconda/envs/pypy/site-packages/pendulum/tz/timezone.py", line 334, in _convert
    return dt.astimezone(self)
  File "/Users/user1/anaconda/envs/pypy/site-packages/pendulum/datetime.py", line 1466, in astimezone
    return pendulum.instance(super(DateTime, self).astimezone(tz))
  File "/Users/user1/anaconda/envs/pypy/lib-python/3/datetime.py", line 1548, in astimezone
    utc = (self - myoffset).replace(tzinfo=tz)
  File "/Users/user1/anaconda/envs/pypy/site-packages/pendulum/datetime.py", line 1397, in __sub__
    return self._subtract_timedelta(other)
  File "/Users/user1/anaconda/envs/pypy/site-packages/pendulum/datetime.py", line 774, in _subtract_timedelta
    days=delta.days, seconds=delta.seconds, microseconds=delta.microseconds
  File "/Users/user1/anaconda/envs/pypy/site-packages/pendulum/datetime.py", line 722, in subtract
    microseconds=-microseconds,
  File "/Users/user1/anaconda/envs/pypy/site-packages/pendulum/datetime.py", line 621, in add
    offset = self.utcoffset()
  File "/Users/user1/anaconda/envs/pypy/lib-python/3/datetime.py", line 1625, in utcoffset
    _check_utc_offset("utcoffset", offset)
  File "/Users/user1/anaconda/envs/pypy/lib-python/3/datetime.py", line 236, in _check_utc_offset
    assert name in ("utcoffset", "dst")
RecursionError: maximum recursion depth exceeded

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions