def _extract(self):
try:
git_tree = self.api_repo.get_git_tree(self.api_repo.default_branch, recursive=True)
except GithubException:
git_tree = None
items = git_tree.tree if git_tree else []
files = [item for item in items if item.type == 'blob']
extensions_to_count = defaultdict(int)
extensions_to_size = defaultdict(int)
for file in files:
_, extension = os.path.splitext(file.path)
extension = extension.lower()
extensions_to_count[extension] += 1
extensions_to_size[extension] += file.size
total_count = sum(extensions_to_count.values())
total_size = sum(extensions_to_size.values())
relevant_count = sum(extensions_to_count[ext] for ext in self.extensions_to_check)
relevant_size = sum(extensions_to_size[ext] for ext in self.extensions_to_check)
self._extension_to_count_feature.value = relevant_count / total_count if total_count else 0
self._extension_to_size_feature.value = relevant_size / total_size if total_size else 0
评论列表
文章目录