From 37aaba17e3ae1fa79ab015311643432d66937d7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?tonghuaroot=20=28=E7=AB=A5=E8=AF=9D=29?= Date: Mon, 17 Aug 2026 13:43:48 +0800 Subject: [PATCH] gh-153158: Remove the erroneous width argument of HTMLCalendar.formatmonthpage (GH-153159) (cherry picked from commit 1ad63ccc066a329180cfa8f4a8c4be8be47db973) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: tonghuaroot (童话) Co-authored-by: Serhiy Storchaka --- Lib/calendar.py | 4 ++-- Lib/test/test_calendar.py | 6 ++++++ .../Library/2026-07-06-10-30-00.gh-issue-153158.m0nthP.rst | 3 +++ 3 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2026-07-06-10-30-00.gh-issue-153158.m0nthP.rst diff --git a/Lib/calendar.py b/Lib/calendar.py index 92fe6b7723fe26..7aaaf73bfe0044 100644 --- a/Lib/calendar.py +++ b/Lib/calendar.py @@ -609,11 +609,11 @@ def formatyearpage(self, theyear, width=3, css='calendar.css', encoding=None): content = self.formatyear(theyear, width) return self._format_html_page(theyear, content, css, encoding) - def formatmonthpage(self, theyear, themonth, width=3, css='calendar.css', encoding=None): + def formatmonthpage(self, theyear, themonth, *, css='calendar.css', encoding=None): """ Return a formatted month as a complete HTML page. """ - content = self.formatmonth(theyear, themonth, width) + content = self.formatmonth(theyear, themonth) return self._format_html_page(theyear, content, css, encoding) diff --git a/Lib/test/test_calendar.py b/Lib/test/test_calendar.py index 8646cfcad58cea..04eb5155a82118 100644 --- a/Lib/test/test_calendar.py +++ b/Lib/test/test_calendar.py @@ -545,6 +545,12 @@ def test_format_html_year_with_month(self): result_2009_6_html ) + def test_formatmonthpage_no_width(self): + # gh-140212: formatmonthpage must not accept a 'width' argument. + cal = calendar.HTMLCalendar() + self.assertIn(b'class="month">June 2009', cal.formatmonthpage(2009, 6)) + self.assertRaises(TypeError, cal.formatmonthpage, 2009, 6, width=3) + class CalendarTestCase(unittest.TestCase): diff --git a/Misc/NEWS.d/next/Library/2026-07-06-10-30-00.gh-issue-153158.m0nthP.rst b/Misc/NEWS.d/next/Library/2026-07-06-10-30-00.gh-issue-153158.m0nthP.rst new file mode 100644 index 00000000000000..3850860fb2f8db --- /dev/null +++ b/Misc/NEWS.d/next/Library/2026-07-06-10-30-00.gh-issue-153158.m0nthP.rst @@ -0,0 +1,3 @@ +Remove the erroneous *width* argument of +:meth:`!calendar.HTMLCalendar.formatmonthpage`, which could drop the year from +the heading.