def makeMeta(info,unique_songs):
	train = []
	train_mostSongsPerSet = info[0][0]
	train.append(train_mostSongsPerSet)
	train_leastSongsPerSet = info[0][1]
	train.append(train_leastSongsPerSet)
	train_numSongs = info[0][2]
	train.append(train_numSongs)
	train_numSets = info[0][3]
	train.append(train_numSets)
	if train_numSets == 0: train_numSets = 1
	train_avgSongsPerSet = train_numSongs/train_numSets
	train.append(train_avgSongsPerSet)

	test = []
	test_mostSongsPerSet = info[1][0]
	test.append(test_mostSongsPerSet)
	test_leastSongsPerSet = info[1][1]
	test.append(test_leastSongsPerSet)
	test_numSongs = info[1][2]
	test.append(test_numSongs)
	test_numSets = info[1][3]
	test.append(test_numSets)
	if test_numSets == 0: test_numSets = 1
	test_avgSongsPerSet = test_numSongs/test_numSets
	test.append(test_avgSongsPerSet)
	
	allSets = train_numSets + test_numSets
	allSongs = train_numSongs + test_numSongs
	f = open(meta_loc,"w")
	combined_list = []
	combined_list.extend(unique_songs[0])
	combined_list.extend(unique_songs[1])
	unique_songs[0] = list(set(unique_songs[0]))
	unique_songs[1] = list(set(unique_songs[1]))
	feat = track_maps.getTrack()
	missed = track_maps.getMissed()
	f.write("\nTotal Songs Across Thresholds: " + str(len(feat)) + "\n")
	f.write("Total Missed: " + str(len(missed)) + "\n\n")
	folderMeta("Training Data",train,f,unique_songs[0])
	folderMeta("Testing Data",test,f,unique_songs[1])
	f.write("Total Sets: " + str(allSets) + "\n")
	f.write("Total Songs: " + str(allSongs) + "\n")
	total_unique = list(set(combined_list))
	f.write("Total Unique Songs: " + str(len(total_unique)) + "\n")
	rat = float(test_numSets)/float(train_numSets)
	f.write("Test:Train Set Ratio: " + str(rat) + "\n")
	f.close()
	f = open(meta_loc,"r")
	print(f.read())
	f.close()
def removeKeys():
	trackMap = track_maps.getTrack()
	unwanted = ["analysis_url","duration","valence"]#["analysis_url","duration","key","loudness","mode","tempo","time_signature","valence","instrumentalness"]
	for track in trackMap:
		feat = trackMap[track]
		if not isinstance(feat, dict):
			continue
		for attr in unwanted:
			if attr in feat:
				del feat[attr]
		#feat["danceability"] = feat["danceability"]*5
		trackMap[track] = feat
	#print(trackMap)
	track_maps.writeTrack(trackMap)
def loop_over():
	trackFeat = track_maps.getTrack()
	missed = track_maps.getMissed()
	numTracks = len(trackFeat)
	prevMissed = len(missed)
	currMissed = len(missed)
	for miss in missed:
		artist = miss[0].lower()
		song = miss[1].lower()
		tup = (artist,song)
		if str(tup) in trackFeat:
			currMissed = currMissed - 1
			missed.remove(miss)
			continue	
		result = input_song_id(tup,trackFeat)
		if result == True:
			currMissed = currMissed - 1
			missed.remove(miss)
		time.sleep(sleep_time)
	track_maps.writeTrack(trackFeat)
	track_maps.writeMissed(missed)
	print("Num found tracks = ", numTracks)
	print("Num found missed = ", currMissed)
	print("Found " + str(prevMissed - currMissed) + " more songs")