num_parts rounding error because python by default doesn't divide with remainder