python-dateparser fails to build with Python 3.14.0b1. 11 tests failed with roughly 3 distinct issues: _ TestDateParser.test_dates_with_day_missing_preferring_current_day_of_month_0_February_2015 _ a = (<tests.test_date_parser.TestDateParser testMethod=test_dates_with_day_missing_preferring_current_day_of_month_0_February_2015>,) kw = {} @wraps(func) def standalone_func(*a, **kw): > return func(*(a + p.args), **p.kwargs, **kw) /usr/lib/python3.14/site-packages/parameterized/parameterized.py:620: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /builddir/build/BUILD/python-dateparser-1.2.1-build/dateparser-1.2.1/tests/test_date_parser.py:751: in test_dates_with_day_missing_preferring_current_day_of_month self.then_date_was_parsed_by_date_parser() /builddir/build/BUILD/python-dateparser-1.2.1-build/dateparser-1.2.1/tests/test_date_parser.py:1368: in then_date_was_parsed_by_date_parser self.assertNotEqual(NotImplemented, self.date_result, "Date was not parsed") E AssertionError: NotImplemented == NotImplemented : Date was not parsed _______ TestDateParser.test_dates_without_preference_leap_year_2_29_Feb ________ a = (<tests.test_date_parser.TestDateParser testMethod=test_dates_without_preference_leap_year_2_29_Feb>,) kw = {} @wraps(func) def standalone_func(*a, **kw): > return func(*(a + p.args), **p.kwargs, **kw) /usr/lib/python3.14/site-packages/parameterized/parameterized.py:620: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /builddir/build/BUILD/python-dateparser-1.2.1-build/dateparser-1.2.1/tests/test_date_parser.py:708: in test_dates_without_preference_leap_year self.then_date_obj_exactly_is(expected) /builddir/build/BUILD/python-dateparser-1.2.1-build/dateparser-1.2.1/tests/test_date_parser.py:1365: in then_date_obj_exactly_is self.assertEqual(expected, self.result["date_obj"]) E AssertionError: datetime.datetime(1704, 2, 29, 0, 0) != datetime.datetime(2029, 2, 1, 0, 0) _ TestDateParser.test_error_should_be_raised_for_invalid_dates_with_too_large_day_number_0_29_February_2015 _ a = (<tests.test_date_parser.TestDateParser testMethod=test_error_should_be_raised_for_invalid_dates_with_too_large_day_number_0_29_February_2015>,) kw = {} @wraps(func) def standalone_func(*a, **kw): > return func(*(a + p.args), **p.kwargs, **kw) /usr/lib/python3.14/site-packages/parameterized/parameterized.py:620: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /builddir/build/BUILD/python-dateparser-1.2.1-build/dateparser-1.2.1/tests/test_date_parser.py:877: in test_error_should_be_raised_for_invalid_dates_with_too_large_day_number self.then_error_was_raised( /builddir/build/BUILD/python-dateparser-1.2.1-build/dateparser-1.2.1/tests/__init__.py:22: in then_error_was_raised self.assertTrue( E AssertionError: False is not true : Didn't found any of the expected messages (['day is out of range for month', 'day must be in 1..28']) -- message was: ValueError('day 29 must be in range 1..28 for month 2 in year 2015') https://docs.python.org/3.14/whatsnew/3.14.html For the build logs, see: https://copr-be.cloud.fedoraproject.org/results/@python/python3.14-b1/fedora-rawhide-x86_64/09062432-python-dateparser/ For all our attempts to build python-dateparser with Python 3.14, see: https://copr.fedorainfracloud.org/coprs/g/python/python3.14-b1/package/python-dateparser/ Testing and mass rebuild of packages is happening in copr. You can follow these instructions to test locally in mock if your package builds with Python 3.14: https://copr.fedorainfracloud.org/coprs/g/python/python3.14-b1/ Let us know here if you have any questions. Python 3.14 is planned to be included in Fedora 43. To make that update smoother, we're building Fedora packages with all pre-releases of Python 3.14. A build failure prevents us from testing all dependent packages (transitive [Build]Requires), so if this package is required a lot, it's important for us to get it fixed soon. We'd appreciate help from the people who know this package best, but if you don't want to work on this now, let us know so we can try to work around it on our side.