sheetsync: Move row_index variable into row dict

pull/401/head
Mike Lang 1 year ago committed by Mike Lang
parent c5c9075f9e
commit 256e0f7ba1

@ -191,8 +191,8 @@ class SheetSync(object):
# because then row_index won't be correct. # because then row_index won't be correct.
if row_index == 0: if row_index == 0:
continue continue
row = self.parse_row(worksheet, row) row = self.parse_row(worksheet, row_index, row)
self.sync_row(worksheet, row_index, row, events.get(row['id'])) self.sync_row(worksheet, row, events.get(row['id']))
if playlist_worksheet is not None: if playlist_worksheet is not None:
rows = self.sheets.get_rows(self.sheet_id, playlist_worksheet) rows = self.sheets.get_rows(self.sheet_id, playlist_worksheet)
@ -240,7 +240,7 @@ class SheetSync(object):
event_counts.labels(*labels).set(count) event_counts.labels(*labels).set(count)
return by_id return by_id
def parse_row(self, worksheet, row): def parse_row(self, worksheet, row_index, row):
"""Take a row as a sequence of columns, and return a dict {column: value}""" """Take a row as a sequence of columns, and return a dict {column: value}"""
row_dict = {'_parse_errors': []} row_dict = {'_parse_errors': []}
for column, index in self.column_map.items(): for column, index in self.column_map.items():
@ -269,9 +269,11 @@ class SheetSync(object):
# As a special case, treat an end time of "--" as equal to the start time. # As a special case, treat an end time of "--" as equal to the start time.
if row_dict["event_end"] == "--": if row_dict["event_end"] == "--":
row_dict["event_end"] = row_dict["event_start"] row_dict["event_end"] = row_dict["event_start"]
# Always include row index
row_dict["index"] = row_index
return row_dict return row_dict
def sync_row(self, worksheet, row_index, row, event): def sync_row(self, worksheet, row, event):
"""Take a row dict and an Event from the database (or None if id not found) """Take a row dict and an Event from the database (or None if id not found)
and take whatever action is required to sync them, ie. writing to the database or sheet.""" and take whatever action is required to sync them, ie. writing to the database or sheet."""
@ -288,14 +290,14 @@ class SheetSync(object):
if row['id'] is None: if row['id'] is None:
if self.allocate_ids: if self.allocate_ids:
row['id'] = uuid.uuid4() row['id'] = uuid.uuid4()
logging.info("Allocating id for row {!r}:{} = {}".format(worksheet, row_index, row['id'])) logging.info(f"Allocating id for row {worksheet!r}:{row['index']} = {row['id']}")
self.sheets.write_value( self.sheets.write_value(
self.sheet_id, worksheet, self.sheet_id, worksheet,
row_index, self.column_map['id'], row["index"], self.column_map['id'],
str(row['id']), str(row['id']),
) )
else: else:
logging.warning("Row {!r}:{} has no valid id, skipping".format(worksheet, row_index)) logging.warning(f"Row {worksheet!r}:{row['index']} has no valid id, skipping")
return return
logging.info("Inserting new event {}".format(row['id'])) logging.info("Inserting new event {}".format(row['id']))
@ -357,7 +359,7 @@ class SheetSync(object):
for col in changed: for col in changed:
self.sheets.write_value( self.sheets.write_value(
self.sheet_id, worksheet, self.sheet_id, worksheet,
row_index, self.column_map[col], row["index"], self.column_map[col],
format_output(getattr(event, col)), format_output(getattr(event, col)),
) )
rows_changed.labels('output', worksheet).inc() rows_changed.labels('output', worksheet).inc()
@ -372,7 +374,7 @@ class SheetSync(object):
logging.info("Updating sheet row {} with edit link {}".format(row['id'], edit_link)) logging.info("Updating sheet row {} with edit link {}".format(row['id'], edit_link))
self.sheets.write_value( self.sheets.write_value(
self.sheet_id, worksheet, self.sheet_id, worksheet,
row_index, self.column_map['edit_link'], row["index"], self.column_map['edit_link'],
edit_link, edit_link,
) )
self.mark_modified(worksheet) self.mark_modified(worksheet)

Loading…
Cancel
Save