docs: def offset(self):
          """Return offset to series data in file, if any."""
          if not self._pages:
              return None
  
          pos = 0
          for page in self._pages:
              if page is None:
                  return None
              if not page.is_final:
                  return None
              if not pos:
                  pos = page.is_contiguous[0] + page.is_contiguous[1]
                  continue
              if pos != page.is_contiguous[0]:
                  return None
              pos += page.is_contiguous[1]
  
          page = self._pages[0]
          offset = page.is_contiguous[0]
          if (page.is_imagej or page.is_shaped) and len(self._pages) == 1:
              # truncated files
              return offset
          if pos == offset + product(self.shape) * self.dtype.itemsize:
              return offset
          return None