clara-api-server
https://github.com/sutd-automated-programming-tools/clara-api-server
Science Score: 49.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org, acm.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.8%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: sutd-automated-programming-tools
- License: gpl-3.0
- Language: Python
- Default Branch: main
- Size: 22.9 MB
Statistics
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 1
- Releases: 0
Metadata Files
README.md
CLuster And RepAir tool for introductory programming assignments
About
This is an implementation of the clustering and repair tool for introductory programming assignments, described in the following paper: Automated Clustering and Program Repair forIntroductory Programming Assignments (https://dl.acm.org/doi/10.1145/3192366.3192387 and https://arxiv.org/abs/1603.03165).
Deployment
bash
git clone git@github.com:sutd-automated-programming-tools/clara-api-server.git
Run:
bash
cd clara-api-server
. ec2script.sh
Access api at: server-ip@ddress/clara/
Dependencies
- C compiler
- Cython
$ sudo aptitude install cython(Debian)# dnf install Cython(Fedora)
- lpsolve 5.5 (development files and library)
$ sudo aptitude install lp-solve liblpsolve55-dev(Debian)# dnf install lpsolve-devel(Fedora)
Installation & running
make(in this directory) installs a binary file calledclara- Run
clara helpor see examples below.
Development
- Create a new virtual environment (using
virtualenv) - Install
Cython(usingpip install Cythoninside the new virtual enviroment) - Run
python setup.py develop
OR
Create a clone of the project and run the local installation script:
git clone https://github.com/sutd-automated-programming-tools/clara-api-server.git
. install_local.sh
Docker
Create a clone of the project and run the docker script:
git clone https://github.com/sutd-automated-programming-tools/clara-api-server.git
docker build . -t clara
docker compose up
Debian note
On Debian system the following is required before running the tool: export LD_LIBRARY_PATH=/usr/lib/lp_solve/
Examples
The examples/ directory contains some example programs:
- c1.py and c2.py are the correct examples from the paper
- i1.py and i2.py are the incorrect example from the paper
- c3.py is a constructed example.
Matching
To test matching between examples/c1.py and examples/c2.py on inputs [4.5] and [1.0,3.0,5.5] use:
clara match examples/c1.py examples/c2.py --entryfnc computeDeriv --args "[[[4.5]], [[1.0,3.0,5.5]]]" --ignoreio 1
This should output Match!.
To test matching between examples/c1.py and examples/c3.py on inputs [4.5] and [1.0,3.0,5.5] use:
clara match examples/c1.py examples/c3.py --entryfnc computeDeriv --args "[[[4.5]], [[1.0,3.0,5.5]]]" --ignoreio 1
This should output No match!.
Repair (on two programs)
To repair examples/i1.py using examples/c1.py on the same inputs as above, use:
clara repair examples/c1.py examples/i1.py --entryfnc computeDeriv --args "[[[4.5]], [[1.0,3.0,5.5]]]" --ingoreio 1
Clustering
To cluster correct programs on the same inputs as above use:
mkdir clusters
clara cluster examples/c*.py --clusterdir clusters --entryfnc computeDeriv --args "[[[4.5]], [[1.0,3.0,5.5]]]" --ignoreio 1
This should produce two clusters in the directroy clusters/ and two .json files with additional experssion extracted from the clusters.
Feedback
To produce feedback from the above clusters for an incorrect program, for example examples/i1.py, use:
clara feedback clusters/c*.py examples/i1.py --entryfnc computeDeriv --args "[[[4.5]], [[1.0,3.0,5.5]]]" --ignoreio 1 --feedtype python
Note
You can add --verbose 1 to any of the examples to obtain a more verbose output.
Known issues
May not work well on Python 3.8.
Owner
- Name: sutd-automated-programming-tools
- Login: sutd-automated-programming-tools
- Kind: organization
- Repositories: 3
- Profile: https://github.com/sutd-automated-programming-tools
GitHub Events
Total
Last Year
Dependencies
- Cython ==0.29.23
- fastapi ==0.65.2
- passlib ==1.7.4
- python-jose ==3.3.0
- python-multipart ==0.0.5
- uvicorn ==0.14.0
- Cython ==0.29.23
- asgiref ==3.4.1
- clara ==1.0
- click ==8.0.3
- ecdsa ==0.17.0
- fastapi ==0.65.2
- h11 ==0.12.0
- importlib-metadata ==4.8.1
- passlib ==1.7.4
- pyasn1 ==0.4.8
- pycparser ==2.20
- pydantic ==1.8.2
- python-jose ==3.3.0
- python-multipart ==0.0.5
- rsa ==4.7.2
- six ==1.16.0
- starlette ==0.14.2
- typing-extensions ==3.10.0.2
- uvicorn ==0.14.0
- zipp ==3.6.0
- zss ==1.2.0
- pycparser *
- zss *
- python 3.7-bullseye build
- clara latest