code: def tracked_array(array, dtype=None):
      
      # if someone passed us None, just create an empty array
      if array is None:
          array = []
      # make sure it is contiguous then view it as our subclass
      tracked = np.ascontiguousarray(
          array, dtype=dtype).view(TrackedArray)
      # should always be contiguous here
      assert tracked.flags['C_CONTIGUOUS']
  
      return tracked
docs: Properly subclass a numpy ndarray to track changes.
  
      Avoids some pitfalls of subclassing by forcing contiguous
      arrays, and does a view into a TrackedArray.
  
      Parameters
      ------------
      array : array- like object
        To be turned into a TrackedArray
      dtype : np.dtype
        Which dtype to use for the array
  
      Returns
      ------------
      tracked : TrackedArray
        Contains input array data