summaryrefslogtreecommitdiff
path: root/lib/git/stats.py
blob: 95dc875ee722908aa919108a69c09b836d84076c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Stats(object):
    def __init__(self, repo, total, files):
        self.repo = repo
        self.total = total
        self.files = files

    @classmethod
    def list_from_string(cls, repo, text):
        hsh = {'total': {'insertions': 0, 'deletions': 0, 'lines': 0, 'files': 0}, 'files': {}}
        for line in text.splitlines():
            (insertions, deletions, filename) = line.split("\t")
            hsh['total']['insertions'] += int(insertions)
            hsh['total']['deletions'] += int(deletions)
            hsh['total']['lines'] = (hsh['total']['deletions'] + hsh['total']['insertions'])
            hsh['total']['files'] += 1
            hsh['files'][filename.strip()] = {'insertions': int(insertions), 'deletions': int(deletions)}
        return Stats(repo, hsh['total'], hsh['files'])