Одиночные диапазоны байтов HTTP
RangeTallow переносит задачу одного HTTP-диапазона в беседу о проекте Windows. Попросите подключённую модель разобрать включительные границы и пустые ресурсы, затем проверьте код и предположения об ответе.
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)
Проверьте перед применением
Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.
Подключение
Базовый URL, учётные данные и доступный сервер.
Проект
Проверьте открытый конец и суффикс, ограничьте конец размером и верните отсутствие интервала для недоступного диапазона, отклоняя неверный синтаксис и несколько диапазонов.
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)
Сохраняйте смысл обрабатываемого запроса при рефакторинге утилиты
RangeTallow — программа для разработки с ИИ, позволяющая проверять изменения утилит в контексте зависящего от них приложения. Откройте проект в Windows и опишите поведение, которое должно сохраниться при рефакторинге. Попросите модель изучить разбор входа, возвращаемые значения и соответствующий вызывающий код вместе. Так более короткая реализация не изменит смысл запроса незаметно.
Можно использовать byte_range.py для обсуждения разрешения суффиксного диапазона при известном размере файла. Подготовьте явные примеры обычного диапазона, пустого ресурса и запроса за пределами доступного содержимого. Проверьте результат вспомогательной функции перед решением о его использовании обработчиком ответа. Рассматривайте интерпретацию диапазона и создание ответа как связанные обязанности с понятной границей.
Протестируйте предлагаемую правку в среде проекта, включая случаи, отличающие неверный синтаксис от неудовлетворимого диапазона. Изучите код ответа, использующий результат, чтобы новое соглашение о возврате не создало вводящий в заблуждение вывод. RangeTallow поддерживает подключения, совместимые с OpenAI, или подключения Anthropic, с учётными данными по необходимости. Модели без ограничений можно выбрать, если конечная точка их предлагает; пределы контекста, инструменты и ограничения зависят от модели и сервера. Принятые примеры запросов дают обсуждению рефакторинга конкретный критерий успеха.
Проверка изменений обработки диапазонов
Зачем различать неверный синтаксис и неудовлетворимый запрос?
Это разные условия: запрос может не соответствовать допустимому синтаксису или требовать содержимое, недоступное при известном размере. Задайте представление каждого случая во вспомогательной функции и изучите использование этого различия обработчиком ответа.
Достаточно ли разобранного диапазона для правильного ответа?
Нет. Вызывающий код должен построить ответ по своему контракту и фактическому ресурсу. Проверьте, как он использует возвращённые границы, включая выбор тела и поведение статуса, не считая успешный разбор завершённой интеграцией.
Что указать в примере суффикса?
Укажите запрошенную длину суффикса, известный размер ресурса и ожидаемые включительные границы или результат отклонения. Добавьте пустой ресурс, чтобы реализация не полагалась на обязательное наличие последнего байта для выбора.
Как удержать рефакторинг в заданных рамках?
Запишите текущие принимаемые случаи и задуманное изменение, если оно есть. Запросите предложение с сохранением остального поведения, затем изучите разницу и прогоните эти случаи через вспомогательную функцию и вызывающий код.
RangeTallow · Обновлено 2026-10-25