Enkele HTTP-bytebereiken
Bepaal één ASCII-HTTP-bytebereik voor een bron van nul tot 10^12 bytes met maximaal 80 headertekens.
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)
Controleer vóór het toepassen
Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
Modellen
Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
Project
Test open einden en suffixen, begrens het einde en geef geen interval bij onmogelijke verzoeken, en weiger onjuiste of meervoudige bereiken.
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)
Laat een hulpfunctierefactor trouw blijven aan het geïnterpreteerde verzoek
RangeTallow is AI-programmeersoftware voor het beoordelen van wijzigingen in hulpfuncties binnen de context van de toepassing die ervan afhangt. Open het project op Windows en beschrijf welk gedrag tijdens de refactor stabiel moet blijven. Vraag het model invoerparsing, teruggegeven waarden en de relevante aanroeper samen te bekijken. Zo verandert een kortere implementatie niet stilzwijgend de betekenis van een verzoek.
Je kunt byte_range.py gebruiken om te bespreken hoe een suffixbereik tegen een bekende bestandsgrootte wordt opgelost. Geef expliciete voorbeelden voor een normaal bereik, een lege bron en een verzoek buiten de beschikbare inhoud. Bekijk wat de hulpfunctie teruggeeft voordat je beslist hoe de antwoordafhandeling dat moet gebruiken. Behandel bereikinterpretatie en antwoordopbouw als samenhangende verantwoordelijkheden met een grens die je kunt uitleggen.
Test de voorgestelde bewerking in je projectomgeving, inclusief gevallen die ongeldige invoer onderscheiden van een niet-leverbaar bereik. Bekijk de antwoordcode die het resultaat gebruikt, zodat een nieuwe terugkeerconventie geen misleidende uitvoer veroorzaakt. RangeTallow ondersteunt OpenAI-compatibele of Anthropic-verbindingen, met inloggegevens indien vereist. Modellen zonder beperkingen zijn te kiezen wanneer je endpoint ze aanbiedt; contextlimieten, tools en beperkingen blijven afhankelijk van model en server. De geaccepteerde verzoekvoorbeelden geven het refactorgesprek een concrete succesmaatstaf.
Wijzigingen in bereikverwerking beoordelen
Waarom ongeldige en niet-leverbare invoer onderscheiden?
Ze beschrijven verschillende situaties: een verzoek kan niet aan de geaccepteerde syntaxis voldoen of inhoud vragen die bij de bekende grootte niet beschikbaar is. Leg vast hoe je hulpfunctie elk geval weergeeft en bekijk hoe de antwoordafhandeling dat onderscheid gebruikt.
Is een geparseerd bereik genoeg om een correct antwoord te bouwen?
Nee. De aanroeper moet het antwoord nog steeds volgens zijn eigen contract en de werkelijke bron opbouwen. Bekijk hoe de teruggegeven grenzen worden gebruikt, inclusief selectie van de antwoordinhoud en statusgedrag, in plaats van geslaagd parsen als voltooide integratie te behandelen.
Wat moet een suffixvoorbeeld vastleggen?
Geef de gevraagde suffixlengte, de bekende brongrootte en de verwachte inclusieve grenzen of weigering. Neem een lege bron mee, zodat de implementatie er niet op kan vertrouwen dat er altijd een laatste byte te selecteren is.
Hoe houd ik de refactor gericht?
Schrijf de huidige geaccepteerde gevallen en de eventuele beoogde wijziging op. Vraag een voorstel dat ander gedrag behoudt, bekijk de diff en voer die gevallen door zowel de hulpfunctie als haar aanroeper uit.
RangeTallow · Bijgewerkt 2026-10-25