diff options
Diffstat (limited to 'gas.py')
-rw-r--r-- | gas.py | 94 |
1 files changed, 61 insertions, 33 deletions
@@ -1,77 +1,105 @@ # -*- coding: utf-8 -*- import argparse +import os +import pickle from board import DynamicFlyer - - - - +from repository import RepositoryChecker if __name__ == '__main__': parser = argparse.ArgumentParser() + parser.add_argument('--repo', help='Set the Git repository to process', type=str, required=True) + parser.add_argument('--year', help='Set the year to pay attention to', type=int, required=True) parser.add_argument('--header', help='Define the main title of the picture', type=str, required=True) parser.add_argument('--footer', help='Define a conclusion for the picture', type=str, required=True) parser.add_argument('--output', help='Set the output filename', type=str, required=True) args = parser.parse_args() + cache = args.repo + '.pickle' + if os.path.isfile(cache): - flyer = DynamicFlyer(250) + checker = pickle.load(open(cache, 'rb')) - flyer.print_header(args.header) + else: - data = { - 100 : 100, - 200 : 123, - 400 : 700, - 600 : 650, - 900 : 900 - } + checker = RepositoryChecker(args.repo, args.year) + checker.process() - color = (0.5, 0.2, 0.7) + pickle.dump(checker, open(cache, 'wb')) - color = (0.047, 0.365, 0.533) + # Colors - flyer.render_commit_timeline(0, 1000, data, False, color) + red = (1.0, 0.353, 0.165) + blue = (0.047, 0.365, 0.533) + green = (0.118, 0.71, 0.392) + grey = (0.6, 0.6, 0.6) - colors = [ (0.812, 0.176, 0.08), (0.04, 0.58, 0.255) ] + # Draw now! - colors = [ (0.643, 0.133, 0), (0, 0.459, 0.20) ] + flyer = DynamicFlyer(250) - colors = [ (1.0, 0.353, 0.165), (0.118, 0.71, 0.392) ] + flyer.print_header(args.header) - data = { - 'Insertions' : 794, - 'Deletions' : 312 - } + flyer.render_commit_timeline(checker.get('start'), checker.get('end'), checker.get('timeline'), False, blue) - flyer.render_pie('Code', data, colors) + # Code data = { - 'Added' : 100, - 'Removed' : 13 + 'Insertions' : (checker.get('insertions'), green), + 'Deletions' : (checker.get('deletions'), red) } - flyer.render_pie('Files', data, colors) + flyer.render_pie('Code', data) + + print('[i] Code:', checker.get('insertions'), checker.get('deletions')) + + # Files data = { - 'C' : 2489, - 'Python' : 631 + 'Added' : (checker.get('added'), green), + 'Removed' : (checker.get('removed'), red) } - flyer.render_pie('Languages', data, colors) + flyer.render_pie('Files', data) + + print('[i] Files:', checker.get('added'), checker.get('removed')) + + # Languages + + used = checker.get('last_metrics').get_most_used(4) + + data = {} + + colors = (green, red, blue, grey) + + i = 0 + + for v, n in used: + + data[n] = (v, colors[i]) + + i += 1 + + flyer.render_pie('Languages', data) + + # TODO / FIXME data = { - 'Remaining' : 89, - 'Killed' : 31 + 'Old' : (checker.get('old'), grey), + 'New' : (checker.get('new'), red), + 'Killed' : (checker.get('killed'), green) } - flyer.render_pie('TODO / FIXME', data, colors) + flyer.render_pie('TODO / FIXME', data) + + print('[i] TODO / FIXME:', checker.get('old'), checker.get('new'), checker.get('killed')) + # Conclusion flyer.print_footer(args.footer) |