@@ -142,7 +142,7 @@ def _generate_class_def_body(
142
142
name = class_name , base_names = base_names , description = description
143
143
)
144
144
lineno = 0
145
- for org_name , field in self ._get_combined_fields (definition ).items ():
145
+ for org_name , field in self ._get_combined_fields (definition ).items ():
146
146
lineno += 1
147
147
name = process_name (
148
148
org_name , convert_to_snake_case = self .convert_to_snake_case
@@ -158,12 +158,13 @@ def _generate_class_def_body(
158
158
name , field_name , org_name , field , method_required , lineno
159
159
)
160
160
)
161
- if field .description :
161
+ if field .description and not method_required :
162
162
lineno += 1
163
- docstring = ast .Expr (value = ast .Constant (field .description ), lineno = lineno )
163
+ docstring = ast .Expr (
164
+ value = ast .Constant (field .description ), lineno = lineno
165
+ )
164
166
class_def .body .append (docstring )
165
167
166
-
167
168
class_def .body .append (
168
169
self ._generate_fields_method (
169
170
class_name , definition .name , sorted (additional_fields_typing )
@@ -225,7 +226,10 @@ def _generate_class_field(
225
226
"""Handles the generation of field types."""
226
227
if getattr (field , "args" ) or method_required :
227
228
return self .generate_product_type_method (
228
- name , field_name , getattr (field , "args" )
229
+ name ,
230
+ field_name ,
231
+ getattr (field , "args" ),
232
+ description = getattr (field , "description" ),
229
233
)
230
234
return generate_ann_assign (
231
235
target = generate_name (name ),
@@ -320,7 +324,11 @@ def _generate_on_method(self, class_name: str) -> ast.FunctionDef:
320
324
)
321
325
322
326
def generate_product_type_method (
323
- self , name : str , class_name : str , arguments : Optional [Dict [str , Any ]] = None
327
+ self ,
328
+ name : str ,
329
+ class_name : str ,
330
+ arguments : Optional [Dict [str , Any ]] = None ,
331
+ description : Optional [str ] = None ,
324
332
) -> ast .FunctionDef :
325
333
"""Generates a method for a product type."""
326
334
arguments = arguments or {}
@@ -360,6 +368,7 @@ def generate_product_type_method(
360
368
),
361
369
return_type = generate_name (f'"{ class_name } "' ),
362
370
decorator_list = [generate_name ("classmethod" )],
371
+ description = description ,
363
372
)
364
373
365
374
def _get_suffix (
0 commit comments