MCPcopy Index your code
hub / github.com/Persper/code-analytics / compute_commit_share

Method compute_commit_share

persper/graphs/analyzer.py:205–238  ·  view source on GitHub ↗
(self, alpha)

Source from the content-addressed store, hash-verified

203 return devrank(self.graph, alpha=alpha)
204
205 def compute_commit_share(self, alpha):
206 commit_share = {}
207 func_share = self.compute_function_share(alpha)
208 final_map = self.aggregate_id_map()
209
210 # Compute final history using final_map
211 final_history = {}
212 for sha in self.history:
213 final_history[sha] = {}
214 for fid, num_lines in self.history[sha].items():
215 if fid in final_map:
216 final_history[sha][final_map[fid]] = num_lines
217 else:
218 final_history[sha][fid] = num_lines
219
220 # add edits by each commit up to compute total edits
221 total_edits = {}
222 for sha in final_history:
223 for fid, num_lines in final_history[sha].items():
224 if fid in total_edits:
225 total_edits[fid] += num_lines
226 else:
227 total_edits[fid] = num_lines
228
229 # Propagate to commit level
230 for sha in final_history:
231 commit_share[sha] = 0
232 for fid in final_history[sha]:
233 if fid in func_share:
234 commit_share[sha] += \
235 (final_history[sha][fid] / total_edits[fid] *
236 func_share[fid])
237
238 return commit_share
239
240 def compute_developer_share(self, alpha):
241 dev_share = {}

Callers 1

Calls 3

aggregate_id_mapMethod · 0.95
itemsMethod · 0.80

Tested by

no test coverage detected