跳转到主要内容

PEP-484 python stub生成器,用于通过JPype访问Java类

项目描述

stubgenj

PEP-484 python stub生成器,用于通过JPype导入系统使用Java模块。最初基于mypy stubgenc。

通过cmmnbuild-dep-manager使用

$ python -m cmmnbuild_dep_manager stubgen

在cmmnbuild_dep_manager中注册的每个包都可以通过在__cmmnbuild_deps__旁边定义__stubgen_packages__来请求为特定前缀生成存根。

有关更多详细信息,请参阅cmmnbuild_dep_manager文档。

命令行使用

$ 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

例如,使用cmmnbuild-dep-manager的JARs生成java包cern.lsa.*java.*的存根

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

存根将作为仅存根包(PEP-561)放入工作目录中。

Python API使用

启动JVM,启用JPype导入系统,然后调用stubgenj.generateJavaStubs

使用纯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)

通过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)

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

stubgenj-0.2.12.tar.gz (23.7 kB 查看哈希值)

上传时间 源代码

构建分发

stubgenj-0.2.12-py3-none-any.whl (22.1 kB 查看哈希值)

上传时间 Python 3

支持