import gradio as gr def calculate_cgpa(grades, credit_hours): total_points = 0 total_credits = 0 for grade, credits in zip(grades, credit_hours): # Convert grade to grade point based on the provided scale if grade == 'O': grade_point = 10 elif grade == 'A+': grade_point = 9 elif grade == 'A': grade_point = 8 elif grade == 'B+': grade_point = 7 elif grade == 'B': grade_point = 6 elif grade == 'C': grade_point = 5 elif grade in ['F', 'W', 'I', 'Ab']: grade_point = 0 else: print(f"Unknown grade '{grade}' encountered. Skipping...") continue # Accumulate total points and total credits total_points += grade_point * credits total_credits += credits # Calculate CGPA if total_credits == 0: return 0.0 cgpa = total_points / total_credits return round(cgpa, 2) def cgpa_calculator_interface(course_data): try: grades = [] credit_hours = [] for course in course_data: grade = course['grade'] credits = int(course['credits']) grades.append(grade) credit_hours.append(credits) cgpa = calculate_cgpa(grades, credit_hours) return f"Your CGPA is: {cgpa}" except ValueError: return "Invalid input. Please ensure all credit hours are integers." textbox_grade = "textbox" textbox_credits = "textbox" iface = gr.Interface( cgpa_calculator_interface, [textbox_grade, textbox_credits], "label", title="CGPA Calculator", #allow_flagging=False, #allow_suggestions=False, #analytics_enabled=False ) iface.launch(share=True)