code: def _get_components(self, *component_types: Type)-> Iterable[Tuple[int, ...]]:
          
          entity_db = self._entities
          comp_db = self._components
  
          try:
              for entity in set.intersection(*[comp_db[ct] for ct in component_types]):
                  yield entity, [entity_db[entity][ct] for ct in component_types]
          except KeyError:
              pass
docs: Get an iterator for Entity and multiple Component sets.
  
          :param component_types: Two or more Component types.
          :return: An iterator for Entity, (Component1, Component2, etc)
          tuples.