|
|
@@ -12,6 +12,15 @@ def is_valid_file(parser, arg):
|
|
|
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 = '((*'
|
|
|
@@ -20,31 +29,10 @@ def create_template(args):
|
|
|
env.variable_end_string = ')))'
|
|
|
env.comment_start_string = '((='
|
|
|
env.comment_end_string = '=))'
|
|
|
+ env.filters['simpledate'] = simpledate
|
|
|
return env.get_template(args.template)
|
|
|
|
|
|
|
|
|
-def fix_date(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 preprocess(data):
|
|
|
- # TODO: fix date in locale-agnostic way
|
|
|
- for stage in data['education']:
|
|
|
- stage['startDate'] = fix_date(stage['startDate'])
|
|
|
- stage['endDate'] = fix_date(stage['endDate'])
|
|
|
-
|
|
|
- for work in data['work']:
|
|
|
- work['startDate'] = fix_date(work['startDate'])
|
|
|
- work['endDate'] = fix_date(work['endDate'])
|
|
|
-
|
|
|
- return data
|
|
|
-
|
|
|
-
|
|
|
def main():
|
|
|
parser = argparse.ArgumentParser()
|
|
|
|
|
|
@@ -56,7 +44,7 @@ def main():
|
|
|
help="JSON resume", required=True)
|
|
|
|
|
|
args = parser.parse_args()
|
|
|
- data = preprocess(json.load(open(args.resume, 'r')))
|
|
|
+ data = json.load(open(args.resume, 'r'))
|
|
|
template = create_template(args)
|
|
|
result = template.render(resume=data).encode('utf-8')
|
|
|
print(result)
|