radon-defect-predictor

A Python library to train machine learning models for defect prediction of infrastructure code.


Keywords
cli, iac, defect-prediction
License
Apache-2.0
Install
pip install radon-defect-predictor==0.2.7

Documentation

Build Documentation LGTM Grade pypi-version pypi-status release-date python-version

radon-defect-prediction

The RADON command-line client for Infrastructure-as-Code Defect Prediction.

How to Install

From PyPI:

pip install radon-defect-predictor

From source code:

git clone https://github.com/radon-h2020/radon-defect-prediction.git
cd radon-defect-predictor
pip install -r requirements.txt
pip install .

Quick Start

usage: radon-defect-predictor [-h] [-v] {train,predict,model} ...

A Python library to train machine learning models for defect prediction of infrastructure code

positional arguments:
  {train,predict,model}
    train               train a brand new model from scratch
    model               get a pre-trained model to test unseen instances
    predict             predict unseen instances

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit

How to build Docker container

docker build --tag radon-dp:latest .

How to run Docker container

First, create a host volume to share data and results between the host machine and the Docker container:

mkdir /tmp/radon-dp-volume/

Train

Create a training dataset metrics.csv and copy/move it to /tmp/radon-dp-volume/. See how to generate the training data for defect prediction here.

Run:

docker run -v /tmp/radon-dp-volume:/app radon-dp:latest radon-defect-predictor train metrics.csv ...

See the docs for more details about this command.

The built model can be accessed at /tmp/radon-dp-volume/radondp_model.joblib.

Model

Run:

docker run -v /tmp/radon-dp-volume:/app radon-dp:latest radon-defect-predictor download-model ...

See the docs for more details about this command.

The downloaded model can be accessed at /tmp/radon-dp-volume/radondp_model.joblib.

Predict

Move the model and the files to predict in the shared volume. For example, if you want to run the prediction on a .csar, then

cp patah/to/file.csar /tmp/radon-dp-volume.

Alternatively, you can create a volume from the folder containing the .csar (in that case, make sure to move the model within it).

Run:

docker run -v /tmp/radon-dp-volume:/app radon-dp:latest radon-defect-predictor predict ...

See the docs for more details about this command.

The predictions can be accessed at /tmp/radon-dp-volume/radondp_predictions.json.