単一HTTPバイト範囲
最大80文字のヘッダーから、サイズがゼロから10^12バイトのリソースに対する単一のASCII HTTPバイト範囲を求めてください。
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)
適用前に確認
実際の動作を期待する結果と比較します。検証に失敗した場合は、次の変更を加える前に原因を調べてください。
モデル
OpenAI互換またはAnthropicのエンドポイントを、ベースURLと必要なAPIキーで設定し、接続をテストします。ローカルのモデルサーバーは起動が必要です。リモートツールは別途データを送信する場合があります。
プロジェクト
開いた末尾と接尾範囲を試し、過剰な末尾を制限し、満たせない場合は区間なしとし、不正構文や複数範囲を拒否してください。
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は、依存するアプリケーションの文脈でユーティリティの変更をレビューするAIコーディングソフトウェアです。Windowsでプロジェクトを開き、リファクタリング後も維持すべき動作を説明します。入力解析、戻り値、関連する呼び出し側を一緒に調べるよう依頼してください。実装の短縮でリクエストの意味が黙って変わることを防ぎます。
byte_range.pyを使い、既知のファイルサイズに対して末尾範囲をどう解決するか検討できます。通常の範囲、空のリソース、利用可能な内容の外を指定するリクエストについて、明示的な例を用意します。応答ハンドラーでの使用方法を決める前に、ヘルパーが何を返すかレビューしてください。範囲の解釈と応答の構築を、説明可能な境界を持つ関連した責務として扱います。
不正な入力と充足不能な範囲を区別するケースも含め、自分のプロジェクト環境で編集案をテストします。新しい戻り値の規約が誤解を招く出力を生まないよう、結果を利用する応答コードを調べてください。RangeTallowはOpenAI互換またはAnthropicへの接続に対応し、必要に応じて認証情報を使います。接続先が提供すれば制限のないモデルを選べますが、コンテキストの上限、ツール、制限は引き続きモデルとサーバーに依存します。受け付けるリクエスト例が、リファクタリングの対話に具体的な成功基準を与えます。
範囲処理の変更をレビューする
不正入力と充足不能な入力を区別するのはなぜですか?
受け付ける構文に合わない場合と、既知のサイズで存在しない内容を求める場合は異なる状態です。ヘルパーがそれぞれをどう表現するか指定し、応答ハンドラーが区別をどう使うか調べてください。
範囲を解析できれば正しい応答を構築できますか?
いいえ。呼び出し側は独自の契約と実際のリソースに従って応答を構築する必要があります。解析成功を統合完了と考えず、本文の選択とステータスの動作も含め、返された境界の利用方法をレビューしてください。
末尾範囲の例には何を指定すべきですか?
要求する末尾の長さ、既知のリソースサイズ、両端を含む期待境界または拒否結果を示します。常に選べる最終バイトが存在すると実装が仮定できないよう、空のリソースの例も含めてください。
リファクタリングの範囲をどう保てますか?
現在受け付けるケースと、意図する変更があればそれを書き出します。その他の動作を保つ提案を依頼し、差分を調べ、そのケースをヘルパーと呼び出し側の両方で実行してください。
RangeTallow · 更新日 2026-10-25