Skip to content

API-Editor#

GitHub release (latest by date) Main codecov Documentation Status DOI

The api-editor is a tool to improve the API of a Python library in a semi-automated manner. Several improvements are suggested automatically and the user can add further improvements manually in a user-friendly GUI. These improvements are implemented automatically by the tool as wrappers that provide the desired API while internally using the existing Python library.

The automation described above relies on structured information about the existing Python library. This information can be computed automatically by the library-analyzer.

You can find the full documentation here.

For Users#

  1. Install OpenJDK 17.
  2. Download the file API-Editor (<version>) from the latest release (listed under "Assets").
  3. Run the program:
    java -jar api-editor-<version>.jar
    
  4. Open localhost:4280 in your browser.
  5. In the window that opens, enter your username in the bottom right field.
  6. Download the contents of the data folder of this project. Alternatively, compute the required data for another Python API using the library-analyzer.
  7. Open File > Import > API Data and upload the API data that you stored locally.
  8. Open File > Import > Usages and upload the usage data that you stored locally.
  9. Open File > Import > Annotations and upload the annotation data that you stored locally (from the repository or your own prior usages of the tool).

Now you are ready to explore the API and review existing annotations.

For Developers#

Installation#

  1. Install OpenJDK 17.
  2. Install Node.js 18.x.
  3. Build everything:
    ./gradlew build
    

During development#

  1. Run the backend server:
    ./gradlew :backend:run
    
  2. Run the development server (keep the backend server running):
    cd gui
    npm run dev
    
  3. Open localhost:5173 in your browser.

Contributing#

We welcome contributions from everyone. As a starting point, check the following resources:

If you need further help, please use our discussion forum.