GEMMA DEVELOPER AGENTSAVED EVIDENCE
← Dataset Exploration
ARCHIVED TRAINING / koxudaxi/datamodel-code-generator

koxudaxi__datamodel-code-generator-3046

This is a preserved training example. Membership in the current training wave has not been verified.
koxudaxi/datamodel-code-generator · Task 92 of 169

Problem statement

Default values for python dictionaries are incorrectly rendered
**Describe the bug**
Default values for objects with `additionalProperties` mapped to python dictionaries are incorrectly rendered in the generated pydantic models.

**To Reproduce**
1. Save schema provided below as `schema.json`
2. Generate the code using command `datamodel-codegen --input schema.json --input-file-type jsonschema --output-model-type pydantic_v2.BaseModel --output model.py`
3. Incorrect schema is generated, see Expected behavior for details

Example schema:
```json

{
  "$defs": {
    "ItemModel": {
      "properties": {
        "name": {
          "title": "Name",
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        }
      },
      "required": [
        "name",
        "description"
      ],
      "title": "ItemModel",
      "type": "object"
    }
  },
  "properties": {
    "dict_with_defaults": {
      "additionalProperties": {
        "$ref": "#/$defs/ItemModel"
      },
      "default": {},
      "title": "Dict With Defaults",
      "type": "object"
    }
  },
  "title": "ParentModel",
  "type": "object"
}

```

Used commandline:
```
$ datamodel-codegen --input schema.json --input-file-type jsonschema --output-model-type pydantic_v2.BaseModel --output model.py
```

**Expected behavior**

Currently the following models are generated as following:

```
class ItemModel(BaseModel):
    name: str = Field(..., title='Name')
    description: str = Field(..., title='Description')


class ParentModel(BaseModel):
    dict_with_defaults: dict[str, ItemModel] | None = Field(
        default_factory=lambda: ItemModel.model_validate({}), title='Dict With Defaults'
    )
```

dict_with_defaults has incorrect default_factory, because it tries to validate the default as an instance of value class instead of a dictionary.
Expected line:

```
dict_with_defaults: dict[str, ItemModel] | None = Field(
        default_factory=dict, title='Dict With Defaults'
    )
```


**Version:**
 - OS: MacOs 26.2
 - Python version: 3.13
 - datamodel-code-generator version: 0.54.1

**Additional context**
N/A

Training membership

opd_e4b_pure_v6b

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_pure_v6b"
  ],
  "examples": 1,
  "instance_id": "koxudaxi__datamodel-code-generator-3046",
  "problem_statement": "Default values for python dictionaries are incorrectly rendered\n**Describe the bug**\nDefault values for objects with `additionalProperties` mapped to python dictionaries are incorrectly rendered in the generated pydantic models.\n\n**To Reproduce**\n1. Save schema provided below as `schema.json`\n2. Generate the code using command `datamodel-codegen --input schema.json --input-file-type jsonschema --output-model-type pydantic_v2.BaseModel --output model.py`\n3. Incorrect schema is generated, see Expected behavior for details\n\nExample schema:\n```json\n\n{\n  \"$defs\": {\n    \"ItemModel\": {\n      \"properties\": {\n        \"name\": {\n          \"title\": \"Name\",\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"title\": \"Description\",\n          \"type\": \"string\"\n        }\n      },\n      \"required\": [\n        \"name\",\n        \"description\"\n      ],\n      \"title\": \"ItemModel\",\n      \"type\": \"object\"\n    }\n  },\n  \"properties\": {\n    \"dict_with_defaults\": {\n      \"additionalProperties\": {\n        \"$ref\": \"#/$defs/ItemModel\"\n      },\n      \"default\": {},\n      \"title\": \"Dict With Defaults\",\n      \"type\": \"object\"\n    }\n  },\n  \"title\": \"ParentModel\",\n  \"type\": \"object\"\n}\n\n```\n\nUsed commandline:\n```\n$ datamodel-codegen --input schema.json --input-file-type jsonschema --output-model-type pydantic_v2.BaseModel --output model.py\n```\n\n**Expected behavior**\n\nCurrently the following models are generated as following:\n\n```\nclass ItemModel(BaseModel):\n    name: str = Field(..., title='Name')\n    description: str = Field(..., title='Description')\n\n\nclass ParentModel(BaseModel):\n    dict_with_defaults: dict[str, ItemModel] | None = Field(\n        default_factory=lambda: ItemModel.model_validate({}), title='Dict With Defaults'\n    )\n```\n\ndict_with_defaults has incorrect default_factory, because it tries to validate the default as an instance of value class instead of a dictionary.\nExpected line:\n\n```\ndict_with_defaults: dict[str, ItemModel] | None = Field(\n        default_factory=dict, title='Dict With Defaults'\n    )\n```\n\n\n**Version:**\n - OS: MacOs 26.2\n - Python version: 3.13\n - datamodel-code-generator version: 0.54.1\n\n**Additional context**\nN/A",
  "repo": "koxudaxi/datamodel-code-generator",
  "source": "v2/experiments/train_data/opd_e4b_pure_v6b/verified_rft_messages.jsonl",
  "source_sha256": "0f62460a9706eea5e1605255896f191ab00cb5706c5f1f2e1c293e9a718218dc"
}
{
  "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"
    }
  ]
}