Projeto
Teste o ponteiro raiz vazio e chaves escapadas, rejeitando escapes malformados, membros ausentes e índices não canônicos.
Resolva um JSON Pointer em dicionários e listas sem alterá-los.
import re
def pointer_get(root, pointer):
if not isinstance(pointer, str): raise ValueError("pointer text")
if pointer == "": return root
if not pointer.startswith("/"): raise ValueError("root slash")
value = root
for raw in pointer[1:].split("/"):
if re.search(r"~(?![01])", raw): raise ValueError("escape")
key = raw.replace("~1", "/").replace("~0", "~")
if isinstance(value, dict): value = value[key]
elif isinstance(value, list):
if not re.fullmatch(r"0|[1-9][0-9]*", key):
raise ValueError("array index")
if len(key) > len(str(len(value))): raise IndexError(key)
value = value[int(key)]
else: raise ValueError("not a container")
return valueTeste o ponteiro raiz vazio e chaves escapadas, rejeitando escapes malformados, membros ausentes e índices não canônicos.
Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.
Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.
import re
def pointer_get(root, pointer):
if not isinstance(pointer, str): raise ValueError("pointer text")
if pointer == "": return root
if not pointer.startswith("/"): raise ValueError("root slash")
value = root
for raw in pointer[1:].split("/"):
if re.search(r"~(?![01])", raw): raise ValueError("escape")
key = raw.replace("~1", "/").replace("~0", "~")
if isinstance(value, dict): value = value[key]
elif isinstance(value, list):
if not re.fullmatch(r"0|[1-9][0-9]*", key):
raise ValueError("array index")
if len(key) > len(str(len(value))): raise IndexError(key)
value = value[int(key)]
else: raise ValueError("not a container")
return valuePointerMallow oferece a desenvolvedores um ambiente de programação com IA para Windows para rastrear comportamentos de dados estruturados em um projeto. Uma consulta com falha é mais fácil de diagnosticar quando caminho, estrutura de dados e valor esperado estão presentes na conversa. Comece com um pequeno caso reproduzível e peça ao modelo que inspecione a implementação que realmente o consome.
Considere uma consulta JSON Pointer como solicitação. Forneça uma chave de objeto que contenha barra, um índice de array e um destino ausente, e declare o resultado pretendido para cada um. Peça uma correção focada se o código atual tratar esses caminhos incorretamente. O valor vem de conectar os casos de teste à sua implementação e aos chamadores.
Revise a proposta além do resultado bem-sucedido. Um caminho inválido, uma chave ausente e a passagem por um escalar podem exigir tratamentos distintos na aplicação. Leia as alterações e execute os testes pertinentes, conferindo o erro apresentado ao consumidor com o mesmo cuidado que o valor retornado para uma consulta válida.
A conexão ao modelo pode usar um endpoint suportado compatível com OpenAI ou da Anthropic, com credenciais conforme exigido. Se escolher um modelo de IA abliterado oferecido ali, as restrições do provedor continuam válidas. Limites de contexto e ferramentas variam conforme modelo e servidor; mantenha casos pequenos que permitam avaliar diretamente o raciocínio e o código proposto.
Forneça casos separados e resultados esperados para ambos. Pergunte onde termina a análise do caminho e começa a navegação no código atual e revise como cada falha chega ao chamador. Reduzi-las a um único resultado vazio pode ocultar um erro de entrada.
O tipo dos dados que a contêm importa. Inclua um caso com uma chave de objeto de aparência numérica e outro caso separado com array. Revise o ramo de tratamento de caminhos de cada um, sem presumir que texto idêntico sempre indique o mesmo tipo de localização.
Ele isola a estrutura de dados responsável pelo problema e facilita verificar o resultado esperado. Remova campos irrelevantes e valores sensíveis preservando o caminho com falha e depois confirme a correção com dados representativos do projeto.
O contrato pertence à aplicação. Outro modelo pode sugerir uma convenção de erro diferente, mas isso não autoriza uma mudança de comportamento. Revise também os destinos das ferramentas: um servidor local de modelos não torna local toda ferramenta conectada.
PointerMallow · Atualizado 2026-10-25