More specific error when converting pointer to numpy array

Currently, when we can't convert a pointer to a numpy array, we just raise an AssertionError. This isn't super specific, which makes error handling in upper layers harder.

To close

  • Introduce new error to handle this case
  • Use this new error class to better handle the case when properties haven't been initialised yet

Additional context

!24 (comment 1692877524)