Question: https://www.chegg.com/homework-help/questions-and-answers/class-workoutclass-workout-class-offered-gym-private-attributes-name-name-workoutclass-req-q44040301 finish this code for me with python please. Use the helper function provided! def to_schedule_list(self, week: datetime = None) -> list[dict[str, str |

https://www.chegg.com/homework-help/questions-and-answers/class-workoutclass-workout-class-offered-gym-private-attributes-name-name-workoutclass-req-q44040301

finish this code for me with python please. Use the helper function provided!

def to_schedule_list(self, week: datetime = None) \ -> list[dict[str, str | int]]: """Return a list of dictionaries for the Gym's entire schedule, with each dictionary representing a workout offered (in the format specified by the docstring for offerings_at).

The dictionaries should be in the list in ascending order by their date and time (not the string representation of the date and time). Offerings occurring at exactly the same date and time should be in alphabetical order based on their room names.

If is specified, only return the events that occur between the date interval (between a Monday 0:00 and Sunday 23:59) that contains .

Hint: The helper function can be used to determine if one datetime object is in the same week as another.

>>> ac = Gym('Athletic Centre') >>> diane1 = Instructor(1, 'Diane') >>> diane1.add_certificate('Cardio 1') True >>> diane2 = Instructor(2, 'Diane') >>> david = Instructor(3, 'David') >>> david.add_certificate('Strength Training') True >>> ac.add_instructor(diane1) True >>> ac.add_instructor(diane2) True >>> ac.add_instructor(david) True >>> ac.add_room('Studio 1', 20) True >>> boot_camp = WorkoutClass('Boot Camp', ['Cardio 1']) >>> ac.add_workout_class(boot_camp) True >>> kickboxing = WorkoutClass('KickBoxing', ['Strength Training']) >>> ac.add_workout_class(kickboxing) True >>> t1 = datetime(2022, 9, 9, 12, 0) >>> ac.schedule_workout_class(t1, 'Studio 1', boot_camp.name, 1) True >>> t2 = datetime(2022, 9, 8, 13, 0) >>> ac.schedule_workout_class(t2, 'Studio 1', kickboxing.name, 3) True >>> ac.to_schedule_list() == [ ... { 'Date': 'Thursday, 2022-09-08', 'Time': '13:00', ... 'Class': 'KickBoxing', 'Room': 'Studio 1', 'Registered': 0, ... 'Available': 20, 'Instructor': 'David' }, ... { 'Date': 'Friday, 2022-09-09', 'Time': '12:00', ... 'Class': 'Boot Camp', 'Room': 'Studio 1', 'Registered': 0, ... 'Available': 20, 'Instructor': 'Diane (1)' }, ... ] True """

def in_week(date: datetime, week: datetime = None) -> bool: """Return True iff is in the same week as .

A week is defined as the period from Monday 0:00 to Sunday 23:59. Return True if no week is provided.

Hint: You may find this helper function useful in your own code.

>>> # Note: You can create a datetime that has only year, month, day, or >>> # you can optionally specify hour, minute, etc. >>> in_week(datetime(2022, 9, 1, 12, 0), datetime(2022, 8, 31)) True >>> in_week(datetime(2022, 9, 1, 12, 0), datetime(2022, 9, 7)) False >>> in_week(datetime(2022, 9, 1, 12, 0), datetime(202, 9, 8)) False >>> in_week(datetime(2023, 1, 1), datetime(2022, 12, 31)) True >>> in_week(datetime(2023, 1, 1)) True """ if not week: return True # find the first and last day of the calendar week containing . week = week.replace(hour=0, minute=0, second=0, microsecond=0) week_start = week - timedelta(days=week.weekday()) week_end = week_start + timedelta(days=6) week_end = week_end.replace(hour=23, minute=59, second=59, microsecond=0) # return True iff is between and # return (week_start <= date) and (date <= week_end) # pyTA complains return week_start <= date <= week_end

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!