Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 0c7842107eec69a1824d0c4720d71126 > files > 122

pychecker-0.8.18-2mdv2010.0.noarch.rpm

Goals for next minor release:
-----------------------------
* Add warning for duplicated elif conditions
* Check for "if s.find(str):" s/b "if s.find(str) >= 0:" where s is a string
* Add warning for: x % x is always 0
* Add warning when using listcomp variable (x) outside of [... for x in ...]
* Add warning for import overriding builtin (from os import *)
* Add warning if defining a module name that's also in the stdlib
* Add decorator so you can do:

   @pychecker(maxlocals=42)
   def myfunc():

* Support function attributes in addition to __pychecker__
* Add warning when iterating over a dict (keys, values, items) and mutating it
* Add warning for __special_ or __special or _special__ etc.
* Add warning about redefining a function/method with different signatures
* Add warning when base class has similar name and same signature:

  class Base:
    def foobar():
  class Sub(Base):
    def foobaz(): # damn, I wanted to override foobar

* If unknown name, suggest similar names

* Check for return from finally (disables exception, default off?)
* Add another boolean warning for:    if bool(xxx):
* Need way to configure broken (and non-broken) versions of evil C extensions
* Add estimated difficulty to research/fix error
* Shouldn't warn about using return value for generators
* Suppress argument (self) name warnings if func has no impl?
* Add warning for a variable that is constant 
    ie, initialized and used, but never changed

* Add warning for catching AttributeError when there is no attr access
	ZeroDivisionError w/no division?
	KeyError UnboundLocalError IndexError IndentationError ImportError
* Add warning for a import b & b import a (import loops)
* Check that classes with __slots__ don't get/set any other attributes
* Expectations of __methods__, constness (don't modify in __nonzero__)
* Add warning if dict has duplicate keys when creating from literals
* __new__ should use cls, not self???

* If arg has default value of None, check that arg is assigned some value

* check if returning self from __str__()
* check for str1 in str2 == otherValue
* Fix dependancy problem w/checkReturnValues & checkImplicitReturns
* check for use of self.attr before setting self.attr in __init__ method
* Handle sys.exit() as non-returnable condition
* Warn about non-escaping backslashes???
* vars() should use locals, like locals(), hmmm, it should already ...

Goals for next major release (0.9):
-----------------------------------
* Improve handling when importing packages (ie, don't import modules)
  - Make a base class to handle stack operations
  - Override base class with classes to handle module scope, functions, etc.
  - Process module and create Module/Class/Function objects w/o dir(), etc.
  - Finish tests: 44
* Add a config option to ignore certain cantankerous modules

* Add warning for global statement inside a conditional
* Fix spurious warnings for unreachable code checks
* Fix most of the FIXMEs
* Add check for import module (from within package p-should be import p.module)
  - don't use relative imports, should always use absolute paths

Longer Term goals:
------------------
* Add check for magic #s/consts
	(need dict of consts, count, max count, consts to ignore)
* Add check for unsupported operand type(s) for * + / etc
* Store types of globals, class attributes, function & method return values
* Output stats about pychecker's job, good, bad, otherwise...
	annotate code for problem areas, well checked areas, etc.
* Add original line warnings for those that refer to another place
	(e.g., overridden method doesn't match signature)
* Add capability to check features from a specified version of python
	which is different from runtime interpreter
* Security checks for known issues.  Adrian Likins @redhat recommends 
  looking at http://www.securesw.com/rats/
* Make check for 'self' a list instead of a string
* Check function return values - partially complete
* Add check that private functions are used in module/class
* Add check for using object members outside of class
* Add portability checks for win32/unix
* Add check for except: pass
* Spell check doc strings

# need to read source code for these:
* Add warning for unnecessary global stmts
* Add check for implicit string concatentation
* Add check for creating tuple when don't want a tuple, like: 1,
            or not creating tuple when want one, like: (1)
* Warn when using () with statements (assert, print, del, if, while)
* Add check for <>, should use !=
* Find lines that end w/semi-colons (;)
* inconsistent camel-case