tests/tools/check_source.sh
author Andrey Skvortsov <andrej.skvortzov@gmail.com>
Fri, 15 Jun 2018 16:12:50 +0300
changeset 2184 bbd2364fbf71
parent 2183 63591802d3e2
child 2241 e762e234181d
permissions -rwxr-xr-x
Add argument to set list of source files to check

This is necessary, in case you want to use docker run in pretxncommit
Mercurial hook. Unfortunately for some reason if hg running in
container can't find just created commit defined by $HG_NODE. And it
throws error 'unknown revision'.

Here is example for hgrc.

[hooks]
pretxncommit.linter = hg status -m -n -a -n -I '**.py' --change $HG_NODE > files.lst && docker run --volume=$PWD:/beremiz --workdir="/beremiz" --volume=$PWD/../CanFestival-3:/CanFestival-3 --memory=1g --entrypoint=/beremiz/tests/tools/check_source.sh skvorl/beremiz-requirements --files-to-check files.lst
1786
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
     1
#!/bin/sh
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
     2
# -*- coding: utf-8 -*-
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
     3
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
     4
# This file is part of Beremiz, a Integrated Development Environment for
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
     5
# programming IEC 61131-3 automates supporting plcopen standard and CanFestival.
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
     6
#
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
     7
# Copyright (C) 2017: Andrey Skvortsov
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
     8
#
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
     9
