def retrieve_all(self, sids, default_none=False):
        """
        Retrieve all assets in `sids`.

        Parameters
        ----------
        sids : iterable of string
            Assets to retrieve.
        default_none : bool
            If True, return None for failed lookups.
            If False, raise `SidsNotFound`.

        Returns
        -------
        assets : list[Asset or None]
            A list of the same length as `sids` containing Assets (or Nones)
            corresponding to the requested sids.

        Raises
        ------
        SidsNotFound
            When a requested sid is not found and default_none=False.
        """

        failures = set()
        hits = {}
        for sid in sids:
            try:
                hits[sid] = self._asset_cache[sid]
            except KeyError:
                if not default_none:
                    failures.add(sid)
                else:
                    hits[sid] = None

        if len(failures) > 0:
            raise SidsNotFound(sids=list(failures))

        return [hits[sid] for sid in sids]