Example #1
0
 def __call__(self, _dir):
     require_bin(
         'flake8', 'flake8 is required (try: "apt-get install flake8")')
     ignore = [
         'E501',  # line-too-long
     ]
     base_cmd = 'cd {0} && flake8 {0}'
     cmd = base_cmd
     exclude = ['*build/*']
     for venv_dir in find_venvs(_dir):
         exclude.append(venv_dir)
     ignore = ','.join(ignore)
     exclude = ','.join(exclude)
     exclude = ' --exclude=' + exclude
     ignore = ' --ignore=' + ignore
     cmd = cmd.format(_dir) + exclude
     output = self.cmd_exec(cmd)
     output_lines = output.split('\n')
     if self.ignore_pep8:
         output_lines = filter(
             lambda x: not r_pep8_error.match(x), output_lines)
         output = '\n'.join(output_lines)
     if self.ignore_unused_imports_in_init_files:
         r2 = re.compile('.*__init__.py.* F401 .*')
         output_lines = filter(lambda x: not r2.match(x), output_lines)
         output = '\n'.join(output_lines)
     if self.ignore_undefined_names:
         always_ignore_names = [x for x in self.ignore_undefined_names
                                if isinstance(x, basestring)]
         patterns = []
         res = re.compile(".*F821 undefined name '(" +
                          '|'.join(always_ignore_names) +
                          ")'")
         patterns.append(res)
         sometimes_ignore_names = [x for x in self.ignore_undefined_names
                                   if not isinstance(x, basestring)]
         for name, pattern in sometimes_ignore_names:
             res2 = re.compile(
                 pattern + ".*F821 undefined name '" + name + "'")
             patterns.append(res2)
         output_lines = filter(
             lambda x: not any([y.match(x) for y in patterns]), output_lines)
         output = '\n'.join(output_lines)
     bad_files = [x.split(':')[0] for x in output_lines]
     err_counter = defaultdict(lambda: 0)
     for x in bad_files:
         err_counter[x] += 1
     # sort files by number of errors
     sorted_by_severity = sorted(err_counter.items(), key=lambda x: -x[1])
     top = sorted_by_severity[:3]
     report = dict(sorted_by_severity)
     print output
     total_problems = sum(report.values())
     self.report("total problems: {0}".format(total_problems))
     self.report("top files: {0}".format(dict(top)))
     return report.keys()
Example #2
0
def summarize(parameter_s=''):
    _dir = parameter_s or os.getcwd()
    assert ope(_dir)
    tmp = guess_dir_type(_dir)
    print console.red('match types:')
    console.draw_line()
    print ' {0}'.format(tmp)
    print console.red('virttualenvs:')
    console.draw_line()
    print ' {0}'.format(find_venvs(_dir))
    print console.red('sloccount:')
    for report_section in sloccount(_dir):
        console.draw_line()
        print report_section.strip()
    console.draw_line()
Example #3
0
 def _venvs(self):
     pname = self._project_manager._current_project
     return find_venvs(
         self._project_manager.project_map[pname])
Example #4
0
 def test_find_venvs(self):
     def report(*args):
         pass
     all_venvs = venv.find_venvs(
         TEST_DIR, report=report,max_venvs=5)
     self.assertEqual(len(all_venvs), 2)