У Python есть проблема и не видит -2 как число. Это, кажется, по дизайну, как указано в документах.
-2 интерпретируется как - (2) {унарный минус до положительного числа 2}
Это обычно не задайте проблему, но в -a ** 2 ** имеет более высокий приоритет как - и, следовательно, с - интерпретируется как унарный оператор вместо части числа -2 ** 2, оценивает -2 вместо 2.