These tasks harden a small payroll import: hours arrive as text from a timesheet tool, rates come from a table, and the result feeds the payroll run, so mistakes cost real money.
You'll write functions with type hints, log what they skip, refuse bad input with errors, and write tests that pass on correct code and fail on the bugs a hurried colleague might introduce.
The setup cell gives you the import logger, which records each message in log_lines as a line of text you can inspect.