Задача курса

Python: Публичный фасад пакета reports: init.py и all

Курс «Python для продвинутых: ООП, типизация и тестирование» · урок «Публичный фасад пакета: __init__.py, соглашения _name и __all__»

Условие

Публичный фасад пакета reports: init.py и all

Ты строишь публичный API пакета reports. Пакет уже существует: подмодули созданы проверяющей системой. Твоя задача — написать содержимое reports/__init__.py так, чтобы он стал правильным публичным фасадом.

Что уже дано

Проверяющая система скрыто создаёт пакет reports/ со следующей структурой:

reports/
 __init__.py ← ты пишешь его содержимое (см. ниже)
 summary.py # содержит: функцию generate(data: list) -> str,
 # константу DEFAULT_TITLE: str = "Report",
 # внутреннюю функцию _format_row(row) -> str
 export.py # содержит: функцию to_csv(data: list, path: str) -> None,
 # внутреннюю переменную _DELIMITER: str = ","

В редакторе ты видишь только код reports/__init__.py — именно его ты должен заполнить. Блок start_code создаёт файлы пакета до запуска твоего кода.

Что нужно сделать

Напиши содержимое reports/__init__.py, который:

  1. Реэкспортирует из reports.summary функцию generate и константу DEFAULT_TITLE.
  2. Реэкспортирует из reports.export функцию to_csv.
  3. Объявляет __all__ ровно с тремя именами: 'generate', 'DEFAULT_TITLE', 'to_csv' — в любом порядке.
  4. Не реэкспортирует и не включает в __all__ внутренние имена _format_row и _DELIMITER.

Ввод и вывод

stdin не используется. Печатать через print в stdout ничего не нужно.

Проверяющая система после выполнения твоего кода импортирует пакет reports и проверяет его глобальное состояние: наличие нужных имён, содержимое __all__, поведение from reports import *.

Пример использования

print(__all__)
print(generate(["A", "B"]))

Результат:

['generate', 'DEFAULT_TITLE', 'to_csv']
Report
A
B

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

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