From b68186861e1bf4c4133e4db8a267c683bcc95e41 Mon Sep 17 00:00:00 2001 From: AbhishekTentiwala Date: Sun, 23 Nov 2025 16:41:30 +0530 Subject: [PATCH] Feat: Added Delete Feature to the clii --- README.md | 10 ++++++++-- main.py | 13 +++++++++++-- student_manager.py | 8 ++++++++ 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4c5ae15..5179af7 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,9 @@ python main.py list # Mark assignment as completed python main.py complete "Math Homework" +# Delete an assignment +python main.py delete "Math Homework" + # Calculate your GPA python main.py gpa @@ -60,11 +63,14 @@ Added assignment: Physics Lab $ python main.py add-assignment "History Essay" --deadline "2025-12-05" --subject "History" Added assignment: History Essay +$ python main.py delete "Physics Lab" +Deleted assignment: 'Physics Lab' + $ python main.py stats === Your Statistics === -Total Assignments: 2 +Total Assignments: 1 Completed: 0 -Pending: 2 +Pending: 1 GPA: 0.00 ``` diff --git a/main.py b/main.py index 0ba2987..469c9e2 100644 --- a/main.py +++ b/main.py @@ -10,8 +10,8 @@ def main(): parser = argparse.ArgumentParser(description='StudentHub - Manage your academic life') - parser.add_argument('command', choices=['add-assignment', 'list', 'complete', 'gpa', 'stats'], - help='Command to execute') + parser.add_argument('command', choices=['add-assignment', 'list', 'complete', 'delete', 'gpa', 'stats'], + help='Command to execute') parser.add_argument('value', nargs='?', help='Value for the command') parser.add_argument('--deadline', help='Deadline in YYYY-MM-DD format') parser.add_argument('--subject', help='Subject name') @@ -43,6 +43,15 @@ def main(): else: print(f"Assignment '{args.value}' not found") + elif args.command == 'delete': + if not args.value: + print("Error: Please provide assignment title to delete") + return + if manager.delete_assignment(args.value): + print(f"Deleted assignment: '{args.value}'") + else: + print(f"Assignment '{args.value}' not found") + elif args.command == 'gpa': gpa = manager.calculate_gpa() print(f"Your current GPA: {gpa:.2f}") diff --git a/student_manager.py b/student_manager.py index 452ed31..43472ca 100644 --- a/student_manager.py +++ b/student_manager.py @@ -22,6 +22,14 @@ def add_assignment(self, title, deadline, subject=None): } self.assignments.append(assignment) return assignment + + def delete_assignment(self, title): + """Delete an assignment by title""" + for i, assignment in enumerate(self.assignments): + if assignment['title'] == title: + self.assignments.pop(i) + return True + return False def list_assignments(self, show_completed=False): """List all assignments"""