Sort alphabetical locality then by name.
This commit is contained in:
@ -5,6 +5,7 @@ import tempfile
|
|||||||
import jinja2
|
import jinja2
|
||||||
import os
|
import os
|
||||||
from playwright.sync_api import sync_playwright
|
from playwright.sync_api import sync_playwright
|
||||||
|
from itertools import groupby
|
||||||
|
|
||||||
def is_number(s):
|
def is_number(s):
|
||||||
"""Returns True if s can be interpreted as a float."""
|
"""Returns True if s can be interpreted as a float."""
|
||||||
@ -37,9 +38,15 @@ def main():
|
|||||||
reader = csv.DictReader(f, delimiter='\t')
|
reader = csv.DictReader(f, delimiter='\t')
|
||||||
rows = list(reader)
|
rows = list(reader)
|
||||||
|
|
||||||
# 2. Sort rows by sending locality
|
# 2. Sort rows by sending locality first, then by name
|
||||||
rows = sorted(rows, key=lambda r: r.get("Sending locality:", "").strip())
|
rows = sorted(rows, key=lambda r: (
|
||||||
|
r.get("Sending locality:", "").strip(),
|
||||||
|
r.get("Name (last, first): ", "").strip()
|
||||||
|
))
|
||||||
|
# Group rows by locality to generate separate pdfs
|
||||||
|
grouped_rows = groupby(rows, key=lambda r: r.get("Sending locality:", "").strip())
|
||||||
|
|
||||||
|
|
||||||
# Known columns to skip
|
# Known columns to skip
|
||||||
skip_cols = {
|
skip_cols = {
|
||||||
'Timestamp',
|
'Timestamp',
|
||||||
@ -51,7 +58,7 @@ def main():
|
|||||||
# 3. Process each row into a data structure for Jinja2
|
# 3. Process each row into a data structure for Jinja2
|
||||||
processed_rows = []
|
processed_rows = []
|
||||||
for row in rows:
|
for row in rows:
|
||||||
name = row.get('Name (last, first):', '').strip()
|
#name = row.get('Name (last, first):', '').strip() # TODO: Refactor: This isn't working because it's 'Name (last, first): '. Unused for now.
|
||||||
locality = row.get('Sending locality:', '').strip()
|
locality = row.get('Sending locality:', '').strip()
|
||||||
|
|
||||||
q_and_a = []
|
q_and_a = []
|
||||||
@ -90,7 +97,7 @@ def main():
|
|||||||
})
|
})
|
||||||
|
|
||||||
processed_rows.append({
|
processed_rows.append({
|
||||||
"name": name,
|
# "name": name,
|
||||||
"locality": locality,
|
"locality": locality,
|
||||||
"entries": q_and_a
|
"entries": q_and_a
|
||||||
})
|
})
|
||||||
|
Reference in New Issue
Block a user