Basic mixed input
Input
parse_numbers(['1', '2.5', 'x', 3, None, True])
Output
{'values': [1, 2.5, 3], 'errors': [(2, 'x', 'could not convert string to number'), (4, None, 'None'), (5, True, 'bool')]}
Strings '1' and '2.5' convert (int then float), raw int 3 accepted, 'x' fails, None and True are recorded as errors (True is treated as a boolean error).