def _readRow(self, row): book = Book() book.bc_author_details = row['author_details'] book.bc_title = row['title'] book.bc_isbn = row['isbn'] book.bc_publisher = row['publisher'] book.bc_date_published_orig = row['date_published'] book.bc_date_published = self._parseDate(row['date_published']) book.bc_rating = int(row['rating']) book.bc_read = bool(int(row['rating'])) book.bc_series_details = row['series_details'] book.bc_pages = self._valueOrNull(row['pages']) book.bc_list_price = row['list_price'] book.bc_anthology = int(row['anthology']) book.bc_location = row['location'] book.bc_read_start = self._parseDate(row['read_start']) book.bc_read_start_orig = row['read_start'] book.bc_read_end = self._parseDate(row['read_end']) book.bc_read_end_orig = row['read_end'] book.bc_book_format = row['format'] book.bc_signed = bool(int(row['signed'])) book.bc_loaned_to = row['loaned_to'] book.bc_anthology_titles = row['anthology_titles'] book.bc_description = row['description'] book.bc_genre = row['genre'] book.bc_language = row['language'] book.bc_date_added = self._dt(row['date_added']) book.bc_goodreads_bookid = int(row['goodreads_book_id']) book.bc_goodreads_sync_date = self._parseDate(row['last_goodreads_sync_date']) book.bc_last_update_date = self._dt(row['last_update_date']) book.bc_uuid = uuid.UUID(row['book_uuid']) shelf_ids = self._getBookshelfs(row['bookshelf_id'], row['bookshelf']) return book