diff --git a/stubgenj/_stubgenj.py b/stubgenj/_stubgenj.py index 9428a5ccb6f65741c45b2bee148bb954dbd8ab9f..fa2e80f0a2f91961aa7c8c180fe21014a4d33e52 100644 --- a/stubgenj/_stubgenj.py +++ b/stubgenj/_stubgenj.py @@ -35,6 +35,7 @@ from typing import List, Optional, Any, Set, Type, Union, Generator import jpype from jpype._pykeywords import pysafe # noqa : jpype does not expose a public API for the Java name mangling it applies +from jpype._jclass import _jclassDoc as generate_class_javadoc # noqa : jpype does not expose a public API to getting Javadoc import logging @@ -1005,10 +1006,16 @@ def generateJavaClassStub(package: jpype.JPackage, output.append('') output += typeVarOutput + javadocOutput = [' ' + javadocLine for javadocLine in generate_class_javadoc(jClass).split('\n')] + if javadocOutput: + javadocOutput = [' """'] + javadocOutput + [' """'] + if not constructorsOutput and not methodsOutput and not fieldsOutput and not nestedClassesOutput: output.append(f'class {className}{superTypeStr}: ...') + # a docstring is not allowed here ... else: output.append(f'class {className}{superTypeStr}:') + output.extend(javadocOutput) for line in fieldsOutput: output.append(f' {line}') for line in constructorsOutput: