Profondeur des délimiteurs imbriqués
Mesure la profondeur maximale d’un texte ne contenant que des parenthèses, crochets et accolades.
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 peakVérifiez avant d’appliquer
Comparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications.
Modèles
Configurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément.
Projet
Accepte le texte vide avec une profondeur nulle, mais refuse les paires croisées, les délimiteurs sans partenaire et tout autre caractère, espaces compris.
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 peakRendre les règles de validation compréhensibles pour le prochain appelant
BracketMast intègre le développement assisté par IA à un espace Windows où le dossier de projet et sa conversation de programmation restent liés. Utilisez-le lorsqu’une modification de validation exige plus de précision qu’une simple demande de gestion des entrées incorrectes. Décrivez le langage accepté, les conditions d’échec et ce que les appelants doivent recevoir, puis demandez à l’assistant d’inspecter le code existant avant de proposer une correction.
Une tâche sur bracket_depth.py peut porter sur les délimiteurs autorisés, leur ordre valide et le sens d’une valeur vide. Demandez un correctif et des exemples révélant ces décisions. Gardez la fonction et ses appelants en vue : changer l’alphabet accepté peut modifier le comportement même si les entrées équilibrées fonctionnent toujours. L’examen porte ainsi sur le contrat de l’application plutôt que sur une seule démonstration réussie.
Après examen de la proposition, exécutez les vérifications du projet sur les chaînes acceptées, les fermetures prématurées et les entrées inachevées. Affinez la demande à partir des échecs et conservez le comportement d’erreur convenu. BracketMast se connecte aux points de terminaison compatibles OpenAI ou Anthropic pris en charge, avec des identifiants si nécessaire. Vous pouvez choisir un modèle décrit comme sans restrictions si votre point de terminaison le propose ; les conditions du fournisseur restent applicables, et les limites de contexte et les outils dépendent du modèle et du serveur. Vos tests établissent si le code obtenu respecte le contrat.
Définir ce qu’un validateur doit accepter
Faut-il ignorer ou rejeter les caractères non pris en charge ?
Choisissez délibérément selon le contrat de l’appelant. Un validateur de chaînes composées uniquement de délimiteurs peut les rejeter, tandis qu’un analyseur de code source nécessite d’autres règles. Expliquez cette distinction à l’assistant avant d’accepter un changement qui ignore silencieusement des caractères inattendus.
Quel comportement adopter pour une valeur vide ?
Précisez si elle est valide, absente ou erronée dans votre application. Vérifiez ensuite le résultat de la fonction et son interprétation par l’appelant. La convention sur les entrées vides ne doit pas découler fortuitement du comportement d’une boucle.
Qu’est-ce qui distingue un message d’erreur d’un contrat d’erreur ?
Le contrat précise quelle condition échoue, comment l’échec est représenté et ce que fait ensuite l’appelant. Examinez ces décisions ensemble ; améliorer seulement le texte peut laisser des valeurs de retour incohérentes ou une exception non gérée dans l’application.
Puis-je réutiliser un validateur après avoir modifié ses entrées acceptées ?
Inspectez d’abord ses autres appelants. Un alphabet accepté plus large ou un type d’erreur différent peut affecter le code qui dépendait de l’ancien comportement. Explicitez la compatibilité et ajoutez des vérifications de ces dépendances avant de réutiliser l’utilitaire modifié.
BracketMast · Mis à jour 2026-10-25