ARCHIVED TRAINING / glotzerlab/signac
glotzerlab__signac-185
This is a preserved training example. Membership in the current training wave has not been verified.
Problem statement
Error when storing NumPy arrays in job document.
### Description
Trying to save a NumPy array to the job document fails after loading the job document back (e.g. when adding another key or printing its contents).
### To reproduce
```python
import signac
import numpy as np
project = signac.init_project('dfs-update-bug')
for job in project:
job.remove()
job = project.open_job({'a': 0})
job.init()
job.doc.my_array = np.array([0, 1, 2])
print(job.doc)
```
### Error output
```python
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-1-4f94befa8a51> in <module>
7 job = project.open_job({'a': 0}).init()
8 job.doc.my_array = np.array([0, 1, 2])
----> 9 print(job.doc)
~/code/signac/signac/core/synceddict.py in __str__(self)
264
265 def __str__(self):
--> 266 return str(self())
267
268 def _as_dict(self):
~/code/signac/signac/core/synceddict.py in __call__(self)
271
272 def __call__(self):
--> 273 self._synced_load()
274 return self._as_dict()
275
~/code/signac/signac/core/synceddict.py in _synced_load(self)
157
158 def _synced_load(self):
--> 159 self.load()
160
161 def load(self):
~/code/signac/signac/core/synceddict.py in load(self)
165 if data is not None:
166 with self._suspend_sync():
--> 167 self._dfs_update(self._data, data)
168 for value in self._data:
169 if isinstance(value, Mapping):
~/code/signac/signac/core/synceddict.py in _dfs_update(self, old, new)
143 for key in new:
144 if key in old:
--> 145 if old[key] == new[key]:
146 continue
147 elif isinstance(new[key], Mapping) and isinstance(old[key], Mapping):
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
```
### System configuration
Please complete the following information:
- Operating System: Linux-4.4.0-17134-Microsoft-x86_64-with-debian-buster-sid
- Version of Python: 3.6.8 |Anaconda, Inc.| (default, Dec 30 2018, 01:22:34) [GCC 7.3.0]
- Version of signac: 1.0.0 (current `master`)
Training membership
opd_e4b_cispo_v5 opd_e4b_pure_v6a opd_e4b_pure_v6b opd_e4b_pure_v7 opd_e4b_pure_v7b opd_e4b_self_audit_v4
Task issues extracted from preserved verified_rft_messages training examples. This is not a verified current RL wave manifest.
Task and snapshot provenance
Snapshot captured 2026-11-12T17:06:59.476467+00:00 · Autoresearch-Arena/gemma-4-developer-agent
{
"datasets": [
"opd_e4b_cispo_v5",
"opd_e4b_pure_v6a",
"opd_e4b_pure_v6b",
"opd_e4b_pure_v7",
"opd_e4b_pure_v7b",
"opd_e4b_self_audit_v4"
],
"examples": 16,
"instance_id": "glotzerlab__signac-185",
"problem_statement": "Error when storing NumPy arrays in job document.\n### Description\r\n\r\nTrying to save a NumPy array to the job document fails after loading the job document back (e.g. when adding another key or printing its contents).\r\n\r\n### To reproduce\r\n\r\n```python\r\nimport signac\r\nimport numpy as np\r\n\r\nproject = signac.init_project('dfs-update-bug')\r\nfor job in project:\r\n job.remove()\r\njob = project.open_job({'a': 0})\r\njob.init()\r\njob.doc.my_array = np.array([0, 1, 2])\r\nprint(job.doc)\r\n```\r\n\r\n### Error output\r\n\r\n```python\r\n---------------------------------------------------------------------------\r\nValueError Traceback (most recent call last)\r\n<ipython-input-1-4f94befa8a51> in <module>\r\n 7 job = project.open_job({'a': 0}).init()\r\n 8 job.doc.my_array = np.array([0, 1, 2])\r\n----> 9 print(job.doc)\r\n\r\n~/code/signac/signac/core/synceddict.py in __str__(self)\r\n 264 \r\n 265 def __str__(self):\r\n--> 266 return str(self())\r\n 267 \r\n 268 def _as_dict(self):\r\n\r\n~/code/signac/signac/core/synceddict.py in __call__(self)\r\n 271 \r\n 272 def __call__(self):\r\n--> 273 self._synced_load()\r\n 274 return self._as_dict()\r\n 275 \r\n\r\n~/code/signac/signac/core/synceddict.py in _synced_load(self)\r\n 157 \r\n 158 def _synced_load(self):\r\n--> 159 self.load()\r\n 160 \r\n 161 def load(self):\r\n\r\n~/code/signac/signac/core/synceddict.py in load(self)\r\n 165 if data is not None:\r\n 166 with self._suspend_sync():\r\n--> 167 self._dfs_update(self._data, data)\r\n 168 for value in self._data:\r\n 169 if isinstance(value, Mapping):\r\n\r\n~/code/signac/signac/core/synceddict.py in _dfs_update(self, old, new)\r\n 143 for key in new:\r\n 144 if key in old:\r\n--> 145 if old[key] == new[key]:\r\n 146 continue\r\n 147 elif isinstance(new[key], Mapping) and isinstance(old[key], Mapping):\r\n\r\nValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()\r\n```\r\n\r\n### System configuration\r\n\r\nPlease complete the following information:\r\n\r\n - Operating System: Linux-4.4.0-17134-Microsoft-x86_64-with-debian-buster-sid\r\n - Version of Python: 3.6.8 |Anaconda, Inc.| (default, Dec 30 2018, 01:22:34) [GCC 7.3.0]\r\n - Version of signac: 1.0.0 (current `master`)",
"repo": "glotzerlab/signac",
"source": "v2/experiments/train_data/opd_e4b_cispo_v5/verified_rft_messages.jsonl",
"source_sha256": "a43610ad0dfb6ace95375cfae09000f41afc0338cc925af870a4ade7a9b20c4c"
}{
"captured_at": "2026-11-12T17:06:59.476467+00:00",
"membership": "archived training",
"membership_evidence": "Task issues extracted from preserved verified_rft_messages training examples. This is not a verified current RL wave manifest.",
"name": "Preserved post-training task archive",
"source": "Autoresearch-Arena/gemma-4-developer-agent",
"source_revision": "016496de222aaafca0d4ee4c18efc63ba616f76e",
"sources": [
{
"path": "v2/experiments/train_data/opd_e4b_cispo_v5/verified_rft_messages.jsonl",
"sha256": "a43610ad0dfb6ace95375cfae09000f41afc0338cc925af870a4ade7a9b20c4c"
},
{
"path": "v2/experiments/train_data/opd_e4b_hybrid_v3/verified_rft_messages.jsonl",
"sha256": "bd326303eb127e8e5e08f03daf97bb88d79d19709d59f3f93f348bc56686a8df"
},
{
"path": "v2/experiments/train_data/opd_e4b_onpolicy_v3/verified_rft_messages.jsonl",
"sha256": "960c680e797e823a0d3a22f4b1d5ef60a72971373d703b877340b0c9126aaf68"
},
{
"path": "v2/experiments/train_data/opd_e4b_pure_v6a/verified_rft_messages.jsonl",
"sha256": "f045b7ca5b3883a1e2eaee81e1c02a4a1b53dd7b7b36e98bacb2ba5823a15148"
},
{
"path": "v2/experiments/train_data/opd_e4b_pure_v6b/verified_rft_messages.jsonl",
"sha256": "0f62460a9706eea5e1605255896f191ab00cb5706c5f1f2e1c293e9a718218dc"
},
{
"path": "v2/experiments/train_data/opd_e4b_pure_v7/verified_rft_messages.jsonl",
"sha256": "e37f7bd675322f3f81500b73559d60d5f602ca0537bf19f5cb06332c728c7b72"
},
{
"path": "v2/experiments/train_data/opd_e4b_pure_v7b/verified_rft_messages.jsonl",
"sha256": "b864bdc8695183433eef6e31cb8d33fad44ba3aded2170c1ade4ad5b2944ce23"
},
{
"path": "v2/experiments/train_data/opd_e4b_self_audit_v4/verified_rft_messages.jsonl",
"sha256": "0026023745afb8f3dc1c176dc7f7171157b4ad5a66656b524af218e8e19ceee6"
},
{
"path": "v2/experiments/train_data/rft_e4b_aligned_v2/verified_rft_messages.jsonl",
"sha256": "92a4515fee9d152b0d4c510ee3ce4caaaffe2003ba7584469f8027f174aab18c"
},
{
"path": "v2/experiments/train_data/rft_v1/verified_rft_messages.jsonl",
"sha256": "a42453ccd7ac7680b0a03865e8e7080bc8bf74c8d9d193b440c441ed46f8512b"
},
{
"path": "v2/experiments/train_data/rft_v2/verified_rft_messages.jsonl",
"sha256": "18f4b3bd7e651f83c6acab479c9475e3fa50dc652a384f309e97146983ac85ba"
}
]
}