Код Junior Модули, пакеты и окружения обновлено

Разобрать requirements.txt

Условие

Напишите parse_requirements(text): верните словарь «имя пакета в нижнем регистре -> спецификатор версии» (строка после имени без пробелов, может быть пустой). Пропускайте пустые строки, комментарии (# в начале и всё после # в строке) и опции, начинающиеся с - (например, -r base.txt). Имя пакета: латиница, цифры, -, _, .; квадратные скобки с extras (uvicorn[standard]) отбросьте.

Примеры

parse_requirements("Django>=5.2,<6\nrequests==2.32.3\n") // {"django":">=5.2,<6","requests":"==2.32.3"}
parse_requirements("") // {}
parse_requirements("# comment\n\n-r base.txt\npytest  # tests\n") // {"pytest":""}

Как подойти

Подсказки: 2
  1. split("#", 1)[0] отрезает комментарий.
  2. Регулярка: имя, необязательные [...], остаток.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

Термины по теме