import networkx as nx# sudo pip install networkx
import file_reader
import community
import matplotlib.pyplot as plt

G = nx.DiGraph() # non-directed graph: must be non-directed for com

file_reader.readInDonors(G, 1.0, False)
file_reader.readCommitteeToCommittee(G)


obamaTag = "C00431445";
clintonTag = "C00431569";
edwardsTag = "C00431205";
bidenTag = "C00431916";
doddTag = "C00431379";
gravelTag = "C00423202";
kucinichTag = "C00430975";
richardsonTag = "C00431577";

dems2008 = {obamaTag : "Barack Obama", clintonTag: "Hilary Clinton", edwardsTag: "John Edwards",
    bidenTag: "Joe Biden", doddTag: "Chris Dodd", gravelTag: "Mike Gravel",
    kucinichTag: "Dennis Kucinich", richardsonTag: "Bill Richardson"};

def isPac(id):
	return id[0:2] == 'C0'

# edge (i, j) means that i donated to j.
allPacs = set([])
# first, find all pacs that donated to the candidates of interest. (exists edge )
for node in G.nodes():
import networkx as nx# sudo pip install networkx
import file_reader

minDate = "01012008"

G = nx.DiGraph() #directed graph

file_reader.readInDonors(G, 1.0, true, minDate)
file_reader.readCommitteeToCommittee(G)
weightedPR = nx.pagerank(G)
for candidate in dems2008.keys():
	print dems2008[candidate], weightedPR[candidate] 
			 nClique['pacNclique'],
			 str(cs[candidate['id']]['community_size']),
			 str(cs[candidate['id']]['pacs_in_community'])])	
		print outstr


print 'year,party,name,id,delegates,percent_of_delegates,popular_vote,weighted_page_rank,pacs_contributing,direct_individual_donors,all_individual_donors,pac_n_clique_overlap,all_n_clique_overlap,community_size,pacs_in_community'
for year in [2004]:
	G = nx.DiGraph() #directed graph
	ndG = nx.Graph() # non-directed graph: must be non-directed for com

	donorFile = "../CS224w_Project/" + str(int(year) - 1) + "_" + str(year) + "/itcont.txt"
	committeeFile = "../CS224w_Project/" + str(int(year) - 1) + "_" + str(year) + "/itoth.txt"
	cnFile = "../CS224w_Project/" + str(int(year) - 1) + "_" + str(year) + "/cn.txt"
	itpasFile = "../CS224w_Project/" + str(int(year) - 1) + "_" + str(year) + "/itpas2.txt"

	minDate = "0101" + str(year)
	file_reader.readInDonors(G, minDate, donorFile)
	file_reader.readCommitteeToCommittee(G, committeeFile, minDate)
	file_reader.readCommitteeToCandidate(G, itpasFile, cnFile, minDate)

	file_reader.readInDonors(ndG, minDate, donorFile)
	file_reader.readCommitteeToCommittee(ndG, committeeFile, minDate)
	file_reader.readCommitteeToCandidate(ndG, itpasFile, cnFile, minDate)
	weightedPR = nx.pagerank(G)

	partition = community.best_partition(ndG)

	print_stats(year, 'd', G, ndG, candidates, partition)
	print_stats(year, 'r', G, ndG, candidates, partition)
import networkx as nx# sudo pip install networkx
import file_reader
import community
import matplotlib.pyplot as plt


G = nx.Graph() # non-directed graph: must be non-directed for com
donorFile = "../CS224w_Project/1995_1996/itcont.txt"
committeeFile = "../CS224w_Project/1995_1996/itoth.txt"
cnFile = "../CS224w_Project/1995_1996/cn.txt"
itpasFile = "../CS224w_Project/1995_1996/itpas2.txt"

file_reader.readInDonors(G, "01011996", donorFile)
print 'read donors'
file_reader.readCommitteeToCommittee(G, committeeFile)
file_reader.readCommitteeToCandidate(G, itpasFile, cnFile, '01011996')
print 'read committees'
#first compute the best partition
print 'made partition'

candidates = set(['C00317743','C00361352','C00343772',  'C00452532', 'C00301333',  'C00299917', 
'C00301465','C00302216'])

def community_structure(G, candidates):
    partition = community.best_partition(G)
    to_return = {}
    candidates_found = 0
    for candidate in candidates:
        to_return[candidate] = {}
    candidate_to_pacs_in_community = {}
    candidate_to_community_size = {}