Intervalli HTTP singoli di byte
Risolvi un singolo intervallo ASCII di byte HTTP per una risorsa da zero a 10^12 byte con intestazione di massimo 80 caratteri.
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)
Controlla prima di applicare
Confronta il comportamento effettivo con il risultato atteso. Se una verifica fallisce, indaga la causa prima di altre modifiche.
Modelli
Configura un endpoint compatibile con OpenAI o Anthropic usando URL di base e chiave API, se necessaria. Prova la connessione. Il server locale deve essere in esecuzione; gli strumenti remoti possono trasmettere dati separatamente.
Progetto
Prova estremi aperti e suffissi, limita la fine e restituisci nessun intervallo se insoddisfacibile, rifiutando sintassi errata o intervalli multipli.
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)
Mantieni la ristrutturazione fedele alla richiesta interpretata
RangeTallow è un software di programmazione con IA per rivedere modifiche a funzioni di utilità nel contesto dell'applicazione che ne dipende. Apri il progetto su Windows e descrivi quale comportamento deve restare stabile durante una ristrutturazione. Chiedi al modello di esaminare insieme parsing degli input, valori restituiti e chiamante pertinente. Questo impedisce a un'implementazione più breve di cambiare silenziosamente il significato di una richiesta.
Puoi usare byte_range.py per discutere come un intervallo di suffisso venga risolto rispetto a una dimensione nota del file. Porta esempi espliciti per un intervallo normale, una risorsa vuota e una richiesta oltre il contenuto disponibile. Rivedi cosa restituisce la funzione ausiliaria prima di decidere come il gestore delle risposte debba usarlo. Tratta interpretazione degli intervalli e costruzione delle risposte come responsabilità correlate con un confine spiegabile.
Testa la modifica proposta nel tuo ambiente di progetto, inclusi i casi che distinguono un input malformato da un intervallo non soddisfacibile. Esamina il codice di risposta che usa il risultato affinché una nuova convenzione di restituzione non produca output fuorviante. RangeTallow supporta connessioni compatibili con OpenAI o Anthropic, con le credenziali richieste. Puoi scegliere modelli senza restrizioni quando il tuo endpoint li offre; limiti di contesto, strumenti e restrizioni dipendono comunque da modello e server. Gli esempi di richieste accettate danno alla conversazione sulla ristrutturazione una misura concreta del successo.
Rivedere modifiche alla gestione degli intervalli
Perché distinguere input malformati e non soddisfacibili?
Descrivono condizioni diverse: una richiesta può non rispettare la sintassi accettata oppure chiedere contenuto non disponibile per la dimensione nota. Specifica come la funzione ausiliaria rappresenta ciascuna condizione ed esamina come il gestore delle risposte usa tale distinzione.
Un intervallo analizzato basta per costruire una risposta corretta?
No. Il chiamante deve comunque costruire la risposta secondo il proprio contratto e la risorsa effettiva. Rivedi come usa i limiti restituiti, inclusi selezione del corpo e comportamento dello stato, anziché considerare il parsing riuscito un'integrazione completata.
Cosa deve specificare un esempio di suffisso?
Fornisci la lunghezza del suffisso richiesto, la dimensione nota della risorsa e i limiti inclusivi attesi o il risultato di rifiuto. Includi una risorsa vuota affinché l'implementazione non presupponga che esista sempre un ultimo byte da selezionare.
Come mantengo circoscritta la ristrutturazione?
Annota i casi attualmente accettati e l'eventuale modifica prevista. Chiedi una proposta che preservi gli altri comportamenti, poi esamina le differenze ed esegui quei casi sia attraverso la funzione ausiliaria sia attraverso il chiamante.
RangeTallow · Aggiornato 2026-10-25