from ..Connector import Connector from ..models.Book import Book from sqlalchemy.exc import IntegrityError import logging class BookConnector(Connector): def save_book(self, item): session = self.get_session() book = Book() book.update(item) book.image_path = item['images'][0]['path'] try: session.add(book) session.commit() except IntegrityError: logging.debug('Duplicate exist') session.rollback() session.query(Book).filter(Book.upc == book.upc).update({k:v for k, v in book.__dict__.items() if k in book.__table__.columns.keys()}) session.commit()