Python: Диагностика виртуального окружения
Диагностика виртуального окружения
Представь, что ты пишешь вспомогательный скрипт для команды: он читает лог-вывод команд диагностики виртуального окружения и определяет, всё ли настроено правильно.
Что уже дано
Проверяющая система ничего не создаёт заранее. Твой скрипт получает данные через stdin и должен напечатать результат в stdout.
Что нужно сделать
Напиши программу, которая:
- Читает из
stdinнесколько строк — каждая строка представляет вывод одной диагностической команды. - Для каждой строки определяет, является ли путь локальным (содержит
.venvкак компонент пути) или системным (не содержит.venv). - Выводит итоговый вердикт:
- Если все строки содержат
.venv— выведиOK: виртуальное окружение активно. - Если хотя бы одна строка не содержит
.venv— выведиWARN: обнаружен системный интерпретатори на следующих строках выведи все «подозрительные» строки в том же порядке, в котором они встретились во вводе (каждую с префиксом-).
Ввод и вывод
Программа читает stdin и пишет в stdout.
Формат ввода
Первая строка — целое число n (1 ≤ n ≤ 20): количество диагностических строк.
Следующие n строк — произвольные непустые строки, имитирующие вывод команд which python, which pip, where python и т. п.
Формат вывода
Если все строки содержат .venv:
OK: виртуальное окружение активно
Если хотя бы одна строка не содержит .venv:
WARN: обнаружен системный интерпретатор - <подозрительная строка 1> - <подозрительная строка 2> ...
Пример
- Ввод
3 /home/user/project/.venv/bin/python /home/user/project/.venv/bin/pip /home/user/project/.venv/bin/python3
- Вывод
OK: виртуальное окружение активно
Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.
Отправьте решение, чтобы увидеть результаты тестов.
Связанные задачи
- Импорт модулей стандартной библиотеки — задача по Python
- Python: Валидатор pyproject.toml
- Абсолютные импорты Python: задача с пакетом warehouse
- Python: Публичный фасад пакета reports: init.py и all
- Python: Диагностика циклического импорта по traceback
- Comprehension, enumerate и zip в Python: отчёт по студентам
