Intervale HTTP unice de octeți
Rezolvă un singur interval ASCII de octeți HTTP pentru o resursă de la zero la 10^12 octeți cu antet de maximum 80 de caractere.
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)
Verifică înainte de aplicare
Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări.
Modele
Configurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat.
Proiect
Testează capete deschise și sufixe, limitează finalul și întoarce lipsa intervalului când cererea nu poate fi satisfăcută, respingând sintaxa greșită și intervalele multiple.
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)
Păstrează refactorizarea fidelă cererii pe care o interpretează
RangeTallow este software de programare cu IA pentru examinarea modificărilor utilitare în contextul aplicației care depinde de ele. Deschide proiectul în Windows și descrie comportamentul care trebuie să rămână stabil în timpul refactorizării. Cere modelului să examineze împreună parsarea intrării, valorile returnate și apelantul relevant. Astfel, o implementare mai scurtă nu schimbă implicit sensul unei cereri.
Poți folosi byte_range.py pentru a discuta cum se rezolvă un interval de sufix în raport cu o dimensiune cunoscută a fișierului. Adu exemple explicite pentru un interval normal, o resursă goală și o cerere în afara conținutului disponibil. Examinează ce returnează funcția auxiliară înainte să decizi cum trebuie gestionarul răspunsului să folosească rezultatul. Tratează interpretarea intervalului și construirea răspunsului ca responsabilități legate, cu o limită pe care o poți explica.
Testează modificarea propusă în mediul proiectului, inclusiv cazurile care disting intrarea malformată de un interval imposibil de satisfăcut. Examinează codul răspunsului care folosește rezultatul, astfel încât o nouă convenție de returnare să nu producă o ieșire înșelătoare. RangeTallow acceptă conexiuni compatibile cu OpenAI sau Anthropic, cu credențiale după necesități. Poți alege modele fără restricții când endpointul le oferă; limitele contextului, instrumentele și restricțiile rămân dependente de model și server. Exemplele de cereri acceptate oferă conversației de refactorizare o măsură concretă a succesului.
Examinarea modificărilor de tratare a intervalelor
De ce să disting intrarea malformată de cea imposibil de satisfăcut?
Ele descriu situații diferite: o cerere poate să nu respecte sintaxa acceptată sau poate solicita conținut indisponibil la dimensiunea cunoscută. Precizează cum reprezintă funcția auxiliară fiecare situație și examinează cum folosește gestionarul răspunsului această distincție.
Este suficient un interval parsat pentru a construi un răspuns corect?
Nu. Apelantul trebuie în continuare să construiască răspunsul conform propriului contract și resursei reale. Examinează cum folosește limitele returnate, inclusiv selectarea corpului și comportamentul codului de stare, în loc să consideri parsarea reușită drept integrare încheiată.
Ce trebuie să precizeze un exemplu de sufix?
Oferă lungimea sufixului cerut, dimensiunea cunoscută a resursei și limitele inclusive așteptate sau rezultatul respingerii. Include cazul unei resurse goale, astfel încât implementarea să nu presupună că există mereu un ultim octet de selectat.
Cum mențin refactorizarea concentrată?
Notează cazurile acceptate în prezent și modificarea dorită, dacă există. Cere o propunere care păstrează celelalte comportamente, apoi examinează diferențele și rulează cazurile respective atât prin funcția auxiliară, cât și prin apelantul ei.
RangeTallow · Actualizat 2026-10-25