Skip to content

in_timezone on PyPy env causes RecursionError #361

@anyat8

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions