commit 14188d4c3e58424931b69aade34ecd1ed2514c33
parent af746edb2bb11b1e04655deb81db959c7ade6146
Author: Carlosokumu <carlosokumu254@gmail.com>
Date: Mon, 18 Aug 2025 18:23:38 +0300
ensure flags come after subcommands
Diffstat:
1 file changed, 12 insertions(+), 17 deletions(-)
diff --git a/calendarapp/cmd/args_parser.py b/calendarapp/cmd/args_parser.py
@@ -14,14 +14,6 @@ class ArgsParser:
description="Create a customized iCalendar (.ics) event"
)
self.ical_manager = ICalManager()
-
- self._add_logging_arguments()
-
- temp_args, _ = self.parser.parse_known_args()
-
- self.logging = LoggingManager(verbose=temp_args.verbose, quiet=temp_args.quiet)
- self.logger = self.logging.get_logger("ArgsParser")
-
self._add_field_arguments()
def _read_file_or_exit(self, file_path: str) -> str:
@@ -82,9 +74,11 @@ class ArgsParser:
create_event_parser = subparsers.add_parser('create', help='Create a new calendar event')
+ self._add_logging_arguments(create_event_parser)
add_event_field_args(create_event_parser, required_flags=True)
edit_event_parser = subparsers.add_parser('edit', help='Edit a calendar ical file')
+ self._add_logging_arguments(edit_event_parser)
edit_event_parser.add_argument("-i", "--ical", required=True,
help="Path to ical file to edit")
edit_event_parser.add_argument("-a", "--all", action="store_true",
@@ -92,17 +86,21 @@ class ArgsParser:
add_event_field_args(edit_event_parser, required_flags=False)
- def _add_logging_arguments(self):
- self.parser.add_argument("-v", "--verbose", action="store_true",
- help="Enable verbose debug output")
- self.parser.add_argument("-q", "--quiet", action="store_true",
- help="Suppress all non-error output")
+ def _add_logging_arguments(self, parser):
+ parser.add_argument("-v", "--verbose", action="store_true",
+ help="Enable verbose debug output")
+ parser.add_argument("-q", "--quiet", action="store_true",
+ help="Suppress all non-error output")
def parse_args(self):
"""Parses CLI args and resolves file-based inputs."""
args = self.parser.parse_args()
+ self.logging = LoggingManager(verbose=args.verbose, quiet=args.quiet)
+ self.logger = self.logging.get_logger("ArgsParser")
+
+
if args.command == 'create':
if args.summary_file:
args.summary = self._read_file_or_exit(args.summary_file)
@@ -169,11 +167,8 @@ class ArgsParser:
return
event = events[choice - 1]
- # editable_fields = ["SUMMARY", "DESCRIPTION", "LOCATION", "ORGANIZER"]
editable_fields = list(event.keys())
-
- # Optionally filter out fields you don’t want to edit
- #skip_fields = {"UID", "DTSTAMP", "DTSTART", "DTEND", "DURATION", "RRULE"}
+
skip_fields = {"UID"}
editable_fields = [f for f in editable_fields if f not in skip_fields]