| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import argparse
- import os
- import json
- import datetime
- import jinja2
- def is_valid_file(parser, arg):
- if not os.path.exists(arg):
- parser.error("%s does not exist." % arg)
- else:
- return arg
- def simpledate(date_string):
- try:
- d = datetime.datetime.strptime(date_string, '%Y-%M-%d')
- return d.strftime('%M/%Y')
- except ValueError:
- # in case this is not a date, we return it verbatim
- return date_string
- def create_template(args):
- env = jinja2.Environment(loader=jinja2.FileSystemLoader('.'))
- env.block_start_string = '((*'
- env.block_end_string = '*))'
- env.variable_start_string = '((('
- env.variable_end_string = ')))'
- env.comment_start_string = '((='
- env.comment_end_string = '=))'
- env.filters['simpledate'] = simpledate
- return env.get_template(args.template)
- def main():
- parser = argparse.ArgumentParser()
- parser.add_argument('-t', '--template',
- type=lambda x: is_valid_file(parser, x),
- help="Jinja2 input template", required=True)
- parser.add_argument('-r', '--resume',
- type=lambda x: is_valid_file(parser, x),
- help="JSON resume", required=True)
- parser.add_argument('-s', '--signature',
- type=lambda x: is_valid_file(parser, x),
- help="Signature image file", required=False)
- args = parser.parse_args()
- data = json.load(open(args.resume, 'r'))
- data['basics']['signature'] = args.signature
- template = create_template(args)
- print(template.render(resume=data))
- if __name__ == '__main__':
- main()
|