datamodel-code-generator icon indicating copy to clipboard operation
datamodel-code-generator copied to clipboard

workaround: better class names

Open straz opened this issue 7 months ago • 1 comments

Is your feature request related to a problem? Please describe. The current behavior generates unhelpful enumerated class names, like Address1, Address2, Address3 when the source has multiple definitions for Address.

The current codebase includes a comment:

# TODO: Improve naming for nested ClassName

Describe the solution you'd like The enclosed code is a workaround. We define PatchJsonSchemaParser which can be used like this:

from datamodel_code_generator import generate

with patch('datamodel_code_generator.parser.jsonschema.JsonSchemaParser', PatchJsonSchemaParser):
      generate(...)

This generates more appropriate and verbose classnames, like CustomerAddress, UserAddress, VendorAddress.

Describe alternatives you've considered Ugly regex on the output

Additional context This seems to be an FAQ for this library: https://github.com/koxudaxi/datamodel-code-generator/discussions/1792

Here is the proposed workaround: patch_datamodel_code_generator.py (remove .md suffix as github won't accept a .py file here)

straz avatar Jul 23 '24 13:07 straz