def __init__(self, text=None, filename=None): if filename == None and text == None: raise AttributeError("need a filename or text for a Code object") return if filename: self.filename = filename self.text = get_text(filename) elif text: self.text = text self.lines = self.text.split("\n") self.linebreak_indices = get_linebreak_indices(self.text) self.levels = get_indent_levels(self.lines) self.ignore_lines = get_ignore_lines(self.lines) self.stripped = [] # lines without whitespace or comments for line_no, line in enumerate(self.lines): if self.ignore_lines[line_no]: self.stripped.append("") else: self.stripped.append(strip(line))
def test_strip(self): from utils.line_features import strip self.assertEqual(strip(" int a = 3; "), "int a = 3;") self.assertEqual(strip(" int a = 3; // a is set to 3 "), "int a = 3;") self.assertEqual(strip(" int a = 3; /* a is set to 3 */ "), "int a = 3;")