# See COPYING file for copyrights details.
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    10
#
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    11
# This program is free software; you can redistribute it and/or
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    12
# modify it under the terms of the GNU General Public License
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    13
# as published by the Free Software Foundation; either version 2
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    14
# of the License, or (at your option) any later version.
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    15
#
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    16
# This program is distributed in the hope that it will be useful,
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    17
# but WITHOUT ANY WARRANTY; without even the implied warranty of
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    18
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    19
# GNU General Public License for more details.
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    20
#
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    21
# You should have received a copy of the GNU General Public License
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    22
# along with this program; if not, write to the Free Software
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    23
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    24
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    25
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    26
exit_code=0
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    27
set_exit_error()
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    28
{
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    29
    if [ $exit_code -eq 0 ]; then
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    30
       exit_code=1
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    31
    fi
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    32
}
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    33
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    34
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    35
compile_checks()
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    36
{
2016
2a8cd24a14ca Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1881
diff changeset
    37
    echo "Syntax checking using python ..."
2a8cd24a14ca Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1881
diff changeset
    38
    python --version
2a8cd24a14ca Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1881
diff changeset
    39
1786
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    40
    # remove compiled Python files
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    41
    find . -name '*.pyc' -exec rm -f {} \;
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    42
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    43
    for i in $py_files; do
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    44
        # echo $i
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    45
        python -m py_compile $i
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    46
        if [ $? -ne 0 ]; then
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    47
            echo "Syntax error in $i"
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    48
            set_exit_error
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    49
        fi
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    50
    done
2016
2a8cd24a14ca Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1881
diff changeset
    51
    echo "DONE"
2a8cd24a14ca Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1881
diff changeset
    52
    echo ""
1786
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    53
}
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    54
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    55
# pep8 was renamed to pycodestyle
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    56
# detect existed version
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    57
pep8_detect()
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    58
{
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    59
    test -n $pep8 && (which pep8 > /dev/null) && pep8="pep8"
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    60
    test -n $pep8 && (which pycodestyle > /dev/null) && pep8="pycodestyle"
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    61
    if [ -z $pep8 ]; then
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    62
        echo "pep8/pycodestyle is not found"
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    63
        set_exit_error
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    64
    fi
2016
2a8cd24a14ca Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1881
diff changeset
    65
    echo -n "pep8 version: "
2a8cd24a14ca Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1881
diff changeset
    66
    $pep8 --version
1786
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    67
}
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    68
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    69
pep8_checks_default()
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    70
{
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    71
    echo "Check basic code-style problems for PEP-8"
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    72
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    73
    test -n $pep8 && pep8_detect
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    74
    test -z $pep8 && return
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    75
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    76
    user_ignore=
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    77
    # user_ignore=$user_ignore,E265  # E265 block comment should start with '# '
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    78
    user_ignore=$user_ignore,E501  # E501 line too long (80 > 79 characters)
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    79
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    80
    # ignored by default,
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    81
    default_ignore=
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    82
    default_ignore=$default_ignore,E121  # E121 continuation line under-indented for hanging indent
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    83
    default_ignore=$default_ignore,E123  # E123 closing bracket does not match indentation of opening bracket’s line
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    84
    default_ignore=$default_ignore,E126  # E126 continuation line over-indented for hanging indent
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    85
    default_ignore=$default_ignore,E133  # E133 closing bracket is missing indentation
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    86
    default_ignore=$default_ignore,E226  # E226 missing whitespace around arithmetic operator
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    87
    default_ignore=$default_ignore,E241  # E241 multiple spaces after ':'
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    88
    default_ignore=$default_ignore,E242  # E242 tab after ‘,’
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    89
    default_ignore=$default_ignore,E704  # E704 multiple statements on one line (def)
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    90
    default_ignore=$default_ignore,W503  # W503 line break occurred before a binary operator
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    91
    ignore=$user_ignore,$default_ignore
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    92
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    93
    # $pep8 --ignore $ignore --exclude build ./
2181
52630996e51b Add command line argument to run linter only on changed files
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2016
diff changeset
    94
    $pep8 --max-line-length 300 --exclude build $py_files
1786
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    95
    if [ $? -ne 0 ]; then
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    96
        set_exit_error
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
    97
    fi
2016
2a8cd24a14ca Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1881
diff changeset
    98
2a8cd24a14ca Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1881
diff changeset
    99
    echo "DONE"
2a8cd24a14ca Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1881
diff changeset
   100
    echo ""
1786
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   101
}
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   102
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   103
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   104
pep8_checks_selected()
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   105
{
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   106
    echo "Check basic code-style problems for PEP-8 (selective)"
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   107
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   108
    test -n $pep8 && pep8_detect
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   109
    test -z $pep8 && return
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   110
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   111
    # select checks:
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   112
    user_select=
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   113
    user_select=$user_select,W291   # W291 trailing whitespace
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   114
    user_select=$user_select,E401   # E401 multiple imports on one line
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   115
    user_select=$user_select,E265   # E265 block comment should start with '# '
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   116
    user_select=$user_select,E228   # E228 missing whitespace around modulo operator
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   117
    user_select=$user_select,W293   # W293 blank line contains whitespace
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   118
    user_select=$user_select,E302   # E302 expected 2 blank lines, found 1
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   119
    user_select=$user_select,E261   # E261 at least two spaces before inline comment
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   120
    user_select=$user_select,E271   # E271 multiple spaces after keyword
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   121
    user_select=$user_select,E231   # E231 missing whitespace after ','
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   122
    user_select=$user_select,E303   # E303 too many blank lines (2)
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   123
    user_select=$user_select,E225   # E225 missing whitespace around operator
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   124
    user_select=$user_select,E711   # E711 comparison to None should be 'if cond is not None:'
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   125
    user_select=$user_select,E251   # E251 unexpected spaces around keyword / parameter equals
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   126
    user_select=$user_select,E227   # E227 missing whitespace around bitwise or shift operator
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   127
    user_select=$user_select,E202   # E202 whitespace before ')'
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   128
    user_select=$user_select,E201   # E201 whitespace after '{'
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   129
    user_select=$user_select,W391   # W391 blank line at end of file
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   130
    user_select=$user_select,E305   # E305 expected 2 blank lines after class or function definition, found X
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   131
    user_select=$user_select,E306   # E306 expected 1 blank line before a nested definition, found X
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   132
    user_select=$user_select,E703   # E703 statement ends with a semicolon
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   133
    user_select=$user_select,E701   # E701 multiple statements on one line (colon)
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   134
    user_select=$user_select,E221   # E221 multiple spaces before operator
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   135
    user_select=$user_select,E741   # E741 ambiguous variable name 'l'
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   136
    user_select=$user_select,E111   # E111 indentation is not a multiple of four
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   137
    user_select=$user_select,E222   # E222 multiple spaces after operator
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   138
    user_select=$user_select,E712   # E712 comparison to True should be 'if cond is True:' or 'if cond:'
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   139
    user_select=$user_select,E262   # E262 inline comment should start with '# '
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   140
    user_select=$user_select,E203   # E203 whitespace before ','
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   141
    user_select=$user_select,E731   # E731 do not assign a lambda expression, use a def
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   142
    user_select=$user_select,W601   # W601 .has_key() is deprecated, use 'in'
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   143
    user_select=$user_select,E502   # E502 the backslash is redundant between brackets
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   144
    user_select=$user_select,W602   # W602 deprecated form of raising exception
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   145
    user_select=$user_select,E129   # E129 visually indented line with same indent as next logical line
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   146
    user_select=$user_select,E127   # E127 continuation line over-indented for visual indent
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   147
    user_select=$user_select,E128   # E128 continuation line under-indented for visual indent
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   148
    user_select=$user_select,E125   # E125 continuation line with same indent as next logical line
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   149
    user_select=$user_select,E114   # E114 indentation is not a multiple of four (comment)
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   150
    user_select=$user_select,E211   # E211 whitespace before '['
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   151
    user_select=$user_select,W191   # W191 indentation contains tabs
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   152
    user_select=$user_select,E101   # E101 indentation contains mixed spaces and tabs
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   153
    user_select=$user_select,E124   # E124 closing bracket does not match visual indentation
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   154
    user_select=$user_select,E272   # E272 multiple spaces before keyword
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   155
    user_select=$user_select,E713   # E713 test for membership should be 'not in'
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   156
    user_select=$user_select,E122   # E122 continuation line missing indentation or outdented
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   157
    user_select=$user_select,E131   # E131 continuation line unaligned for hanging indent
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   158
    user_select=$user_select,E721   # E721 do not compare types, use 'isinstance()'
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   159
    user_select=$user_select,E115   # E115 expected an indented block (comment)
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   160
    user_select=$user_select,E722   # E722 do not use bare except'
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   161
    user_select=$user_select,E266   # E266 too many leading '#' for block comment
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   162
    user_select=$user_select,E402   # E402 module level import not at top of file
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   163
    user_select=$user_select,W503   # W503 line break before binary operator
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   164
2181
52630996e51b Add command line argument to run linter only on changed files
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2016
diff changeset
   165
    $pep8 --select $user_select --exclude=build $py_files
1786
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   166
    if [ $? -ne 0 ]; then
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   167
        set_exit_error
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   168
    fi
2016
2a8cd24a14ca Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1881
diff changeset
   169
2a8cd24a14ca Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1881
diff changeset
   170
    echo "DONE"
2a8cd24a14ca Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1881
diff changeset
   171
    echo ""
1786
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   172
}
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   173
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   174
flake8_checks()
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   175
{
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   176
    echo "Check for problems using flake8 ..."
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   177
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   178
    which flake8 > /dev/null
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   179
    if [ $? -ne 0 ]; then
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   180
        echo "flake8 is not found"
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   181
        set_exit_error
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   182
        return
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   183
    fi
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   184
2016
2a8cd24a14ca Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1881
diff changeset
   185
    echo -n "flake8 version: "
2a8cd24a14ca Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1881
diff changeset
   186
    flake8 --version
2a8cd24a14ca Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1881
diff changeset
   187
2181
52630996e51b Add command line argument to run linter only on changed files
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2016
diff changeset
   188
    flake8 --max-line-length=300  --exclude=build --builtins="_" $py_files
1786
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   189
    if [ $? -ne 0 ]; then
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   190
        set_exit_error
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   191
    fi
2016
2a8cd24a14ca Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1881
diff changeset
   192
2a8cd24a14ca Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1881
diff changeset
   193
    echo "DONE"
2a8cd24a14ca Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1881
diff changeset
   194
    echo ""
1786
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   195
}
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   196
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   197
pylint_checks()
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   198
{
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   199
    echo "Check for problems using pylint ..."
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   200
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   201
    which pylint > /dev/null
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   202
    if [ $? -ne 0 ]; then
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   203
        echo "pylint is not found"
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   204
        set_exit_error
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   205
        return
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   206
    fi
2016
2a8cd24a14ca Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1881
diff changeset
   207
    pylint --version
1786
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   208
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   209
    export PYTHONPATH="$PWD/../CanFestival-3/objdictgen":$PYTHONPATH
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   210
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   211
    disable=
1854
cff5179cc601 fix pylint warning 'C0112(empty-docstring) Empty function docstring'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1853
diff changeset
   212
    # These warnings most likely will not be fixed
cff5179cc601 fix pylint warning 'C0112(empty-docstring) Empty function docstring'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1853
diff changeset
   213
1833
2269739dd098 fix unnecessary lambda and enable corresponding pylint check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1832
diff changeset
   214
    disable=$disable,C0103        # invalid-name
2269739dd098 fix unnecessary lambda and enable corresponding pylint check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1832
diff changeset
   215
    disable=$disable,C0326        # bad whitespace
2269739dd098 fix unnecessary lambda and enable corresponding pylint check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1832
diff changeset
   216
    disable=$disable,W0110        # (deprecated-lambda) map/filter on lambda could be replaced by comprehension
1846
14b40afccd69 remove unused variables found by pylint
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1841
diff changeset
   217
    disable=$disable,W1401        # (anomalous-backslash-in-string) Anomalous backslash in string: '\.'. String constant might be missing an r prefix.
1851
1b8b5324506c fix pylint warning '(old-style-class) Old-style class defined.'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1850
diff changeset
   218
    disable=$disable,W0613        # (unused-argument) Unused argument 'X'
1b8b5324506c fix pylint warning '(old-style-class) Old-style class defined.'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1850
diff changeset
   219
    disable=$disable,W0622        # (redefined-builtin) Redefining built-in
2182
eeca1aff0691 Fix linter errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2181
diff changeset
   220
    disable=$disable,W0621        # (redefined-outer-name) Redefining name 'Y' from outer scope (line X)
1855
f33942053466 fix pylint warning "(undefined-loop-variable) Using possibly undefined loop variable 'X'"
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1854
diff changeset
   221
    disable=$disable,W0122        # (exec-used) Use of exec
f33942053466 fix pylint warning "(undefined-loop-variable) Using possibly undefined loop variable 'X'"
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1854
diff changeset
   222
    disable=$disable,W0123        # (eval-used) Use of eval
1873
e69d7e5aff00 fix pylint warning '(no-init) Class has no __init__ method'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1872
diff changeset
   223
    disable=$disable,I0011        # (locally-disabled) Locally disabling ungrouped-imports (C0412)
1876
995df4804221 fix pylint warning '(expression-not-assigned) Expression "X" is assigned to nothing'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1875
diff changeset
   224
    disable=$disable,R0204        # (redefined-variable-type) Redefinition of current type from X to Y
1878
fb73a6b6622d fix pylint warning '(bad-continuation) Wrong hanging indentation before block'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1876
diff changeset
   225
    disable=$disable,R0201        # (no-self-use) Method could be a function
1879
4d81c3bcac82 fix pylint error '(unsubscriptable-object) Value 'X' is unsubscriptable'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1878
diff changeset
   226
    disable=$disable,W0221        # (arguments-differ) Arguments number differs from overridden 'X' method
4d81c3bcac82 fix pylint error '(unsubscriptable-object) Value 'X' is unsubscriptable'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1878
diff changeset
   227
    disable=$disable,C0201        # (consider-iterating-dictionary) Consider iterating the dictionary directly instead of calling .keys()
1854
cff5179cc601 fix pylint warning 'C0112(empty-docstring) Empty function docstring'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1853
diff changeset
   228
cff5179cc601 fix pylint warning 'C0112(empty-docstring) Empty function docstring'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1853
diff changeset
   229
    # It'd be nice to fix warnings below some day
cff5179cc601 fix pylint warning 'C0112(empty-docstring) Empty function docstring'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1853
diff changeset
   230
    disable=$disable,C0111        # missing-docstring
cff5179cc601 fix pylint warning 'C0112(empty-docstring) Empty function docstring'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1853
diff changeset
   231
    disable=$disable,W0703        # broad-except
cff5179cc601 fix pylint warning 'C0112(empty-docstring) Empty function docstring'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1853
diff changeset
   232
    disable=$disable,C0301        # Line too long
cff5179cc601 fix pylint warning 'C0112(empty-docstring) Empty function docstring'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1853
diff changeset
   233
    disable=$disable,C0302        # Too many lines in module
2182
eeca1aff0691 Fix linter errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2181
diff changeset
   234
    disable=$disable,W0511        # fixme
1868
616c3f4bcbcb fix pylint error '(no-self-argument) Method should have "self" as first argument'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1867
diff changeset
   235
    disable=$disable,R0901        # (too-many-ancestors) Too many ancestors (9/7)
616c3f4bcbcb fix pylint error '(no-self-argument) Method should have "self" as first argument'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1867
diff changeset
   236
    disable=$disable,R0902        # (too-many-instance-attributes) Too many instance attributes (10/7)
616c3f4bcbcb fix pylint error '(no-self-argument) Method should have "self" as first argument'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1867
diff changeset
   237
    disable=$disable,R0903        # (too-few-public-methods) Too few public methods (0/2)
616c3f4bcbcb fix pylint error '(no-self-argument) Method should have "self" as first argument'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1867
diff changeset
   238
    disable=$disable,R0904        # (too-many-public-methods) Too many public methods (41/20)
616c3f4bcbcb fix pylint error '(no-self-argument) Method should have "self" as first argument'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1867
diff changeset
   239
    disable=$disable,R0911        # (too-many-return-statements) Too many return statements (7/6)
616c3f4bcbcb fix pylint error '(no-self-argument) Method should have "self" as first argument'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1867
diff changeset
   240
    disable=$disable,R0912        # (too-many-branches) Too many branches (61/12)
616c3f4bcbcb fix pylint error '(no-self-argument) Method should have "self" as first argument'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1867
diff changeset
   241
    disable=$disable,R0913        # (too-many-arguments) Too many arguments (6/5)
616c3f4bcbcb fix pylint error '(no-self-argument) Method should have "self" as first argument'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1867
diff changeset
   242
    disable=$disable,R0914        # (too-many-locals) Too many local variables (18/15)
616c3f4bcbcb fix pylint error '(no-self-argument) Method should have "self" as first argument'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1867
diff changeset
   243
    disable=$disable,R0915        # (too-many-statements) Too many statements (57/50)
616c3f4bcbcb fix pylint error '(no-self-argument) Method should have "self" as first argument'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1867
diff changeset
   244
    disable=$disable,R0916        # (too-many-boolean-expressions) Too many boolean expressions in if statement (6/5)
1872
866fb3ab8778 fix pylint error "(undefined-variable) Undefined variable 'X'"
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1870
diff changeset
   245
    disable=$disable,R0101        # (too-many-nested-blocks) Too many nested blocks (7/5)
1876
995df4804221 fix pylint warning '(expression-not-assigned) Expression "X" is assigned to nothing'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1875
diff changeset
   246
    disable=$disable,R0801        # (duplicate-code) Similar lines in N files
1872
866fb3ab8778 fix pylint error "(undefined-variable) Undefined variable 'X'"
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1870
diff changeset
   247
1879
4d81c3bcac82 fix pylint error '(unsubscriptable-object) Value 'X' is unsubscriptable'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1878
diff changeset
   248
1786
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   249
    enable=
1831
56b48961cc68 fix (old-style-class) Old-style class defined error for most parts of
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1829
diff changeset
   250
    enable=$enable,E1601          # print statement used
2182
eeca1aff0691 Fix linter errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2181
diff changeset
   251
    enable=$enable,C0325          # (superfluous-parens) Unnecessary parens after keyword
eeca1aff0691 Fix linter errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2181
diff changeset
   252
    enable=$enable,W0404          # reimported module
1834
cd42b426028b fix ungrouped imports from package X
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1833
diff changeset
   253
    enable=$enable,C0411          # (wrong-import-order) standard import "import x" comes before "import y"
cd42b426028b fix ungrouped imports from package X
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1833
diff changeset
   254
    enable=$enable,W0108          # (unnecessary-lambda) Lambda may not be necessary
cd42b426028b fix ungrouped imports from package X
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1833
diff changeset
   255
    enable=$enable,C0412          # (ungrouped-imports) Imports from package X are not grouped
1835
7533061a6d82 fix more than one statement on a single line
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1834
diff changeset
   256
    enable=$enable,C0321          # (multiple-statements) More than one statement on a single line
1836
d42b6cf00fa6 fix error __init__ method from base class is not called
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1835
diff changeset
   257
    enable=$enable,W0231          # (super-init-not-called) __init__ method from base class is not called
2182
eeca1aff0691 Fix linter errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2181
diff changeset
   258
    enable=$enable,W0105          # (pointless-string-statement) String statement has no effect
1838
646245c1c0d9 fix pylint warning (bad-indentation) Bad indentation. Found X spaces, expected Y
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1837
diff changeset
   259
    enable=$enable,W0311          # (bad-indentation) Bad indentation. Found 16 spaces, expected 12
1839
a2324624e516 fix pylint warning '(unreachable) Unreachable code'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1838
diff changeset
   260
    enable=$enable,W0101          # (unreachable) Unreachable code
1840
cf5ef4c0deff fix pylint error '(function-redefined) method already defined'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1839
diff changeset
   261
    enable=$enable,E0102          # (function-redefined) method already defined
1841
9fd29e8b1393 fix pylint warning '(global-variable-not-assigned) Using global for 'X' but no assignment is done'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1840
diff changeset
   262
    enable=$enable,W0602          # (global-variable-not-assigned) Using global for 'X' but no assignment is done
1846
14b40afccd69 remove unused variables found by pylint
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1841
diff changeset
   263
    enable=$enable,W0612          # (unused-variable) Unused variable 'X'
1851
1b8b5324506c fix pylint warning '(old-style-class) Old-style class defined.'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1850
diff changeset
   264
    enable=$enable,W0611          # (unused-import) Unused import X
1b8b5324506c fix pylint warning '(old-style-class) Old-style class defined.'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1850
diff changeset
   265
    enable=$enable,C1001          # (old-style-class) Old-style class defined. Problem with PyJS
1852
70c1cc354a8f fix pylint warning '(dangerous-default-value) Dangerous default value {} as argument'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1851
diff changeset
   266
    enable=$enable,W0102          # (dangerous-default-value) Dangerous default value {} as argument
1853
47a3f39bead0 fix pylint warning "(relative-import) Relative import 'Y', should be 'X.Y'"
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1852
diff changeset
   267
    enable=$enable,W0403          # (relative-import) Relative import 'Y', should be 'X.Y'
1854
cff5179cc601 fix pylint warning 'C0112(empty-docstring) Empty function docstring'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1853
diff changeset
   268
    enable=$enable,C0112          # (empty-docstring)
1855
f33942053466 fix pylint warning "(undefined-loop-variable) Using possibly undefined loop variable 'X'"
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1854
diff changeset
   269
    enable=$enable,W0631          # (undefined-loop-variable) Using possibly undefined loop variable 'X'
1856
c2cba67145eb fix error found by pylint 'W0104(pointless-statement) Statement seems to have no effect'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1855
diff changeset
   270
    enable=$enable,W0104          # (pointless-statement) Statement seems to have no effect
1857
524ff4dbb7d9 remove old code useless code found by pylint "(unnecessary-pass) Unnecessary pass statement"
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1856
diff changeset
   271
    enable=$enable,W0107          # (unnecessary-pass) Unnecessary pass statement
1858
4c5156dee87a fix pylint warning '(import-self) Module import itself'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1857
diff changeset
   272
    enable=$enable,W0406          # (import-self) Module import itself
1859
1df77c809257 fix pylint warning '(wrong-import-position) Import "import X" should be placed at the top of the module'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1858
diff changeset
   273
    enable=$enable,C0413          # (wrong-import-position) Import "import X" should be placed at the top of the module
1860
4eeddef7f973 fix format string argument error found by pylint '(too-many-format-args) Too many arguments for format string'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1859
diff changeset
   274
    enable=$enable,E1305          # (too-many-format-args) Too many arguments for format string
1861
410a3bcbeb29 fix pylint warning '(misplaced-bare-raise) The raise statement is not inside an except clause'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1860
diff changeset
   275
    enable=$enable,E0704          # (misplaced-bare-raise) The raise statement is not inside an except clause
1862
c4ba411f8c89 fix pylint warning '(unidiomatic-typecheck) Using type() instead of isinstance() for a typecheck'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1861
diff changeset
   276
    enable=$enable,C0123          # (unidiomatic-typecheck) Using type() instead of isinstance() for a typecheck.
1865
0bd5b3099144 fix pylint warning "(no-value-for-parameter) No value for argument 'X' in function call"
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1863
diff changeset
   277
    enable=$enable,E0601          # (used-before-assignment) Using variable 'X' before assignment
0bd5b3099144 fix pylint warning "(no-value-for-parameter) No value for argument 'X' in function call"
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1863
diff changeset
   278
    enable=$enable,E1120          # (no-value-for-parameter) No value for argument 'X' in function call
1866
9d1e68d557bf fix pylint error '(bad-except-order) Bad except clauses order (X is an ancestor class of Y)'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1865
diff changeset
   279
    enable=$enable,E0701          # (bad-except-order) Bad except clauses order (X is an ancestor class of Y)
1867
418777c1fbc7 fix pylint error "(no-name-in-module) No name 'X' in module 'Y'"
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1866
diff changeset
   280
    enable=$enable,E0611          # (no-name-in-module) No name 'X' in module 'Y'
1868
616c3f4bcbcb fix pylint error '(no-self-argument) Method should have "self" as first argument'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1867
diff changeset
   281
    enable=$enable,E0213          # (no-self-argument) Method should have "self" as first argument
1869
49cdd843c006 fix pylint error '(import-error) Unable to import X'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1868
diff changeset
   282
    enable=$enable,E0401          # (import-error) Unable to import 'X'
1870
4d070115b552 fix pylint error '(too-many-function-args) Too many positional arguments for function call'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1869
diff changeset
   283
    enable=$enable,E1121          # (too-many-function-args) Too many positional arguments for function call
1872
866fb3ab8778 fix pylint error "(undefined-variable) Undefined variable 'X'"
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1870
diff changeset
   284
    enable=$enable,E0602          # (undefined-variable) Undefined variable 'X'
1873
e69d7e5aff00 fix pylint warning '(no-init) Class has no __init__ method'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1872
diff changeset
   285
    enable=$enable,W0232          # (no-init) Class has no __init__ method
1875
62aaabbf8812 fix pylint warning '(redefine-in-handler) Redefining name 'X' from outer scope (line Y) in exception handler'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1873
diff changeset
   286
    enable=$enable,W0233          # (non-parent-init-called) __init__ method from a non direct base class 'X' is called
62aaabbf8812 fix pylint warning '(redefine-in-handler) Redefining name 'X' from outer scope (line Y) in exception handler'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1873
diff changeset
   287
    enable=$enable,W0601          # (global-variable-undefined) Global variable 'X' undefined at the module level
62aaabbf8812 fix pylint warning '(redefine-in-handler) Redefining name 'X' from outer scope (line Y) in exception handler'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1873
diff changeset
   288
    enable=$enable,W0623          # (redefine-in-handler) Redefining name 'X' from outer scope (line Y) in exception handler
1878
fb73a6b6622d fix pylint warning '(bad-continuation) Wrong hanging indentation before block'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1876
diff changeset
   289
    enable=$enable,W0106          # (expression-not-assigned) Expression "X" is assigned to nothing
fb73a6b6622d fix pylint warning '(bad-continuation) Wrong hanging indentation before block'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1876
diff changeset
   290
    enable=$enable,C0330          # (bad-continuation) Wrong hanging indentation before block
1879
4d81c3bcac82 fix pylint error '(unsubscriptable-object) Value 'X' is unsubscriptable'
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1878
diff changeset
   291
    enable=$enable,E1136          # (unsubscriptable-object) Value 'X' is unsubscriptable
1881
091005ec69c4 fix pylint py3k conversion warning: "(no-absolute-import) import missing `from __future__ import absolute_import`"
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1879
diff changeset
   292
    enable=$enable,W1618          # (no-absolute-import) import missing `from __future__ import absolute_import`
1828
396da88d7b5c fix unnecessary parens after keyword
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1827
diff changeset
   293
    # enable=
1786
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   294
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   295
    options=
1827
b8b47f9b5e56 enable pylint checker
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1786
diff changeset
   296
    options="$options --rcfile=.pylint"
1786
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   297
    # options="$options --py3k"   # report errors for Python 3 porting
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   298
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   299
    if [ -n "$enable" ]; then
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   300
        options="$options --disable=all"
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   301
        options="$options --enable=$enable"
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   302
    else
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   303
        options="$options --disable=$disable"
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   304
    fi
1827
b8b47f9b5e56 enable pylint checker
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1786
diff changeset
   305
    # echo $options
b8b47f9b5e56 enable pylint checker
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1786
diff changeset
   306
2182
eeca1aff0691 Fix linter errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2181
diff changeset
   307
    echo $py_files | xargs pylint $options
2181
52630996e51b Add command line argument to run linter only on changed files
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2016
diff changeset
   308
    if [ $? -ne 0 ]; then
52630996e51b Add command line argument to run linter only on changed files
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2016
diff changeset
   309
        set_exit_error
52630996e51b Add command line argument to run linter only on changed files
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2016
diff changeset
   310
    fi
52630996e51b Add command line argument to run linter only on changed files
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2016
diff changeset
   311
52630996e51b Add command line argument to run linter only on changed files
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2016
diff changeset
   312
    echo "DONE"
52630996e51b Add command line argument to run linter only on changed files
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2016
diff changeset
   313
    echo ""
52630996e51b Add command line argument to run linter only on changed files
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2016
diff changeset
   314
}
52630996e51b Add command line argument to run linter only on changed files
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2016
diff changeset
   315
