def bracket_depth(text):
if type(text) is not str:
raise ValueError("bracket.type")
stack, peak = [], 0
pairs = {')': '(', ']': '[', '}': '{'}
for char in text:
if char in "([{":
stack.append(char)
peak = max(peak, len(stack))
elif char in pairs:
if not stack or stack.pop() != pairs[char]:
raise ValueError("bracket.order")
else:
raise ValueError("bracket.alphabet")
if stack:
raise ValueError("bracket.unclosed")
return peak適用前に確認
実際の動作を期待する結果と比較します。検証に失敗した場合は、次の変更を加える前に原因を調べてください。
モデル
OpenAI互換またはAnthropicのエンドポイントを、ベースURLと必要なAPIキーで設定し、接続をテストします。ローカルのモデルサーバーは起動が必要です。リモートツールは別途データを送信する場合があります。
プロジェクト
空文字列は深さゼロとして受け入れ、交差する組、不対応の括弧、空白を含む他のすべての文字を拒否してください。
def bracket_depth(text):
if type(text) is not str:
raise ValueError("bracket.type")
stack, peak = [], 0
pairs = {')': '(', ']': '[', '}': '{'}
for char in text:
if char in "([{":
stack.append(char)
peak = max(peak, len(stack))
elif char in pairs:
if not stack or stack.pop() != pairs[char]:
raise ValueError("bracket.order")
else:
raise ValueError("bracket.alphabet")
if stack:
raise ValueError("bracket.unclosed")
return peak次の呼び出し元にも分かる検証ルールにする
BracketMastは、プロジェクトフォルダーとコーディングの会話を結び付けたWindows作業環境にAI支援開発を取り入れます。不正入力を処理してほしいという依頼だけでは不十分な、精密さが必要な検証変更に使いましょう。受け付ける文字列の規則、失敗条件、呼び出し元に返すべきものを説明し、修正案を出す前に既存の実装を調べるよう依頼してください。
bracket_depth.pyを扱うなら、入力が対応する括弧だけを含むか、順序が正しいか、空の値をどう扱うかに焦点を当てられます。これらの判断が分かるパッチと例を求めましょう。関数と呼び出し元の両方を確認してください。対応する文字の集合を変えると、釣り合った括弧の入力が引き続き動いても、動作は変わり得ます。こうすれば、一度成功する実演ではなく、アプリケーションの仕様に沿って検証をレビューできます。
提案をレビューしたら、受け付ける文字列、早すぎる閉じ括弧、未完の入力についてプロジェクトのチェックを実行します。失敗結果を使って依頼を改善し、合意したエラー動作を維持しましょう。BracketMastは対応するOpenAI互換またはAnthropicのエンドポイントに、必要な場合は認証情報を使って接続します。接続先が提供していれば、制限なしと説明されるモデルを選べますが、プロバイダーの条件は引き続き適用され、コンテキストの上限とツールはモデルとサーバーに依存します。生成されたコードが仕様に従うかは、自分のテストで確かめます。
検証器が受け付けるものを決める
対応していない文字は無視すべきですか、それとも拒否すべきですか?
呼び出し元との仕様に基づいて意図的に決めてください。括弧だけの文字列を対象とする検証器では拒否できても、ソース解析器には別のルールが必要です。予期しない文字を黙って読み飛ばす変更を受け入れる前に、この違いをアシスタントに伝えましょう。
空の値はどう扱うべきですか?
アプリケーションで有効、未入力、エラーのどれに当たるかを指定します。そのうえで関数の結果と呼び出し元の解釈を確認してください。空入力の扱いを、たまたまのループ動作に任せてはいけません。
エラーメッセージとエラー仕様は何が違いますか?
仕様には、どの条件で失敗するか、失敗をどう表現するか、呼び出し元がその後何をするかが含まれます。これらを一緒にレビューしましょう。文言だけを改善しても、不整合な戻り値や未処理の例外がアプリケーションに残る可能性があります。
受け付ける入力を変更した後も検証器を再利用できますか?
先に他の呼び出し元を調べてください。対応する文字の拡大やエラー型の変更は、従来の動作を前提とするコードに影響し得ます。互換性を明示し、依存箇所のチェックを追加してから変更した補助関数を再利用しましょう。
BracketMast · 更新日 2026-10-25