Откройте контекст
Выберите папку проекта и обозначьте нужные файлы или поведение.
Найдите консервативные конфликты границ среди до 64 частей по 65536 байтов с ASCII-маркером длиной 1–70 из букв, цифр, подчёркивания и дефиса. Проверьте префикс в начале и после CRLF, включая более длинные совпадения, и отклоняйте неверные маркеры без заявления о полном валидаторе MIME.
Выберите папку проекта и обозначьте нужные файлы или поведение.
Укажите входные данные, ожидаемый результат и границы, которые нужно сохранить.
Проверьте предлагаемые изменения и команды, прежде чем полагаться на результат.
Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.
import re
def boundary_conflicts(boundary, parts):
if type(boundary) is not bytes or re.fullmatch(rb"[A-Za-z0-9_-]{1,70}", boundary) is None:
raise ValueError("mime.boundary")
if type(parts) is not list or len(parts) > 64 or any(type(p) is not bytes or len(p) > 65536 for p in parts):
raise ValueError("mime.parts")
marker = b"--"+boundary
return [i for i, part in enumerate(parts) if part.startswith(marker) or b"\r\n"+marker in part]
Пример — отправная точка для реального проекта, а не утверждение, что сгенерированный код уже протестирован. Адаптируйте пути, зависимости и ожидаемое поведение к своему приложению.