ungana

Unnamed repository; edit this file 'description' to name the repository.
Info | Log | Files | Refs | README

commit 14188d4c3e58424931b69aade34ecd1ed2514c33
parent af746edb2bb11b1e04655deb81db959c7ade6146
Author: Carlosokumu <carlosokumu254@gmail.com>
Date:   Mon, 18 Aug 2025 18:23:38 +0300

ensure flags come after subcommands

Diffstat:
Mcalendarapp/cmd/args_parser.py | 29++++++++++++-----------------
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]