Repository navigation
Open
Milestone
Description
- I am on the latest Pendulum version.
- I have searched the issues of this repo and believe that this is not a duplicate.
- Fedora 40:
- 3.0.0
Issue
An exception is raised when parsing specific date times.
Current date time on my machine, in case that is relevant.
>>> pendulum.now()
DateTime(2024, 8, 29, 16, 46, 14, 16970, tzinfo=Timezone('Europe/London'))
Example of the bad case:
>>> pendulum.parse('Tue, 02 Mar 2024 06:00:00 GMT', tz="UTC", strict=False)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/sam/flexget.venv/lib64/python3.12/site-packages/pendulum/parser.py", line 30, in parse
return _parse(text, **options)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/sam/flexget.venv/lib64/python3.12/site-packages/pendulum/parser.py", line 46, in _parse
return pendulum.datetime(
^^^^^^^^^^^^^^^^^^
File "/home/sam/flexget.venv/lib64/python3.12/site-packages/pendulum/__init__.py", line 143, in datetime
return DateTime.create(
^^^^^^^^^^^^^^^^
File "/home/sam/flexget.venv/lib64/python3.12/site-packages/pendulum/datetime.py", line 103, in create
tz = pendulum._safe_timezone(tz)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/sam/flexget.venv/lib64/python3.12/site-packages/pendulum/__init__.py", line 112, in _safe_timezone
elif obj.tzname(None) == "UTC":
^^^^^^^^^^^^^^^^
File "/home/sam/flexget.venv/lib64/python3.12/site-packages/dateutil/tz/tz.py", line 238, in tzname
return self._tznames[self._isdst(dt)]
^^^^^^^^^^^^^^^
File "/home/sam/flexget.venv/lib64/python3.12/site-packages/dateutil/tz/tz.py", line 291, in _isdst
dstval = self._naive_is_dst(dt)
^^^^^^^^^^^^^^^^^^^^^^
File "/home/sam/flexget.venv/lib64/python3.12/site-packages/dateutil/tz/tz.py", line 259, in _naive_is_dst
timestamp = _datetime_to_timestamp(dt)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/sam/flexget.venv/lib64/python3.12/site-packages/dateutil/tz/tz.py", line 1814, in _datetime_to_timestamp
return (dt.replace(tzinfo=None) - EPOCH).total_seconds()
^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'replace'
Example of the good case:
>>> pendulum.parse('Tue, 02 Apr 2024 06:00:00 GMT', tz="UTC", strict=False)
DateTime(2024, 4, 2, 6, 0, 0, tzinfo=Timezone('UTC'))
This is affecting Flexget rss plugin, see: Flexget/Flexget#4036
Reacted by vivodi
Reacted by vivodi
Reacted by vivodi
Metadata
Metadata
Assignees
Labels
No labels
Activity
[-]`Exception `'NoneType' object has no attribute 'replace'` when parsing specific dates[/-][+]`Exception 'NoneType' object has no attribute 'replace'` when parsing specific dates[/+]M117n commentedon Aug 31, 2024
Im gonna try to work on this
M117n commentedon Aug 31, 2024
I have tried to replicate the error using the same date and timezone configuration (Europe/London) in a Windows environment:
Operating System: Windows 11
Python: 3.9
Pendulum: 3.0.0
Date and time used: DateTime(2024, 8, 29, 16, 46, 14, 16970, tzinfo=Timezone('Europe/London'))
Parsing result: 2024-03-02 06:00:00+00:00 without any errors.
This suggests that the issue might be specific to the Fedora 40 environment or related to differences in dependency configurations on that operating system.
ashirley commentedon Nov 14, 2024
Note that the TZ environment variable has an impact here. On debian bookworm I see the following:
ashb commentedon Jan 14, 2025
Possibly related to #837 then.
vivodi commentedon Sep 23, 2025
I can confirm that this issue still exists.