def join(self, *component_names):
		if component_names:
			components = [getattr(self, self._validate_name(name)) 
				for name in component_names]
			if len(components) > 1:
				entities = components[0].entities & components[1].entities
				for comp in components[2:]:
					entities &= comp.entities
			else:
				entities = components[0].entities
			for entity in entities:
				yield tuple(comp[entity] for comp in components)
Add an item to six.moves.
dataset/ETHPy150Open caseman/grease/grease/world.py/ComponentParts.join--crossover with--dataset/ETHPy150Open AppScale/appscale/AppServer/lib/django-1.4/django/utils/six.py/add_move