Commit 7184050f606d70dad62f5ecd4722e30e5aff7e3c

Added new dump to CSV

Two new dumps were added: for filetype and for every changeset.
csvdump.py
(43 / 1)
  
2828 stat = PeriodCommitHash[authdatekey]
2929 stat.accumulate (p)
3030
31ChangeSets = []
32FileTypes = []
33
34def store_patch(patch):
35 if not patch.merge:
36 employer = patch.author.emailemployer(patch.email, patch.date)
37 employer = employer.name.replace('"', '.').replace ('\\', '.')
38 author = patch.author.name.replace ('"', '.').replace ('\\', '.')
39 author = patch.author.name.replace ("'", '.')
40 try:
41 domain = patch.email.split('@')[1]
42 except:
43 domain = patch.email
44 ChangeSets.append([patch.commit, str(patch.date),
45 patch.email, domain, author, employer,
46 patch.added, patch.removed])
47 for (filetype, (added, removed)) in patch.filetypes.iteritems():
48 FileTypes.append([patch.commit, filetype, added, removed])
49
50
51def save_csv (prefix='data'):
52 # Dump the ChangeSets
53 if len(ChangeSets) > 0:
54 fd = open('%s-changesets.csv' % prefix, 'w')
55 writer = csv.writer (fd, quoting=csv.QUOTE_NONNUMERIC)
56 writer.writerow (['Commit', 'Date', 'Domain',
57 'Email', 'Name', 'Affliation',
58 'Added', 'Removed'])
59 for commit in ChangeSets:
60 writer.writerow(commit)
61
62 # Dump the file types
63 if len(FileTypes) > 0:
64 fd = open('%s-filetypes.csv' % prefix, 'w')
65 writer = csv.writer (fd, quoting=csv.QUOTE_NONNUMERIC)
66
67 writer.writerow (['Commit', 'Type', 'Added', 'Removed'])
68 for commit in FileTypes:
69 writer.writerow(commit)
70
71
72
3173def OutputCSV (file):
3274 if file is None:
3375 return
8383 writer.writerow ([author_name, stat.email, empl_name, stat.date,
8484 stat.added, stat.removed])
8585
86__all__ = [ 'OutputCSV' ]
86__all__ = [ 'AccumulatePatch', 'OutputCSV', 'store_patch' ]
gitdm
(12 / 4)
  
2929AuthorSOBs = 1
3030FileFilter = None
3131CSVFile = None
32CSVPrefix = None
3233AkpmOverLt = 0
3334DumpDB = 0
3435CFName = 'gitdm.config'
4343# -h hfile HTML output to hfile
4444# -l count Maximum length for output lists
4545# -o file File for text output
46# -p prefix Prefix for CSV output
4647# -r pattern Restrict to files matching pattern
4748# -s Ignore author SOB lines
4849# -u Map unknown employers to '(Unknown)'
5353def ParseOpts ():
5454 global MapUnknown, DevReports
5555 global DateStats, AuthorSOBs, FileFilter, AkpmOverLt, DumpDB
56 global CFName, CSVFile
56 global CFName, CSVFile, CSVPrefix
5757
58 opts, rest = getopt.getopt (sys.argv[1:], 'adc:Dh:l:o:r:sux:z')
58 opts, rest = getopt.getopt (sys.argv[1:], 'adc:Dh:l:o:p:r:sux:z')
5959 for opt in opts:
6060 if opt[0] == '-a':
6161 AkpmOverLt = 1
7171 reports.SetMaxList (int (opt[1]))
7272 elif opt[0] == '-o':
7373 reports.SetOutput (open (opt[1], 'w'))
74 elif opt[0] == '-p':
75 CSVPrefix = opt[1]
7476 elif opt[0] == '-r':
7577 print 'Filter on "%s"' % (opt[1])
7678 FileFilter = re.compile (opt[1])
362362 hacker.addreport (p)
363363 CSCount += 1
364364 csvdump.AccumulatePatch (p)
365 csvdump.store_patch (p)
365366print >> sys.stderr, 'Grabbing changesets...done '
366367
367368if DumpDB:
390390 PrintDateStats ()
391391 sys.exit(0)
392392
393csvdump.OutputCSV (CSVFile)
394if CSVFile is not None:
393if CSVPrefix:
394 csvdump.save_csv (CSVPrefix)
395
396if CSVFile:
397 csvdump.OutputCSV (CSVFile)
395398 CSVFile.close ()
396399
397400if DevReports:

Comments

Add a new comment:

Login or create an account to post a comment

Add your comment