Задача курса
Абсолютные импорты Python: задача с пакетом warehouse
Курс «Python для продвинутых: ООП, типизация и тестирование» · урок «Пакет из нескольких модулей и абсолютные импорты»
Условие
Абсолютный импорт из скрытого пакета warehouse
Что уже дано
Проверяющая система скрыто создаёт пакет warehouse/ со следующей структурой:
warehouse/
__init__.py # пустой
inventory.py # содержит функцию count_items(items: list[str]) -> int
pricing.py # содержит функцию total_cost(items: list[str], price_per_item: float) -> float
count_items(items) возвращает количество элементов в списке.total_cost(items, price_per_item) возвращает len(items) * price_per_item, округлённое до двух знаков.
Этот пакет уже доступен для импорта по имени warehouse.
Что нужно сделать
Реализуй функцию get_warehouse_summary(items: list[str], price_per_item: float) -> dict.
Функция должна:
- Импортировать
count_itemsизwarehouse.inventoryчерез абсолютный импорт (from warehouse.inventory import count_items). - Импортировать
total_costизwarehouse.pricingчерез абсолютный импорт (from warehouse.pricing import total_cost). - Вернуть словарь с двумя ключами:
"count"— результат вызоваcount_items(items)"total"— результат вызоваtotal_cost(items, price_per_item)
Импорты обязаны быть абсолютными: from warehouse.inventory import ... и from warehouse.pricing import .... Любой другой способ получить эти имена (определить самостоятельно, скопировать логику) не засчитывается.
Ввод и вывод
stdin не используется.
Печатать через print в stdout ничего не нужно.
Проверяющая система вызывает get_warehouse_summary(items, price_per_item), где:
items— список строк (названия товаров), может быть пустым;price_per_item— число с плавающей точкой, цена одного товара.
Функция должна вернуть dict с ключами "count" (int) и "total" (float).
Пример использования
print(repr(get_warehouse_summary(['apple', 'banana', 'cherry'], 15.5)))
Результат:
{'count': 3, 'total': 46.5}
