Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

124 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

java2pyi

project-image

Java‑to‑PYI is a Rust tool that reads compiled Java classes from .jar archives and generates Python stub files (.pyi) with type definitions only. It was originally designed to generate class declarations to provide accurate type hints in the Telegram codebase when developing Exteragram plugins.

Installation from crates.io

cargo install java2pyi

Building from source code and installation steps

  1. Clone this repo
git clone https://github.com/n08i40k/java2pyi
  1. Compile and install
cargo install --path .

Usage example

  1. Collect the .jar files you want stubs for, including the JDK ones (required for all use-cases, otherwise non-primitive java types won't be resolved)
mkdir jars
cp "$JAVA_HOME/jmods/../lib/../jre/lib/rt.jar" ./jars/ # or any jar holding the JDK classes
cp ./Telegram/TMessagesProj/build/outputs/*.jar ./jars/
  1. Create directory for stub files
mkdir stubs
  1. Start generator
java2pyi -i ./jars -o ./stubs

Where -i is a .jar file or a directory searched recursively for .jar files, and -o is the output directory for generated stubs.

About

Java source to Python stubs for mypy/pyright.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages