Условие:
В небольшой компании Orion Books информация о книгах хранится в базе данных SQLite. B этой базе есть таблица books с колонками: id - целое число, первичный ключ; title - название книги (строка, до 200 символов); author_name - имя автора (строка, до 100 символов); year - год издания (целое число).
Для аналитики нужно построить простой отчёт: список книг, изданных не раньше 2008 года. Такой отчёт должен:
подключаться к уже существующему файлу базы SQLite;
работать через SQLAlchemy ORM (модель Book, Session, select()), а не через «сырые» SQL-строки;
возвращать результаты в виде удобных кортежей.
Что сделать
Описать ORM-модель Book, сопоставленную с таблицей books: id (int), первичный ключ; title (str), String(200); author_name (str), String(100); year (int).
Реализовать функцию: def list_books_not_older_2008(db_path: str) -> list[tuple[str, str, int]]: ⋯
Функция должна:
подключиться к базе по адресу sqlite:///\{db_path\} через create_engine;
создать Session через sessionmaker;
выполнить ORM-запрос к модели Book, выбирающий книги, где year >= 2008;
отсортировать результаты по year (по возрастанию), затем по title (по возрастанию);
вернуть список кортежей вида (title, author_name, year).