52630996e51b Add command line argument to run linter only on changed files
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2016
diff changeset
   316
52630996e51b Add command line argument to run linter only on changed files
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2016
diff changeset
   317
get_files_to_check()
52630996e51b Add command line argument to run linter only on changed files
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2016
diff changeset
   318
{
2182
eeca1aff0691 Fix linter errors
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2181
diff changeset
   319
    py_files=$(find . -name '*.py' -not -path '*/build/*')
2181
52630996e51b Add command line argument to run linter only on changed files
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2016
diff changeset
   320
    if [ "$1" = "--only-changes" ]; then
52630996e51b Add command line argument to run linter only on changed files
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2016
diff changeset
   321
        if which hg > /dev/null; then
2184
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   322
            if [ ! -z "$HG_NODE" ]; then
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   323
                hg_change="--change $HG_NODE"
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   324
                msg="for commit $HG_NODE"
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   325
            else
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   326
                hg_change=""
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   327
                msg="in local repository"
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   328
            fi
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   329
            echo "Only changes ${msg} will be checked"
2181
52630996e51b Add command line argument to run linter only on changed files
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2016
diff changeset
   330
            echo ""
2184
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   331
            py_files=$(hg status -m -a -n -I '**.py' $hg_change)
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   332
            if [ $? -ne 0 ]; then
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   333
                exit 1;
2183
63591802d3e2 check_source.sh: handle case if there are no files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2182
diff changeset
   334
            fi
63591802d3e2 check_source.sh: handle case if there are no files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2182
diff changeset
   335
       fi
2181
52630996e51b Add command line argument to run linter only on changed files
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2016
diff changeset
   336
    fi
2184
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   337
    if [ "$1" = "--files-to-check" ]; then
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   338
        list="$2"
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   339
        if [ -z "$list" ]; then
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   340
            echo "--files-to-check requires filename as argument"
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   341
            print_help
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   342
        fi
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   343
        if [ -e "$list" ]; then
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   344
            py_files=$(cat $2 | grep '\.py$')
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   345
        fi
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   346
    fi
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   347
    if [ -z "$py_files" ]; then
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   348
        echo "No files to check"
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   349
        exit 0;
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   350
    fi
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   351
}
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   352
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   353
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   354
print_help()
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   355
{
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   356
    echo "Usage: check_source.sh [--only-changes | --files-to-check <filename> ]"
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   357
    echo ""
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   358
    echo "By default without arguments script checks all python source files"
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   359
    echo ""
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   360
    echo "--only-changes"
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   361
    echo "                only files with local changes are checked. "
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   362
    echo "                If script is called from mercurial pretxncommit hook,"
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   363
    echo "                then only commited files are checked"
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   364
    echo ""
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   365
    echo "--files-to-check <file.lst>"
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   366
    echo "                script read list of files to check from file.lst"
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   367
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   368
    exit 1
1786
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   369
}
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   370
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   371
main()
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   372
{
2184
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   373
    get_files_to_check $@
1786
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   374
    compile_checks
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   375
    pep8_checks_default
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   376
    # pep8_checks_selected
2184
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   377
1786
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   378
    # flake8_checks
1827
b8b47f9b5e56 enable pylint checker
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 1786
diff changeset
   379
    pylint_checks
1786
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   380
    exit $exit_code
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   381
}
b6d47158d68a add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents:
diff changeset
   382
2184
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   383
[ "$1" = "--help" -o "$1" = "-h" ] && print_help
bbd2364fbf71 Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com>
parents: 2183
diff changeset
   384
main $@