Skip to main content

PEP-484 python stub generator for Java classes accessed through JPype

Project description

stubgenj

PEP-484 python stub generator for Java modules using the JPype import system. Originally based on mypy stubgenc.

Usage through cmmnbuild-dep-manager

$ python -m cmmnbuild_dep_manager stubgen

Every package registered in cmmnbuild_dep_manager can request stubs to be generated for particular prefixes by defining __stubgen_packages__ next to __cmmnbuild_deps__.

For more details, consult the cmmnbuild_dep_manager docs.

CLI usage

$ python -m stubgenj --help
usage: __main__.py [-h] [--jvmpath JVMPATH] [--classpath CLASSPATH]
                   [--output-dir OUTPUT_DIR] [--convert-strings]
                   [--no-stubs-suffix]
                   prefixes [prefixes ...]

Generate Python Type Stubs for Java classes.

positional arguments:
  prefixes              package prefixes to generate stubs for (e.g.
                        org.myproject)

optional arguments:
  -h, --help            show this help message and exit
  --jvmpath JVMPATH     path to the JVM ("libjvm.so", "jvm.dll", ...)
                        (default: use system default JVM)
  --classpath CLASSPATH
                        java class path to use, separated by ":". glob-like
                        expressions (e.g. dir/*.jar) are supported (default:
                        .)
  --output-dir OUTPUT_DIR
                        path to write stubs to (default: .)
  --convert-strings     convert java.lang.String to python str in return
                        types. consult the JPype documentation on the
                        convertStrings flag for details
  --no-stubs-suffix     do not use PEP-561 "-stubs" suffix for top-level
                        packages
  --no-javadoc          do not generate docstrings from JavaDoc where 
                        available

E.g. generate stubs for java packages cern.lsa.* and java.* using the JARs from cmmnbuild-dep-manager:

$ python -m stubgenj --convert-strings --classpath "/path/to/cmmnbuild_dep_manager/lib/*.jar" cern.lsa java

The stubs will be put in the working directory as stub-only packages (PEP-561).

Python API usage

Start up the JVM, enable the JPype import system, then invoke stubgenj.generateJavaStubs.

With plain JPype:

import jpype
import stubgenj

jpype.startJVM(None, convertStrings=True)  # noqa
import jpype.imports  # noqa
import java.util  # noqa

stubgenj.generateJavaStubs([java.util], useStubsSuffix=True)

Through cmmnbuild-dep-manager:

import cmmnbuild_dep_manager
import stubgenj

with cmmnbuild_dep_manager.Manager().imports():
    import java.util  # noqa
    stubgenj.generateJavaStubs([java.util], useStubsSuffix=True)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stubgenj-0.2.12.tar.gz (23.7 kB view details)

Uploaded Source

Built Distribution

stubgenj-0.2.12-py3-none-any.whl (22.1 kB view details)

Uploaded Python 3

File details

Details for the file stubgenj-0.2.12.tar.gz.

File metadata

  • Download URL: stubgenj-0.2.12.tar.gz
  • Upload date:
  • Size: 23.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.14.2 setuptools/27.2.0 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.6.1

File hashes

Hashes for stubgenj-0.2.12.tar.gz
Algorithm Hash digest
SHA256 b49240edbbb1c89f449b7cb547b0dac8fde531366641dad07b0a83e634c91f1f
MD5 fe92e01d4fda096c224753fdcb069a60
BLAKE2b-256 3efba437e750af248b89d871ef011d56d00fd4d3cf6539d74b5f6d4e4d4b7c4b

See more details on using hashes here.

File details

Details for the file stubgenj-0.2.12-py3-none-any.whl.

File metadata

  • Download URL: stubgenj-0.2.12-py3-none-any.whl
  • Upload date:
  • Size: 22.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.14.2 setuptools/27.2.0 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.6.1

File hashes

Hashes for stubgenj-0.2.12-py3-none-any.whl
Algorithm Hash digest
SHA256 bf7cc475536e92e5958c8e2dcbb5c1d7cfbb3753b17f4df2ac86e0b385ee6683
MD5 8cedb300986e4e2afa573b4a6a4d849f
BLAKE2b-256 47ba408d9c326f8f6a7dcb6ca181f97b256f32cd64289b4c59ff224964be5f8a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page