Third-party Components
Server
ThemisML uses FastAPI for the web server and uvicorn as the ASGI server.
Library repository FastAPI: https://github.com/tiangolo/fastapi (0.88.0) Library repository uvicorn: https://github.com/encode/uvicorn (0.20.0)
Database
To connect to the PostgreSQL database, ThemisML uses SQLAlchemy as the client and Psycopg2 as the database driver.
Feedback generation
For extracting the methods, we use ANTL4 for python. To compare code, we use CodeBERTScore, which is a wrapper for CodeBERT. Because it is not available on PyPI, we directly link to the GitHub repository in our requirements.
Library repository ANTL4: https://github.com/antlr/antlr4 (4.11.1)
Helpers
The helper script determine-similarity-cutoff
uses the dataset library to simplify working with the database.
Library repository dataset: https://github.com/pudo/dataset (1.6.0)
You can find the full list of third-party requirements including the most up-to-date version numbers in use in the requirements.txt
files in the respective folders of the ThemisML repository. The main one is found in feedback-suggestion/requirements.txt.