Closed
Description
Bug report
Bug description:
in 3.13.2 and 3.13.1 datetime.strptime
no longer raises ValueError: stray % in format '%Y %'
Python 3.13.2 (main, Mar 19 2025, 01:28:14) [Clang 16.0.0 (clang-1600.0.26.6)] on Darwin
>>> from datetime import datetime
>>> datetime.strptime("2000 %", "%Y %")
datetime.datetime(2000, 1, 1, 0, 0)
as it used to do in 3.13.0:
Python 3.13.0 (main, Mar 19 2025, 01:42:48) [Clang 16.0.0 (clang-1600.0.26.6)] on darwin
>>> from datetime import datetime
>>> datetime.strptime("2000 %", "%Y %")
Traceback (most recent call last):
File "<python-input-1>", line 1, in <module>
datetime.strptime("2000 %", "%Y %")
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/Users/nik/.pyenv/versions/3.13.0/lib/python3.13/_strptime.py", line 573, in _strptime_datetime
tt, fraction, gmtoff_fraction = _strptime(data_string, format)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File "/Users/nik/.pyenv/versions/3.13.0/lib/python3.13/_strptime.py", line 348, in _strptime
raise ValueError("stray %% in format '%s'" % format) from None
ValueError: stray % in format '%Y %'
and e.g. 3.10:
Python 3.10.15 (main, Nov 28 2024, 23:39:17) [Clang 16.0.0 (clang-1600.0.26.4)] on Darwin
>>> from datetime import datetime
>>> datetime.strptime("2000 %", "%Y %")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/nik/.pyenv/versions/3.10.15/lib/python3.10/_strptime.py", line 568, in _strptime_datetime
tt, fraction, gmtoff_fraction = _strptime(data_string, format)
File "/Users/nik/.pyenv/versions/3.10.15/lib/python3.10/_strptime.py", line 345, in _strptime
raise ValueError("stray %% in format '%s'" % format) from None
ValueError: stray % in format '%Y %'
edit 1:
got the same in the latest 3.12.9 (used to work in older 3.12)
CPython versions tested on:
3.13
Operating systems tested on:
macOS
Linked PRs
Metadata
Metadata
Assignees
Projects
Status
Done