https://github.com/python/cpython/commit/2c089b09ac0872e08d146c55ed60d754154761c3
commit: 2c089b09ac0872e08d146c55ed60d754154761c3
branch: main
author: Steven Ward <[email protected]>
committer: serhiy-storchaka <[email protected]>
date: 2024-01-29T16:58:21Z
summary:

gh-112240: Add option to calendar module CLI to specify the weekday to start 
each week (GH-112241)

files:
A Misc/NEWS.d/next/Library/2023-11-18-16-30-21.gh-issue-112240.YXS0tj.rst
M Doc/library/calendar.rst
M Lib/calendar.py

diff --git a/Doc/library/calendar.rst b/Doc/library/calendar.rst
index 6586f539a8da4f..c4dcf5641d6066 100644
--- a/Doc/library/calendar.rst
+++ b/Doc/library/calendar.rst
@@ -586,10 +586,16 @@ The following options are accepted:
    or as an HTML document.
 
 
+.. option:: --first-weekday WEEKDAY, -f WEEKDAY
+
+   The weekday to start each week.
+   Must be a number between 0 (Monday) and 6 (Sunday).
+   Defaults to 0.
+
+
 .. option:: year
 
    The year to print the calendar for.
-   Must be a number between 1 and 9999.
    Defaults to the current year.
 
 
diff --git a/Lib/calendar.py b/Lib/calendar.py
index 3c79540f986b63..833ce331b14a0c 100644
--- a/Lib/calendar.py
+++ b/Lib/calendar.py
@@ -734,6 +734,11 @@ def main(args=None):
         choices=("text", "html"),
         help="output type (text or html)"
     )
+    parser.add_argument(
+        "-f", "--first-weekday",
+        type=int, default=0,
+        help="weekday (0 is Monday, 6 is Sunday) to start each week (default 
0)"
+    )
     parser.add_argument(
         "year",
         nargs='?', type=int,
@@ -761,6 +766,7 @@ def main(args=None):
             cal = LocaleHTMLCalendar(locale=locale)
         else:
             cal = HTMLCalendar()
+        cal.setfirstweekday(options.first_weekday)
         encoding = options.encoding
         if encoding is None:
             encoding = sys.getdefaultencoding()
@@ -775,6 +781,7 @@ def main(args=None):
             cal = LocaleTextCalendar(locale=locale)
         else:
             cal = TextCalendar()
+        cal.setfirstweekday(options.first_weekday)
         optdict = dict(w=options.width, l=options.lines)
         if options.month is None:
             optdict["c"] = options.spacing
diff --git 
a/Misc/NEWS.d/next/Library/2023-11-18-16-30-21.gh-issue-112240.YXS0tj.rst 
b/Misc/NEWS.d/next/Library/2023-11-18-16-30-21.gh-issue-112240.YXS0tj.rst
new file mode 100644
index 00000000000000..686f0311e80dcb
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2023-11-18-16-30-21.gh-issue-112240.YXS0tj.rst
@@ -0,0 +1,2 @@
+Add option to calendar module CLI to specify the weekday to start each week.
+Patch by Steven Ward.

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]

Reply via email to