- assert isinstance(todo, Todo)
- return todo
- for row in db_conn.exec('SELECT * FROM todos WHERE id = ?', (id_,)):
- return cls.from_table_row(db_conn, row)
- raise NotFoundException(f'Todo of ID not found: {id_}')
+ else:
+ todo = None
+ for row in db_conn.exec('SELECT * FROM todos WHERE id = ?',
+ (id_,)):
+ todo = cls.from_table_row(db_conn, row)
+ break
+ if todo is None:
+ raise NotFoundException(f'Todo of ID not found: {id_}')
+ for row in db_conn.exec('SELECT child FROM todo_children '
+ 'WHERE parent = ?', (id_,)):
+ todo.children += [cls.by_id(db_conn, row[0])]
+ for row in db_conn.exec('SELECT parent FROM todo_children '
+ 'WHERE child = ?', (id_,)):
+ todo.parents += [cls.by_id(db_conn, row[0])]
+ assert isinstance(todo, Todo)
+ return todo