183style is the backend of the automated C++ style grader written for and used by EECS 183 at the University of Michigan. This package is continuously integrated into https://github.com/vianuevm/183_style_grader, which provides the front-end interface for students to interact with the grader.
##Installing
For now, just git clone
the repository and run python setup.py install
-- eventually this will be packaged and added to PyPI.
##Getting Started with 183style
We'll let you know as soon as we know!
##Release Notes
ReadTheDocs coming soon, once things actually work well enough to merit documentation.
##Development
183style is still in development, and contributions are welcome! Fork away and have at it. Here's how the package works at the moment:
-
style_grader_main.py (driver) creates a StyleRubric, which does the heavy lifting.
-
StyleRubric.load_functions pulls all enabled functionalities out of rubric.ini, looks them up in their respective files and plugs them in for grading.
-
The StyleRubric then calls "grade_student_file" function on all files:
for self.current_line_num, code in enumerate(clean_code): for function in self.single_line_checks: function(self, code) for function in self.multi_line_checks: function(self, clean_lines) ...
-
If an error is discovered, the StyleRubric class adds an instance of the StyleError class to its ever growing list of errors. This list is eventually returned as the final result.