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적용하기 전에 검토하세요
실제 동작을 예상 결과와 비교하세요. 검사가 실패하면 다음 변경을 하기 전에 원인을 조사하세요.
모델
기본 URL과 필요한 API 키로 OpenAI 호환 또는 Anthropic 엔드포인트를 설정하고 연결을 테스트하세요. 로컬 모델 서버는 실행 중이어야 합니다. 원격 도구는 데이터를 별도로 전송할 수 있습니다.
프로젝트
빈 문자열은 깊이 0으로 허용하되 교차 쌍과 짝 없는 괄호 및 공백을 포함한 다른 모든 문자를 거부하세요.
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