Skip to content

Commit c134955

Browse files
J03D03claude
andcommitted
Treat null set fields as empty in DatasetEntry.from_dict
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 16fe288 commit c134955

2 files changed

Lines changed: 15 additions & 1 deletion

File tree

‎tests/test_dataset_entry.py‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,20 @@ def test_lists_converted_to_sets(self):
158158
assert isinstance(e.cve_ids, set)
159159
assert isinstance(e.files_changed, set)
160160

161+
def test_null_set_fields_treated_as_empty(self):
162+
data = {
163+
"project_url": "https://github.com/owner/repo",
164+
"commit_id": "abcdef12345",
165+
"src_datasets": ["ds"],
166+
"cve_ids": None,
167+
"cwe_ids": None,
168+
"files_changed": None,
169+
}
170+
e = DatasetEntry.from_dict(data)
171+
assert e.cve_ids == set()
172+
assert e.cwe_ids == set()
173+
assert e.files_changed == set()
174+
161175
def test_owasp_categories_converted_to_owasp_category_set(self):
162176
data = {
163177
"project_url": "https://github.com/owner/repo",

‎vfc_datasets/dataset_entry.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ def from_dict(cls, data: dict[str, Any]) -> Self:
105105
"""Create a DatasetEntry from a serialized dict (e.g. loaded from JSON)."""
106106
set_fields = {"src_datasets", "cve_ids", "cwe_ids", "files_changed"}
107107
converted: dict[str, Any] = {
108-
k: set(v) if k in set_fields and isinstance(v, list) else v
108+
k: set(v or []) if k in set_fields else v
109109
for k, v in data.items()
110110
}
111111
if converted.get("owasp_categories") is not None:

0 commit comments

Comments
 (0)