VERIFIED
neurodatawithoutborders__pynwb-2052
VERIFIED on first verdict
1 attempt, 0 appeals. 1 file, 1 added and 0 removed lines. Tokens: 33,252 tokens. Model cost: $0.01. Sandbox time: 1 min 31 s.
The plan
- Repository
- neurodatawithoutborders/pynwb
- Base commit
- 01d9ab9 (image tag)
- Issue
- [Bug]: `add_data_interface` fails silently on pynwb 3.0 ### What happened? It seems that now in pynwb 3.0 the method `add_data_interface` was replaced by `add`. But the method `add_data_interface` does not add the structure or throws an error. ### Steps to Reproduce
- Files to edit
src/pynwb/base.py
- Approach
- Add self.add(kwargs['container']) after issuing warning.
Attempt 1
VERIFIEDAgent branch
| Kind | Command | Exit | Duration | Digest |
|---|---|---|---|---|
| command | git ls-files -zexact commandgit ls-files -z | 0 | 0.004s | e00f310a |
| write | write src/pynwb/base.pyexact command/opt/receipts-9bc23c8be6f34d5e9c605ee0141aeea0/bin/busybox sh -c 'mkdir -p /pynwb/src/pynwb && cp /opt/receipts-9bc23c8be6f34d5e9c605ee0141aeea0/incoming/ae2b202d3537e8f63d631f6f90b08a0803780db3955cd88b70a5dd37decff777 /pynwb/src/pynwb/base.py' | 0 | 0.005s | c5682a11 |
| command | pytest tests/unit/test_base.py::TestProcessingModule::test_deprecated_add_data_interface -vexact command/opt/receipts-f9221898dc0844538d0d18c156a016df/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-f9221898dc0844538d0d18c156a016df/receipts_pytest.py tests/unit/test_base.py::TestProcessingModule::test_deprecated_add_data_interface -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-3.xml | 0 | 2.737s | f5f5105adeec |
| command | pytest tests/unit/test_base.pyexact command/opt/receipts-7347999d9dfa4e5695f4dbf11480c0bc/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-7347999d9dfa4e5695f4dbf11480c0bc/receipts_pytest.py tests/unit/test_base.py --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-4.xml | 0 | 5.126s | f5f5105adeec |
| diff | capture patchexact commandcompute patch in executor staging agent1-920f1d5a77f94c11802e51348f713c5b: /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false add -A && /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false diff --cached --binary --no-ext-diff --no-textconv --no-renames 08c7c797a5fcba8be7f76dc091a6757e060be2af | 0 | 0.186s | f5f5105adeec |
- Finish summary
- Fixed missing call to self.add() in ProcessingModule.add_data_interface. Added deprecation warning and then delegates to self.add(kwargs['NWBDataInterface']).
- Worker outcome
- finished
- Target tests pass: yes
- Full suite passes: yes
- Files changed: src/pynwb/base.py
- Ran tests: yes
Witness branch w1
| Kind | Command | Exit | Duration | Digest |
|---|---|---|---|---|
| apply | apply patch 347df7c95fc0exact commandgit update-index -q --refresh; git apply -v --3way --recount --ignore-space-change --whitespace=nowarn /opt/receipts-68121a4a45ff45619dbef9a9077c7c07/incoming/347df7c95fc0642d27483dedc4115e095966d34f3dfdd6de0df0fe475307ac8b.diff | 0 | 0.011s | f5f5105adeec |
| verification | pytest (witness) tests/unit/test_base.pyexact command/opt/receipts-b9e35939de2d424cb9da86c781289d35/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-b9e35939de2d424cb9da86c781289d35/receipts_pytest.py --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning tests/unit/test_base.py -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/w1-2.xml | 0 | 5.213s | f5f5105adeec |
Gate predicate checklist
| Predicate | Name | Status | Evidence |
|---|---|---|---|
R1_fail_to_pass | Failing specification tests now pass | PASS | target tests passed: tests/unit/test_base.py::TestProcessingModule::test_deprecated_add_data_interface |
R2_pass_to_pass | Previously passing tests kept | PASS | 66 baseline-passing tests still pass |
R3_no_shrink | No removed tests or new skips | PASS | all 67 baseline tests collected; skips unchanged (0) |
R4_patch_scope | Patch scope | PASS | patch touches 1 file(s), all in scope |
R5_provenance | Witness chain and patch digest | PASS | agent chain 8c1cfd7b -> 29e9b191 unbroken over 5 receipt(s); witness chain 8c1cfd7b -> 6dfb1e10 unbroken over 2 receipt(s); applied digest matches |
R6_claim_audit | Agent claim audit (advisory) | PASS | claimed green; own last run: 67 passed, 0 failed |
What it said
- Finish summary
- Fixed missing call to self.add() in ProcessingModule.add_data_interface. Added deprecation warning and then delegates to self.add(kwargs['NWBDataInterface']).
- Worker outcome
- finished
- Target tests pass: yes
- Full suite passes: yes
- Files changed: src/pynwb/base.py
- Ran tests: yes
What the record shows
honest: claimed green; own last run: 67 passed, 0 failed
SWE-rebench's official grader: resolved
Agrees with the gate
Shipped patch
diff --git a/src/pynwb/base.py b/src/pynwb/base.pyindex e639eccf..a7154450 100644--- a/src/pynwb/base.py+++ b/src/pynwb/base.py@@ -77,6 +77,7 @@ class ProcessingModule(MultiContainerInterface): 'doc': 'the NWBDataInterface to add to this Module'}) def add_data_interface(self, **kwargs): warn('add_data_interface is deprecated and will be removed in PyNWB 4.0. Use add instead.', DeprecationWarning)+ self.add(kwargs['NWBDataInterface']) @docval({'name': 'data_interface_name', 'type': str, 'doc': 'the name of the NWBContainer to retrieve'}) def get_data_interface(self, **kwargs):
Model and costs
- Model
- NVIDIA Nemotron 3 Super thinking off · temperature 1.0 · top_p 0.95
- Tokens
- 33,252 tokens
- Model cost
- $0.01
- Sandbox time
- 1 min 31 s
- Sandbox cost
- Token Factory reported cost: 0.291 (unit not published)
Full environment disclosure
{
"executor_kind": "tokenfactory",
"lock_sha256": "6ac5e73fdbcd93f9e6dbd799b24e715437781219e7667507ca6ae5916f729fc5",
"model": {
"base_url": "https://api.tokenfactory.nebius.com/v1/",
"client": "TokenFactoryClient",
"max_tokens": null,
"model": "nvidia/nemotron-3-super-120b-a12b",
"temperature": 1.0,
"thinking": false,
"top_p": 0.95
},
"pytest_config_digests": {
"pyproject.toml": "92ac5c90015715f557125cb188764eec9b90da7f968a23146fc22f710efac89b",
"src/pynwb/nwb-schema/hdmf-common-schema/setup.cfg": "dd86e4d922ebc67af8dec083df7f93193868fc502baf17fe9f343b2e5f864d9b",
"tox.ini": "cc716753d129ff8a8c3100f0676d4fc556fab766778ad135fa2cc11d3a161472"
},
"receipts_version": "0.0.1",
"test_digests": {
"tests/unit/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"tests/unit/test_base.py": "81a5b42ce9c50dbb88413bb096a2e9bd4018f227641241758a75899edd51d000",
"tests/unit/test_behavior.py": "c96713db096fef2792a3f8567806e934beb6c5efa4713fea01cd338ea22a9949",
"tests/unit/test_config.py": "59dd3b7dce9426ab1ab96411cbbb27f09596ad37ac9ea420b80c6b2907578972",
"tests/unit/test_config/nwb_subject_termset.yaml": "065d609a5108146344cf4b232ce98ba1efd61ba9479c85ce0e42ed9b2d06deeb",
"tests/unit/test_config/test_nwb_config.yaml": "a3521ced2cfcb93fe8dd452ada0728ea4feb31be2c86bde6cc6d6a142c0ca8a8",
"tests/unit/test_core.py": "a36a7488950a10b6b06219ae30f77774677fa1ce539d188d3fb682746c066a86",
"tests/unit/test_core_NWBContainer.py": "66d01aa15554306bf3df8bf4c082727a9ca1a6dc79f556d819a23f43a8204053",
"tests/unit/test_device.py": "6ff94d94926ee9461a3c1d893a808cedce4a7d31fe8432e60c99472d3b59d287",
"tests/unit/test_ecephys.py": "d42638057b0d1bf32e3bb7ac2f54eb627d346472dfb03b00dc0814c0ebb17947",
"tests/unit/test_epoch.py": "db1473c4280388f07363b54cd17b8d45c9a1472f3818c8658d14977ea3ab04ef",
"tests/unit/test_epoch_legacy.py": "b4da322c1f2913245676b4447fc7f595b68aa42fcd20093dc8a82b0be7151292",
"tests/unit/test_extension.py": "aaad1e721f92231837fd5af4f593c24ceffd1cf78b32cc4ae482f11e3e17a7c2",
"tests/unit/test_file.py": "8931adcca6c8ff471580308a77050a9c4c0615863e824beb57a22660945de5a2",
"tests/unit/test_icephys.py": "7ff9e3903a9ff8b464984efbf0c2ac97b04ca6075fee7e7a63104129369dde4a",
"tests/unit/test_icephys_metadata_tables.py": "81c8eedc6373310f3a36f47f30a03d99ba82e4022f57bbfcfc0ef8ffc0065ba5",
"tests/unit/test_image.py": "3d7b1db61c6fdaa52d262fc812f375e641bf4ef965ef37e4bc4194432d60d377",
"tests/unit/test_misc.py": "4d904ec759b87a31b93480192f6a14bc44ef817964dcdc01342b5bab89c5d0a1",
"tests/unit/test_mock.py": "8b3c27eff2e90157bc18f300c2e30ecd3e9ce76996e1de4cb29978a72e8d7d86",
"tests/unit/test_ogen.py": "c18ed76c018bb879444fcfaa2c70251e80c86a98a382bebc1800f79bba0f3b63",
"tests/unit/test_ophys.py": "0122d8330f0b08b3fc45794e8b15f31a8ed5c65546f8a8c4ce6b3c4f9fabde90",
"tests/unit/test_resources.py": "69e89b5608a3e9939ecec89ea31ab1b0215dea051434dfcf3236589893776fdd",
"tests/unit/test_retinotopy.py": "305da375cf0a488ca1517e66a391b6b7e94361055610e479949a272a5dd9eaa2",
"tests/unit/test_scratch.py": "f22e0b7003132588c9b03f289c2c723919571cf41fac6378511bb0b332086e56",
"tests/unit/test_spec.py": "57aee9e94599a313bcf20da76f30745b09f257712caaace068a335b105d1eb2e"
}
}The bundle
Recorded JSON and patches. In these copies the local checkout path is removed from file paths, and the home directory is shown as ~.
- attempts/1/filtered.diff
- attempts/1/patch.diff
- attempts/1/verdict.json
- attempts/1/witness/receipts.jsonl
- baseline.json
- branches/agent1/receipts.jsonl
- branches/base/receipts.jsonl
- branches/official1/receipts.jsonl
- branches/w1/receipts.jsonl
- cost.json
- disclosure.json
- input.json
- lock.txt
- plan.json
- record.json
- result.json