diff options
Diffstat (limited to 'python/pychecker')
-rw-r--r-- | python/pychecker/README | 25 | ||||
-rw-r--r-- | python/pychecker/pychecker.SlackBuild | 76 | ||||
-rw-r--r-- | python/pychecker/pychecker.info | 10 | ||||
-rw-r--r-- | python/pychecker/slack-desc | 19 |
4 files changed, 130 insertions, 0 deletions
diff --git a/python/pychecker/README b/python/pychecker/README new file mode 100644 index 0000000000000..9fb5dcec9e2ac --- /dev/null +++ b/python/pychecker/README @@ -0,0 +1,25 @@ +PyChecker is a tool for finding bugs in python source code. It finds problems +that are typically caught by a compiler for less dynamic languages, like C and +C++. It is similar to lint. Because of the dynamic nature of python, some +warnings may be incorrect; however, spurious warnings should be fairly +infrequent. + +PyChecker works in a combination of ways. First, it imports each module. If +there is an import error, the module cannot be processed. The import provides +some basic information about the module. The code for each function, class, +and method is checked for possible problems. + +Types of problems that can be found include: +* No global found (e.g., using a module without importing it) +* Passing the wrong number of parameters to functions/methods/constructors +* Passing the wrong number of parameters to builtin functions & methods +* Using format strings that don't match arguments +* Using class methods and attributes that don't exist +* Changing signature when overriding a method +* Redefining a function/class/method in the same scope +* Using a variable before setting it +* self is not the first parameter defined for a method +* Unused globals and locals (module or variable) +* Unused function/method arguments (can ignore self) +* No doc strings in modules, classes, functions, and methods + diff --git a/python/pychecker/pychecker.SlackBuild b/python/pychecker/pychecker.SlackBuild new file mode 100644 index 0000000000000..b86455578647d --- /dev/null +++ b/python/pychecker/pychecker.SlackBuild @@ -0,0 +1,76 @@ +#!/bin/sh + +# Slackware build script for pychecker + +# Copyright 2010-2011 LukenShiro, Italy +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PRGNAM=pychecker +VERSION=${VERSION:-0.8.19} +BUILD=${BUILD:-2} +TAG=${TAG:-_SBo} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +DOCFILES="ChangeLog COPYRIGHT MAINTAINERS NEWS README VERSION \ +KNOWN_BUGS pycheckrc TODO" + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar -xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +# setup.py modifications to avoid docfiles' installation in pythondir +sed -i "s|'data_files'|#'data_files'|g" setup.py + +python setup.py build +python setup.py install --prefix=/usr/ --root=$PKG + +# Copy documentation files +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a $DOCFILES $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/python/pychecker/pychecker.info b/python/pychecker/pychecker.info new file mode 100644 index 0000000000000..81b90eee62e71 --- /dev/null +++ b/python/pychecker/pychecker.info @@ -0,0 +1,10 @@ +PRGNAM="pychecker" +VERSION="0.8.19" +HOMEPAGE="http://pychecker.sourceforge.net" +DOWNLOAD="http://downloads.sourceforge.net/project/pychecker/pychecker/0.8.19/pychecker-0.8.19.tar.gz" +MD5SUM="c37182863dfb09209d6ba4f38fce9d2b" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="LukenShiro" +EMAIL="lukenshiro@ngi.it" diff --git a/python/pychecker/slack-desc b/python/pychecker/slack-desc new file mode 100644 index 0000000000000..a270052d4dd59 --- /dev/null +++ b/python/pychecker/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +pychecker: pychecker (Python source code checking tool) +pychecker: +pychecker: PyChecker is a static analysis tool for finding bugs in Python source +pychecker: code. It finds problems that are typically caught by a compiler for +pychecker: less dynamic languages, like C and C++. It is similar to lint. +pychecker: +pychecker: +pychecker: +pychecker: +pychecker: Homepage: http://pychecker.sourceforge.net +pychecker: |