I was reading assign_mpz and see that even if internally the IntegerMatrix uses mpz, it doesn't accept value passed in as type mpz.
ideally I want to do:
from fpylll import IntegerMatrix
from gmpy2 import mpz
A = IntegerMatrix(5, 5)
A.gen_identity(5)
a = mpz(1000)
A[2, 3] = a
(p.s. altho I agree that SageMath support is good enough if I want to use multi-precision integers, it would requires me to go for sage's own virtualenv, unlike a simpler gmpy2 package)