Python semantics are that rhs of shift must be non-negative, so there's no need to handle negative values in the underlying mpz implementation.