MMinuteBramble
Сценарии

Сценарии работы с кодом · Развёртывание поля минут

03
Вокруг ваших задач

Конкретная отправная точка

Разверните поле минут до 128 символов в отсортированные уникальные значения от нуля до 59. Проверьте списки, включительные диапазоны и шаги для диапазонов или звёздочек, отклоняя обратные границы, нулевые шаги и лишний синтаксис без запуска заданий.

01

Откройте контекст

Выберите папку проекта и обозначьте нужные файлы или поведение.

02

Опишите изменение

Укажите входные данные, ожидаемый результат и границы, которые нужно сохранить.

03

Изучите работу

Проверьте предлагаемые изменения и команды, прежде чем полагаться на результат.

04

Проверьте результат

Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.

Развёртывание поля минут

Конкретная отправная точка
import re

def minute_values(field):
    if type(field) is not str or not 1 <= len(field) <= 128:
        raise ValueError("minute.input")
    result = set()
    for item in field.split(","):
        match = re.fullmatch(r"(\*|[0-9]+(?:-[0-9]+)?)(?:/([0-9]+))?", item)
        if match is None:
            raise ValueError("minute.syntax")
        base, step_text = match.groups()
        step = int(step_text) if step_text else 1
        if not 1 <= step <= 59 or (step_text and base != "*" and "-" not in base):
            raise ValueError("minute.step")
        bounds = [int(x) for x in base.split("-")] if base != "*" else [0, 59]
        low, high = (bounds[0], bounds[-1])
        if not 0 <= low <= high <= 59:
            raise ValueError("minute.bounds")
        result.update(range(low, high+1, step))
    return sorted(result)

Пример — отправная точка для реального проекта, а не утверждение, что сгенерированный код уже протестирован. Адаптируйте пути, зависимости и ожидаемое поведение к своему приложению.

Рабочая среда с ИИ для кода

Здесь начинается ваше следующее изменение.

Скачать для Windows ↗