Задача курса

Абсолютные импорты 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.

Функция должна:

  1. Импортировать count_items из warehouse.inventory через абсолютный импорт (from warehouse.inventory import count_items).
  2. Импортировать total_cost из warehouse.pricing через абсолютный импорт (from warehouse.pricing import total_cost).
  3. Вернуть словарь с двумя ключами:
  • "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}

Попробуйте решить

РешениеPython
Без регистрации · результат не сохраняется