def sync_projects(self):
		project_list = utils.get_project_list()

		with self.lock:
			current_project_names = set(self.projects.keys())
			updated_project_names = {project_name for project_name, project_data in project_list}
			#print(current_project_names,updated_project_names)
			new_project_names = list(updated_project_names.difference(current_project_names))
			stale_project_names = list(current_project_names.difference(updated_project_names))
			#print(new_project_names,stale_project_names)
			# remove stale projects
			for project_name in stale_project_names:
				del self.projects[project_name]
			# add new projects
			for project_name, project_data in project_list:
				if new_project_names in project_name:
					self.projects[project_name] = {"project_data": project_data, "data": dict(self.default_data_dict)}
		# now that projects dict is up to date release lock before initing directory load
		for project_name, project_data in project_list:
			if project_name in new_project_names:
				self.new_project(project_name, project_data)
dataset/ETHPy150Open jcberquist/sublimetext-cfml/src/project_index.py/ProjectIndex.sync_projects/swapped operands of `in`