LICENSE
MANIFEST.in
README.md
pyproject.toml
shedding/__init__.py
shedding/__main__.py
shedding/app.py
shedding/lessons.py
shedding/mascot.py
shedding/review.py
shedding/runner.py
shedding/shedding.tcss
shedding/skins.py
shedding/storage.py
shedding/widgets.py
shedding.egg-info/PKG-INFO
shedding.egg-info/SOURCES.txt
shedding.egg-info/dependency_links.txt
shedding.egg-info/entry_points.txt
shedding.egg-info/requires.txt
shedding.egg-info/top_level.txt
shedding/lessons/01_variables_and_numbers/README.md
shedding/lessons/01_variables_and_numbers/hints.md
shedding/lessons/01_variables_and_numbers/lesson.toml
shedding/lessons/01_variables_and_numbers/starter.py
shedding/lessons/01_variables_and_numbers/test_lesson.py
shedding/lessons/01_variables_and_numbers/skins/mgs/README.md
shedding/lessons/01_variables_and_numbers/skins/mgs/hints.md
shedding/lessons/01_variables_and_numbers/skins/mgs/lesson.toml
shedding/lessons/01_variables_and_numbers/skins/mgs/starter.py
shedding/lessons/01_variables_and_numbers/skins/mgs/test_lesson.py
shedding/lessons/02_strings/README.md
shedding/lessons/02_strings/hints.md
shedding/lessons/02_strings/lesson.toml
shedding/lessons/02_strings/starter.py
shedding/lessons/02_strings/test_lesson.py
shedding/lessons/02_strings/skins/mgs/README.md
shedding/lessons/02_strings/skins/mgs/hints.md
shedding/lessons/02_strings/skins/mgs/lesson.toml
shedding/lessons/02_strings/skins/mgs/starter.py
shedding/lessons/02_strings/skins/mgs/test_lesson.py
shedding/lessons/03_booleans_and_conditions/README.md
shedding/lessons/03_booleans_and_conditions/hints.md
shedding/lessons/03_booleans_and_conditions/lesson.toml
shedding/lessons/03_booleans_and_conditions/starter.py
shedding/lessons/03_booleans_and_conditions/test_lesson.py
shedding/lessons/03_booleans_and_conditions/skins/mgs/README.md
shedding/lessons/03_booleans_and_conditions/skins/mgs/hints.md
shedding/lessons/03_booleans_and_conditions/skins/mgs/lesson.toml
shedding/lessons/03_booleans_and_conditions/skins/mgs/starter.py
shedding/lessons/03_booleans_and_conditions/skins/mgs/test_lesson.py
shedding/lessons/04_lists_and_loops/README.md
shedding/lessons/04_lists_and_loops/hints.md
shedding/lessons/04_lists_and_loops/lesson.toml
shedding/lessons/04_lists_and_loops/starter.py
shedding/lessons/04_lists_and_loops/test_lesson.py
shedding/lessons/04_lists_and_loops/skins/mgs/README.md
shedding/lessons/04_lists_and_loops/skins/mgs/hints.md
shedding/lessons/04_lists_and_loops/skins/mgs/lesson.toml
shedding/lessons/04_lists_and_loops/skins/mgs/starter.py
shedding/lessons/04_lists_and_loops/skins/mgs/test_lesson.py
shedding/lessons/05_temperature_converter/README.md
shedding/lessons/05_temperature_converter/hints.md
shedding/lessons/05_temperature_converter/lesson.toml
shedding/lessons/05_temperature_converter/starter.py
shedding/lessons/05_temperature_converter/test_lesson.py
shedding/lessons/05_temperature_converter/skins/mgs/README.md
shedding/lessons/05_temperature_converter/skins/mgs/hints.md
shedding/lessons/05_temperature_converter/skins/mgs/lesson.toml
shedding/lessons/05_temperature_converter/skins/mgs/starter.py
shedding/lessons/06_calculator/README.md
shedding/lessons/06_calculator/hints.md
shedding/lessons/06_calculator/lesson.toml
shedding/lessons/06_calculator/starter.py
shedding/lessons/06_calculator/test_lesson.py
shedding/lessons/06_calculator/skins/mgs/README.md
shedding/lessons/06_calculator/skins/mgs/hints.md
shedding/lessons/06_calculator/skins/mgs/lesson.toml
shedding/lessons/06_calculator/skins/mgs/starter.py
shedding/lessons/07_number_guessing_game/README.md
shedding/lessons/07_number_guessing_game/hints.md
shedding/lessons/07_number_guessing_game/lesson.toml
shedding/lessons/07_number_guessing_game/starter.py
shedding/lessons/07_number_guessing_game/test_lesson.py
shedding/lessons/07_number_guessing_game/skins/mgs/README.md
shedding/lessons/07_number_guessing_game/skins/mgs/hints.md
shedding/lessons/07_number_guessing_game/skins/mgs/lesson.toml
shedding/lessons/07_number_guessing_game/skins/mgs/starter.py
shedding/lessons/07_number_guessing_game/skins/mgs/test_lesson.py
shedding/lessons/08_password_checker/README.md
shedding/lessons/08_password_checker/hints.md
shedding/lessons/08_password_checker/lesson.toml
shedding/lessons/08_password_checker/starter.py
shedding/lessons/08_password_checker/test_lesson.py
shedding/lessons/08_password_checker/skins/mgs/README.md
shedding/lessons/08_password_checker/skins/mgs/hints.md
shedding/lessons/08_password_checker/skins/mgs/lesson.toml
shedding/lessons/08_password_checker/skins/mgs/starter.py
shedding/lessons/08_password_checker/skins/mgs/test_lesson.py
shedding/lessons/09_receipt_printer/README.md
shedding/lessons/09_receipt_printer/hints.md
shedding/lessons/09_receipt_printer/lesson.toml
shedding/lessons/09_receipt_printer/starter.py
shedding/lessons/09_receipt_printer/test_lesson.py
shedding/lessons/09_receipt_printer/skins/mgs/README.md
shedding/lessons/09_receipt_printer/skins/mgs/hints.md
shedding/lessons/09_receipt_printer/skins/mgs/lesson.toml
shedding/lessons/09_receipt_printer/skins/mgs/starter.py
shedding/lessons/09_receipt_printer/skins/mgs/test_lesson.py
shedding/lessons/10_word_counter/README.md
shedding/lessons/10_word_counter/hints.md
shedding/lessons/10_word_counter/lesson.toml
shedding/lessons/10_word_counter/starter.py
shedding/lessons/10_word_counter/test_lesson.py
shedding/lessons/10_word_counter/skins/mgs/README.md
shedding/lessons/10_word_counter/skins/mgs/hints.md
shedding/lessons/10_word_counter/skins/mgs/lesson.toml
shedding/lessons/10_word_counter/skins/mgs/starter.py
shedding/lessons/10_word_counter/skins/mgs/test_lesson.py
shedding/lessons/11_grade_book/README.md
shedding/lessons/11_grade_book/hints.md
shedding/lessons/11_grade_book/lesson.toml
shedding/lessons/11_grade_book/starter.py
shedding/lessons/11_grade_book/test_lesson.py
shedding/lessons/11_grade_book/skins/mgs/README.md
shedding/lessons/11_grade_book/skins/mgs/hints.md
shedding/lessons/11_grade_book/skins/mgs/lesson.toml
shedding/lessons/11_grade_book/skins/mgs/starter.py
shedding/lessons/11_grade_book/skins/mgs/test_lesson.py
shedding/lessons/12_ciphers/README.md
shedding/lessons/12_ciphers/hints.md
shedding/lessons/12_ciphers/lesson.toml
shedding/lessons/12_ciphers/starter.py
shedding/lessons/12_ciphers/test_lesson.py
shedding/lessons/12_ciphers/skins/mgs/README.md
shedding/lessons/12_ciphers/skins/mgs/hints.md
shedding/lessons/12_ciphers/skins/mgs/lesson.toml
shedding/lessons/12_ciphers/skins/mgs/starter.py
shedding/lessons/12_ciphers/skins/mgs/test_lesson.py
shedding/lessons/13_game_of_life/README.md
shedding/lessons/13_game_of_life/hints.md
shedding/lessons/13_game_of_life/lesson.toml
shedding/lessons/13_game_of_life/starter.py
shedding/lessons/13_game_of_life/test_lesson.py
shedding/lessons/13_game_of_life/skins/mgs/README.md
shedding/lessons/13_game_of_life/skins/mgs/hints.md
shedding/lessons/13_game_of_life/skins/mgs/lesson.toml
shedding/lessons/13_game_of_life/skins/mgs/starter.py
shedding/lessons/14_todo_file/README.md
shedding/lessons/14_todo_file/hints.md
shedding/lessons/14_todo_file/lesson.toml
shedding/lessons/14_todo_file/starter.py
shedding/lessons/14_todo_file/test_lesson.py
shedding/lessons/14_todo_file/skins/mgs/README.md
shedding/lessons/14_todo_file/skins/mgs/hints.md
shedding/lessons/14_todo_file/skins/mgs/lesson.toml
shedding/lessons/14_todo_file/skins/mgs/starter.py
shedding/lessons/14_todo_file/skins/mgs/test_lesson.py
shedding/lessons/15_contact_book/README.md
shedding/lessons/15_contact_book/hints.md
shedding/lessons/15_contact_book/lesson.toml
shedding/lessons/15_contact_book/starter.py
shedding/lessons/15_contact_book/test_lesson.py
shedding/lessons/15_contact_book/skins/mgs/README.md
shedding/lessons/15_contact_book/skins/mgs/hints.md
shedding/lessons/15_contact_book/skins/mgs/lesson.toml
shedding/lessons/15_contact_book/skins/mgs/starter.py
shedding/lessons/15_contact_book/skins/mgs/test_lesson.py
shedding/lessons/16_bank_account/README.md
shedding/lessons/16_bank_account/hints.md
shedding/lessons/16_bank_account/lesson.toml
shedding/lessons/16_bank_account/starter.py
shedding/lessons/16_bank_account/test_lesson.py
shedding/lessons/16_bank_account/skins/mgs/README.md
shedding/lessons/16_bank_account/skins/mgs/hints.md
shedding/lessons/16_bank_account/skins/mgs/lesson.toml
shedding/lessons/16_bank_account/skins/mgs/starter.py
shedding/lessons/16_bank_account/skins/mgs/test_lesson.py
shedding/lessons/17_library_catalogue/README.md
shedding/lessons/17_library_catalogue/hints.md
shedding/lessons/17_library_catalogue/lesson.toml
shedding/lessons/17_library_catalogue/starter.py
shedding/lessons/17_library_catalogue/test_lesson.py
shedding/lessons/17_library_catalogue/skins/mgs/README.md
shedding/lessons/17_library_catalogue/skins/mgs/hints.md
shedding/lessons/17_library_catalogue/skins/mgs/lesson.toml
shedding/lessons/17_library_catalogue/skins/mgs/starter.py
shedding/lessons/17_library_catalogue/skins/mgs/test_lesson.py
shedding/lessons/18_payroll/README.md
shedding/lessons/18_payroll/hints.md
shedding/lessons/18_payroll/lesson.toml
shedding/lessons/18_payroll/starter.py
shedding/lessons/18_payroll/test_lesson.py
shedding/lessons/18_payroll/skins/mgs/README.md
shedding/lessons/18_payroll/skins/mgs/hints.md
shedding/lessons/18_payroll/skins/mgs/lesson.toml
shedding/lessons/18_payroll/skins/mgs/starter.py
shedding/lessons/18_payroll/skins/mgs/test_lesson.py
shedding/lessons/19_poker_hands/README.md
shedding/lessons/19_poker_hands/hints.md
shedding/lessons/19_poker_hands/lesson.toml
shedding/lessons/19_poker_hands/starter.py
shedding/lessons/19_poker_hands/test_lesson.py
shedding/lessons/19_poker_hands/skins/mgs/README.md
shedding/lessons/19_poker_hands/skins/mgs/hints.md
shedding/lessons/19_poker_hands/skins/mgs/lesson.toml
shedding/lessons/19_poker_hands/skins/mgs/starter.py
shedding/lessons/20_vending_machine/README.md
shedding/lessons/20_vending_machine/hints.md
shedding/lessons/20_vending_machine/lesson.toml
shedding/lessons/20_vending_machine/starter.py
shedding/lessons/20_vending_machine/test_lesson.py
shedding/lessons/20_vending_machine/skins/mgs/README.md
shedding/lessons/20_vending_machine/skins/mgs/hints.md
shedding/lessons/20_vending_machine/skins/mgs/lesson.toml
shedding/lessons/20_vending_machine/skins/mgs/starter.py
shedding/lessons/20_vending_machine/skins/mgs/test_lesson.py
shedding/lessons/21_expense_report/README.md
shedding/lessons/21_expense_report/hints.md
shedding/lessons/21_expense_report/lesson.toml
shedding/lessons/21_expense_report/starter.py
shedding/lessons/21_expense_report/test_lesson.py
shedding/lessons/21_expense_report/skins/mgs/README.md
shedding/lessons/21_expense_report/skins/mgs/hints.md
shedding/lessons/21_expense_report/skins/mgs/lesson.toml
shedding/lessons/21_expense_report/skins/mgs/starter.py
shedding/lessons/21_expense_report/skins/mgs/test_lesson.py
shedding/lessons/22_log_analyzer/README.md
shedding/lessons/22_log_analyzer/hints.md
shedding/lessons/22_log_analyzer/lesson.toml
shedding/lessons/22_log_analyzer/starter.py
shedding/lessons/22_log_analyzer/test_lesson.py
shedding/lessons/22_log_analyzer/skins/mgs/README.md
shedding/lessons/22_log_analyzer/skins/mgs/hints.md
shedding/lessons/22_log_analyzer/skins/mgs/lesson.toml
shedding/lessons/22_log_analyzer/skins/mgs/starter.py
shedding/lessons/22_log_analyzer/skins/mgs/test_lesson.py
shedding/lessons/23_habit_tracker/README.md
shedding/lessons/23_habit_tracker/hints.md
shedding/lessons/23_habit_tracker/lesson.toml
shedding/lessons/23_habit_tracker/starter.py
shedding/lessons/23_habit_tracker/test_lesson.py
shedding/lessons/23_habit_tracker/skins/mgs/README.md
shedding/lessons/23_habit_tracker/skins/mgs/hints.md
shedding/lessons/23_habit_tracker/skins/mgs/lesson.toml
shedding/lessons/23_habit_tracker/skins/mgs/starter.py
shedding/lessons/23_habit_tracker/skins/mgs/test_lesson.py
shedding/lessons/24_file_stats_cli/README.md
shedding/lessons/24_file_stats_cli/hints.md
shedding/lessons/24_file_stats_cli/lesson.toml
shedding/lessons/24_file_stats_cli/starter.py
shedding/lessons/24_file_stats_cli/test_lesson.py
shedding/lessons/24_file_stats_cli/skins/mgs/README.md
shedding/lessons/24_file_stats_cli/skins/mgs/hints.md
shedding/lessons/24_file_stats_cli/skins/mgs/lesson.toml
shedding/lessons/24_file_stats_cli/skins/mgs/starter.py
shedding/lessons/24_file_stats_cli/skins/mgs/test_lesson.py
shedding/lessons/25_folder_sizes/README.md
shedding/lessons/25_folder_sizes/hints.md
shedding/lessons/25_folder_sizes/lesson.toml
shedding/lessons/25_folder_sizes/starter.py
shedding/lessons/25_folder_sizes/test_lesson.py
shedding/lessons/25_folder_sizes/skins/mgs/README.md
shedding/lessons/25_folder_sizes/skins/mgs/hints.md
shedding/lessons/25_folder_sizes/skins/mgs/lesson.toml
shedding/lessons/25_folder_sizes/skins/mgs/starter.py
shedding/lessons/25_folder_sizes/skins/mgs/test_lesson.py
shedding/lessons/26_streaming_stats/README.md
shedding/lessons/26_streaming_stats/hints.md
shedding/lessons/26_streaming_stats/lesson.toml
shedding/lessons/26_streaming_stats/starter.py
shedding/lessons/26_streaming_stats/test_lesson.py
shedding/lessons/26_streaming_stats/skins/mgs/README.md
shedding/lessons/26_streaming_stats/skins/mgs/hints.md
shedding/lessons/26_streaming_stats/skins/mgs/lesson.toml
shedding/lessons/26_streaming_stats/skins/mgs/starter.py
shedding/lessons/27_cache_and_retry/README.md
shedding/lessons/27_cache_and_retry/hints.md
shedding/lessons/27_cache_and_retry/lesson.toml
shedding/lessons/27_cache_and_retry/starter.py
shedding/lessons/27_cache_and_retry/test_lesson.py
shedding/lessons/27_cache_and_retry/skins/mgs/README.md
shedding/lessons/27_cache_and_retry/skins/mgs/hints.md
shedding/lessons/27_cache_and_retry/skins/mgs/lesson.toml
shedding/lessons/27_cache_and_retry/skins/mgs/starter.py
shedding/lessons/28_context_helpers/README.md
shedding/lessons/28_context_helpers/hints.md
shedding/lessons/28_context_helpers/lesson.toml
shedding/lessons/28_context_helpers/starter.py
shedding/lessons/28_context_helpers/test_lesson.py
shedding/lessons/28_context_helpers/skins/mgs/README.md
shedding/lessons/28_context_helpers/skins/mgs/hints.md
shedding/lessons/28_context_helpers/skins/mgs/lesson.toml
shedding/lessons/28_context_helpers/skins/mgs/starter.py
shedding/lessons/28_context_helpers/skins/mgs/test_lesson.py
shedding/lessons/29_finance_tracker/README.md
shedding/lessons/29_finance_tracker/hints.md
shedding/lessons/29_finance_tracker/lesson.toml
shedding/lessons/29_finance_tracker/starter.py
shedding/lessons/29_finance_tracker/test_lesson.py
shedding/lessons/29_finance_tracker/skins/mgs/README.md
shedding/lessons/29_finance_tracker/skins/mgs/hints.md
shedding/lessons/29_finance_tracker/skins/mgs/lesson.toml
shedding/lessons/29_finance_tracker/skins/mgs/starter.py
shedding/lessons/29_finance_tracker/skins/mgs/test_lesson.py
tests/test_app.py
tests/test_lessons_loader.py
tests/test_review.py
tests/test_runner.py
tests/test_skins.py
tests/test_storage.py