-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgen-namebadges
executable file
·34 lines (29 loc) · 1.19 KB
/
gen-namebadges
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#! /usr/bin/env nix-shell
#! nix-shell -i python3 -p "texlive.combine { inherit (texlive) scheme-full; }"
import csv
import subprocess
import os
def generate_tex_from_csv(input_csv, output_tex):
with open(input_csv) as csvfile:
attendees_reader = csv.DictReader(csvfile)
attendees = list(attendees_reader)
attendees_sorted = sorted(attendees, key=lambda attendee: attendee['Last Name'])
with open(output_tex, 'w') as tex_file:
for attendee in attendees_sorted:
is_tng = attendee['Ticket Type'] == 'TNG' or attendee['Email'].endswith('@tngtech.com')
print_dict = {
'firstName': attendee['First Name'],
'lastName': attendee['Last Name'],
'affiliation': 'TNG Technology Consulting' if is_tng else attendee['Company']
}
tex_file.write("\\confpin{{{firstName} {lastName}}}{{{affiliation}}}\n".format(**print_dict))
def build_tex(name):
subprocess.run(['pdflatex', name]).check_returncode()
def main():
if os.path.isfile('attendees.csv'):
generate_tex_from_csv('attendees.csv','attendees.tex')
build_tex('namebadges')
if os.path.isfile('orga.csv'):
generate_tex_from_csv('orga.csv','orga.tex')
build_tex('namebadges-orga')
main()