def _get_list_traj(trajectory):
    """Return a list of (proxy) snapshots from either a list or Trajectory

    Parameters
    ----------
    trajectory : :class:`.Trajectory` or :class:`.list`
       trajectory or list to convert into a list of snapshots

    Returns
    -------
    :class:`.list`
       list of (proxy) snapshots

    Note
    ----
    Due to possible UUID space restrictions, we don't want to slice
    Trajectories if we can help it (as this will generate a new Trajectory
    object with its own UUID). This is a convenience function that will either
    turn a Trajectory into a list of (proxy) snapshots or just list to list
    mapping, which you can slice without generating a new UUID

    For a more in-depth discussion, please see:
    https://github.com/openpathsampling/openpathsampling/pull/978
    """
    itraj = getattr(trajectory, 'iter_proxies', trajectory.__iter__)
    return list(itraj())