JSON Pointer (RFC 6901)
← run 2 · raw JSON · challenge definitions
100
score
tests (60%)10/10 passed
deliverables (20%)100%
content checks (20%)100%
01 what the model was asked
Create jsonpointer.py with exactly one function:
resolve(doc, pointer: str)
Resolve an RFC 6901 JSON Pointer against doc (nested dicts/lists) and return the referenced value.
Rules:
- The empty pointer "" refers to the whole document.
- A pointer is a sequence of /-prefixed reference tokens: "/a/b" means doc["a"]["b"].
- In a token, the escape ~1 decodes to "/" and ~0 decodes to "~" (decode ~1 before ~0).
- Tokens indexing a list are decimal indices: "/items/0" is the first element.
- Raise KeyError for anything that does not resolve (missing key, bad or out-of-range index, pointer not starting with "/", descending into a scalar).
Use only the Python standard library.
required deliverables + checks
✓deliverable: jsonpointer.py
✓jsonpointer.py must contain “def resolve”
pytest suite it was graded against
test_jsonpointer.py · 56 lines · 996 B
import pytest from jsonpointer import resolve DOC = { "foo": ["bar", "baz"], "": 0, "a/b": 1, "m~n": 8, "nested": {"list": [{"x": 42}]},} def test_whole_document(): assert resolve(DOC, "") is DOC def test_object_key(): assert resolve(DOC, "/foo") == ["bar", "baz"] def test_array_index(): assert resolve(DOC, "/foo/0") == "bar" def test_empty_key(): assert resolve(DOC, "/") == 0 def test_escaped_slash(): assert resolve(DOC, "/a~1b") == 1 def test_escaped_tilde(): assert resolve(DOC, "/m~0n") == 8 def test_deep_path(): assert resolve(DOC, "/nested/list/0/x") == 42 def test_missing_key_raises(): with pytest.raises(KeyError): resolve(DOC, "/nope") def test_bad_index_raises(): with pytest.raises(KeyError): resolve(DOC, "/foo/2") with pytest.raises(KeyError): resolve(DOC, "/foo/x") def test_pointer_without_slash_raises(): with pytest.raises(KeyError): resolve(DOC, "foo")
02 what it did — full transcript
promptthe exact instruction sent to the model
view full prompt
You are completing a coding task in one shot. Write complete files that satisfy the spec below. Tests (pytest) will be run against your files; you cannot run them yourself.
Reply with ONE JSON object and nothing else:
{"files": {"<relative path>": "<complete file content>", ...}}
Required deliverable files: jsonpointer.py
SPEC:
Create jsonpointer.py with exactly one function:
resolve(doc, pointer: str)
Resolve an RFC 6901 JSON Pointer against doc (nested dicts/lists) and return the referenced value.
Rules:
- The empty pointer "" refers to the whole document.
- A pointer is a sequence of /-prefixed reference tokens: "/a/b" means doc["a"]["b"].
- In a token, the escape ~1 decodes to "/" and ~0 decodes to "~" (decode ~1 before ~0).
- Tokens indexing a list are decimal indices: "/items/0" is the first element.
- Raise KeyError for anything that does not resolve (missing key, bad or out-of-range index, pointer not starting with "/", descending into a scalar).
Use only the Python standard library.
reply5410 tokens
view raw reply
{"files": {"jsonpointer.py": "def resolve(doc, pointer: str):\n if pointer == \"\":\n return doc\n if not pointer.startswith('/'): \n raise KeyError\n tokens = pointer.split('/')[1:]\n current = doc\n for token in tokens:\n token = token.replace('~1', '/').replace('~0', '~')\n if isinstance(current, dict):\n if token in current:\n current = current[token]\n else:\n raise KeyError\n elif isinstance(current, list):\n try:\n index = int(token)\n current = current[index]\n except (ValueError, IndexError):\n raise KeyError\n else:\n raise KeyError\n return current"}}write_filejsonpointer.py · 702 B
graded 100.010 passed, 0 failed
pytest output
.......... [100%] 10 passed in 0.01s
03 what it wrote
1
files
23
lines
23
source lines
1
functions
0
classes
8
cyclomatic
5
max nesting
23.0
avg fn lines
stdlib imports: none
| File | LOC | SLOC | Fns | Complexity | Depth | Imports |
|---|---|---|---|---|---|---|
| jsonpointer.py | 23 | 23 | 1 | 8 | 5 | — |
jsonpointer.py · 23 lines · 702 B
def resolve(doc, pointer: str): if pointer == "": return doc if not pointer.startswith('/'): raise KeyError tokens = pointer.split('/')[1:] current = doc for token in tokens: token = token.replace('~1', '/').replace('~0', '~') if isinstance(current, dict): if token in current: current = current[token] else: raise KeyError elif isinstance(current, list): try: index = int(token) current = current[index] except (ValueError, IndexError): raise KeyError else: raise KeyError return current
04 how it was graded
1
model calls
0
invalid actions
0
self test runs
5.4k
tokens out
—
tokens in
284.1s
wall time
agent actions: —
final pytest output
.......... [100%] 10 passed in 0.01s