def arrive(self, count): """Прибытие новой партии книг данного издания.""" self.count += count self.is_frozen = 0 summ = count*self.price BookStore.log(f'arrived book {str(self)} {count}. It has value {summ} with {self.retail_markup}.') return summ
def __init__(self, buyer, wishlist): """создание заказа: покупатель и пожелания.""" self.buyer = buyer self.wishes = wishlist self.buyer.order += 1 self.buyer.books.extend(wishlist) BookStore.log( f'created buyer {buyer} {[str(wish) for wish in wishlist]}')
def get(self, wish=None): """получение книги автора.""" BookStore.log(f'book {wish} got from {self.author}') temp = None for book in self.bibliography: if wish.title == book.title: temp = book if temp.count > 0: return temp return temp
def __init__(self, **kwargs): self.name = 'John' self.surname = 'Doe' self.address = 'nothing' self.telephone_number = '000-000-00-00' self.email = '*****@*****.**' for key, value in kwargs.items(): attr = key.lower() if attr in self.__slots__: setattr(self, attr, value) BookStore.log(f'created buyer {str(self)} ') self.books = [] self.order = 0 self.summ = 0
def booking(self): """оформление заказа.""" # каждая книга обрабатывается summ = 0 flag = True for wish in self.wishes: edition = wish.one_book.get_edition() if (edition is None): flag = False else: summ += edition.booking() BookStore.log((str(self), flag), 'Order') self.buyer.summ += summ return summ
def booking(self): """Заказ издания.""" if self.count > 0: self.count -= 1 self.demand += 1 self.sold += 1 self.book.income += self.retail_markup BookStore.log(f'bought book {str(self)} for {self.retail_markup}') return self.retail_markup else: self.demand += 1 BookStore.bid_book(self) BookStore.log(f"can't buy book {str(self)} ") return 0
def __init__(self, **kwargs): """Инициализация по списку параметров, определение списка изданий и. прочих параметров. """ self.editions = [] self.author = 'nobody' self.title = 'nothing' self.first_published = 2019 self.income = 0 for key, value in kwargs.items(): attr = key.lower() if (attr == 'year'): temp = int(value) if temp < self.first_published: self.first_published = temp elif (attr == 'topics') or (attr == 'category'): set_value = value.split() else: set_value = value if attr in self.__slots__: setattr(self, attr, set_value) self.editions = [Edition(self, **kwargs)] BookStore.log(f'created book {str(self)} ')
def __init__(self, book, **kwargs): """Инициализация по списку параметров, определение неустановленных. параметров. """ self.book = book for key, value in kwargs.items(): attr = key.lower() set_value = value if value.isdigit(): set_value = int(value) if (attr == 'topics') or (attr == 'categories'): set_value = value.split() if attr in self.__slots__: setattr(self, attr, set_value) self.pages_used = random_pages() self.price = random_price(self) self.retail_markup = markup(self.price) self.demand = 0 self.sold = 0 self.newness = 0 self.count = random_count(self.price) self.is_frozen = 0 BookStore.log(f'created book {str(self)} ')
def arrive(self, editionlist): for edition, count in editionlist: self.cash += edition.arrive(count) BookStore.log(f'{self.name} book {edition.book.title} arrived ')
def add(self, one_edition): self.editions += [one_edition] BookStore.log(f'{self.name} added {one_edition.book.title}')
def __init__(self, name): self.AVT = 3 self.name = name self.editions = [] self.cash = 0 BookStore.log(f'Publisher {name} created')
def __init__(self, name): """создание нового автора, с заданным именем и пустой библиографией.""" self.author = name self.bibliography = [] BookStore.log(f'author {name} created/n')
def add(self, one_book): """добавление книги в библиографию.""" self.bibliography.append(one_book) BookStore.log(f'author{self.author} book {one_book.title} added')