RRangeTallow
Сценарии

Сценарии работы с кодом · Одиночные диапазоны байтов HTTP

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

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

Разрешите один ASCII-диапазон байтов HTTP для ресурса размером от нуля до 10^12 по заголовку до 80 символов. Проверьте открытый конец и суффикс, ограничьте конец размером и верните отсутствие интервала для недоступного диапазона, отклоняя неверный синтаксис и несколько диапазонов.

01

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

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

02

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

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

03

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

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

04

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

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

Одиночные диапазоны байтов HTTP

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

def byte_range(header, size):
    if type(header) is not str or len(header) > 80 or type(size) is not int or not 0 <= size <= 10**12:
        raise ValueError("range.input")
    match = re.fullmatch(r"bytes=([0-9]*)-([0-9]*)", header)
    if match is None or not any(match.groups()):
        raise ValueError("range.syntax")
    left, right = match.groups()
    if not left:
        suffix = int(right)
        if suffix == 0 or size == 0:
            return None
        return max(0, size-suffix), size-1
    start = int(left)
    end = int(right) if right else size-1
    if start >= size or end < start:
        return None
    return start, min(end, size-1)

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

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

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

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