@@ -118,7 +118,7 @@ class $L:
118
118
119
119
""" ,
120
120
symbol .getName (),
121
- writer .consumer (w -> writeClassDocs ( false ) ),
121
+ writer .consumer (this :: writeClassDocs ),
122
122
writer .consumer (w -> writeProperties ()),
123
123
writer .consumer (w -> generateSerializeMethod ()),
124
124
writer .consumer (w -> generateDeserializeMethod ()));
@@ -166,7 +166,7 @@ class $1L($2T):
166
166
symbol .getName (),
167
167
baseError ,
168
168
fault ,
169
- writer .consumer (w -> writeClassDocs ( true ) ),
169
+ writer .consumer (this :: writeClassDocs ),
170
170
writer .consumer (w -> writeProperties ()),
171
171
writer .consumer (w -> generateSerializeMethod ()),
172
172
writer .consumer (w -> generateDeserializeMethod ()));
@@ -185,12 +185,18 @@ private void writeProperties() {
185
185
} else {
186
186
writer .putContext ("sensitive" , false );
187
187
}
188
+ var docs = member .getMemberTrait (model , DocumentationTrait .class )
189
+ .map (DocumentationTrait ::getValue )
190
+ .map (writer ::formatDocs )
191
+ .orElse (null );
192
+ writer .putContext ("docs" , docs );
188
193
189
194
var memberName = symbolProvider .toMemberName (member );
190
195
writer .putContext ("quote" , recursiveShapes .contains (target ) ? "'" : "" );
191
196
writer .write ("""
192
197
$L: ${quote:L}$T${quote:L}\
193
198
${?sensitive} = field(repr=False)${/sensitive}
199
+ ${?docs}""\"${docs:L}""\"${/docs}
194
200
""" ,
195
201
memberName ,
196
202
symbolProvider .toSymbol (member ));
@@ -227,6 +233,11 @@ private void writeProperties() {
227
233
writer .putContext ("defaultKey" , defaultKey );
228
234
writer .putContext ("defaultValue" , defaultValue );
229
235
writer .putContext ("useField" , requiresField );
236
+ var docs = member .getMemberTrait (model , DocumentationTrait .class )
237
+ .map (DocumentationTrait ::getValue )
238
+ .map (writer ::formatDocs )
239
+ .orElse (null );
240
+ writer .putContext ("docs" , docs );
230
241
231
242
writer .putContext ("quote" , recursiveShapes .contains (target ) ? "'" : "" );
232
243
@@ -236,31 +247,16 @@ private void writeProperties() {
236
247
= ${^useField}${defaultValue:L}${/useField}\
237
248
${?useField}\
238
249
field(${?sensitive}repr=False, ${/sensitive}${defaultKey:L}=${defaultValue:L})\
239
- ${/useField}""" , memberName , symbolProvider . toSymbol ( member ));
240
-
250
+ ${/useField}
251
+ ${?docs}""\"${docs:L}""\"${/docs}""" , memberName , symbolProvider . toSymbol ( member ));
241
252
writer .popState ();
242
253
}
243
254
}
244
255
245
- private void writeClassDocs (boolean isError ) {
246
- if (hasDocs ()) {
247
- writer .writeDocs (() -> {
248
- shape .getTrait (DocumentationTrait .class ).ifPresent (trait -> {
249
- writer .write (writer .formatDocs (trait .getValue ()));
250
- });
251
-
252
- if (isError ) {
253
- writer .write ("\n :param message: A message associated with the " +
254
- "specific error." );
255
- }
256
-
257
- if (!shape .members ().isEmpty ()) {
258
- writer .write ("" );
259
- requiredMembers .forEach (this ::writeMemberDocs );
260
- optionalMembers .forEach (this ::writeMemberDocs );
261
- }
262
- });
263
- }
256
+ private void writeClassDocs (PythonWriter writer ) {
257
+ shape .getTrait (DocumentationTrait .class ).ifPresent (trait -> {
258
+ writer .writeDocs (writer .formatDocs (trait .getValue ()).trim ());
259
+ });
264
260
}
265
261
266
262
private List <MemberShape > filterPropertyMembers (List <MemberShape > members ) {
0 commit comments