Skip to content

Commit

Permalink
bears/python: Add PyFlakesBear
Browse files Browse the repository at this point in the history
Closes coala#825
  • Loading branch information
srisankethu committed Nov 10, 2016
1 parent 885fa9b commit ba6dbe4
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 1 deletion.
24 changes: 24 additions & 0 deletions bears/python/PyFlakesBear.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
from coalib.bearlib.abstractions.Linter import linter
from coalib.bears.requirements.PipRequirement import PipRequirement


@linter(executable='pyflakes',
output_format='regex',
output_regex=r'(?P<filename>.*):(?P<line>.*):\s*(?P<message>.*)')
class PyFlakesBear:
"""
Checks Python files for logistic errors using ``pyflakes``.
See https://github.com/PyCQA/pyflakes for more info.
"""
LANGUAGES = {"Python", "Python 3"}
REQUIREMENTS = {PipRequirement('pyflakes', '1.12.*')}
AUTHORS = {'The coala developers'}
AUTHORS_EMAILS = {'[email protected]'}
LICENSE = 'AGPL-3.0'
ASCIINEMA_URL = 'https://asciinema.org/a/'
CAN_DETECT = {'Unused imports', 'Undefined Element'}

@staticmethod
def create_arguments(filename, file, config_file):
return filename,
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,6 @@ pyyaml==3.*
vulture==0.10.*
bandit==1.1.*
nbformat>=4.*
pyflakes==1.2.* # Although we don't need this directly, solves a dep conflict
pyflakes==1.2.*
scspell3k==2.*
mypy-lang==0.4.*
15 changes: 15 additions & 0 deletions tests/python/PyFlakesBearTest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from bears.python.PyFlakesBear import PyFlakesBear
from tests.LocalBearTestHelper import verify_local_bear

good_file = """
print("Hi")
"""

bad_file = """
import os
print("Hi")
"""

PyFlakesBear = verify_local_bear(PyFlakesBear,
valid_files=(good_file,),
invalid_files=(bad_file,))

0 comments on commit ba6dbe4

Please sign in to comment.