Остаток из текста ошибки
API на ошибку «мало товара» отвечает 409 и JSON с product_id и остатком left, чтобы сайт
предложил покупателю нужное количество. Обработчик достаёт остаток из текста ошибки.
После того как поменяли текст сообщения, он падает с ValueError.
Заведите ошибку OutOfStockError(ShopError) с атрибутами product_id и left,
выбрасывайте её в reserve и берите данные в обработчике из атрибутов.
Текст сообщения (str(e)) должен остаться прежним.
Подсказка 1 из 2
Выведите str(e).split() в обработчике — какой элемент там последний?
Подсказка 2 из 2
Сохраните данные в атрибутах ошибки (self.left = left), сообщение передайте в super().__init__, в обработчике ловите OutOfStockError и читайте e.left.