@@ -118,7 +118,7 @@ class $L:
118118
119119 """ ,
120120 symbol .getName (),
121- writer .consumer (w -> writeClassDocs ( false ) ),
121+ writer .consumer (this :: writeClassDocs ),
122122 writer .consumer (w -> writeProperties ()),
123123 writer .consumer (w -> generateSerializeMethod ()),
124124 writer .consumer (w -> generateDeserializeMethod ()));
@@ -166,7 +166,7 @@ class $1L($2T):
166166 symbol .getName (),
167167 baseError ,
168168 fault ,
169- writer .consumer (w -> writeClassDocs ( true ) ),
169+ writer .consumer (this :: writeClassDocs ),
170170 writer .consumer (w -> writeProperties ()),
171171 writer .consumer (w -> generateSerializeMethod ()),
172172 writer .consumer (w -> generateDeserializeMethod ()));
@@ -185,12 +185,18 @@ private void writeProperties() {
185185 } else {
186186 writer .putContext ("sensitive" , false );
187187 }
188+ var docs = member .getMemberTrait (model , DocumentationTrait .class )
189+ .map (DocumentationTrait ::getValue )
190+ .map (writer ::formatDocs )
191+ .orElse (null );
192+ writer .putContext ("docs" , docs );
188193
189194 var memberName = symbolProvider .toMemberName (member );
190195 writer .putContext ("quote" , recursiveShapes .contains (target ) ? "'" : "" );
191196 writer .write ("""
192197 $L: ${quote:L}$T${quote:L}\
193198 ${?sensitive} = field(repr=False)${/sensitive}
199+ ${?docs}""\"${docs:L}""\"${/docs}
194200 """ ,
195201 memberName ,
196202 symbolProvider .toSymbol (member ));
@@ -227,6 +233,11 @@ private void writeProperties() {
227233 writer .putContext ("defaultKey" , defaultKey );
228234 writer .putContext ("defaultValue" , defaultValue );
229235 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 );
230241
231242 writer .putContext ("quote" , recursiveShapes .contains (target ) ? "'" : "" );
232243
@@ -236,31 +247,16 @@ private void writeProperties() {
236247 = ${^useField}${defaultValue:L}${/useField}\
237248 ${?useField}\
238249 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 ));
241252 writer .popState ();
242253 }
243254 }
244255
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+ });
264260 }
265261
266262 private List <MemberShape > filterPropertyMembers (List <MemberShape > members ) {
0 commit comments