./devel/py-pylint, Python source code analyzer

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.9.2, Package name: py27-pylint-1.9.2, Maintainer: pkgsrc-users

Pylint is a Python source code analyzer which looks for programming
errors, helps enforcing a coding standard and sniffs for some code
smells (as defined in Martin Fowler's Refactoring book).
Pylint can be seen as another PyChecker since nearly all tests you
can do with PyChecker can also be done with Pylint. However, Pylint
offers some more features, like checking length of lines of code,
checking if variable names are well-formed according to your coding
standard, or checking if declared interfaces are truly implemented,
and much more. . Additionally, it is possible to write plugins to
add your own checks.


Required to run:
[devel/py-setuptools] [lang/python27] [lang/py-six] [devel/py-astroid] [devel/py-mccabe] [devel/py-singledispatch] [devel/py-configparser] [devel/py-isort] [devel/py-backports.functools_lru_cache]

Required to build:
[pkgtools/cwrappers] [devel/py-test-runner]

Master sites:

SHA1: 6ac673ad4d57c19decf8a58721571f98a340b188
RMD160: 9b682e1380ad5eea89fa6ffbc3fc61548ac52f20
Filesize: 504.755 KB

Version history: (Expand)


CVS history: (Expand)


   2018-06-07 08:44:02 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-pylint: updated to 1.9.2

Pylint 1.9.2:
* Fix `KeyError` raised when using docparams and NotImplementedError is documented.

* Don't include excepthandlers that don't have a name when looking for \ 
exception-escape

* Rewrite the comprehension-escape and exception-escape to work only on the \ 
corresponding nodes

These two checks were implemented in terms of visit_namne, that is, for every \ 
name in the tree,
we looked to see if that name leaked. This was resulting in a couple of false \ 
positives
and also in a performance issue, since we were calling nodes_of_class() and \ 
scope() for each
name node. Instead, this approach uses the visit methods for exception and \ 
comprehension nodes
and looks to see from there if the current scope uses leaked names.
This is not the ideal situation as well, ideal would be to have access to the \ 
definition
frame of each name, but that requires some extra engineering effort in astroid \ 
to get it right.

* builtins is allowed to redefine builtins.
   2018-05-17 12:35:32 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-pylint: updated to 1.9.1

Pylint 1.9.1:
* Fixed old-raise-syntax always erroring in Python 3.
   2018-05-16 08:59:22 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-pylint: updated to 1.9.0

1.9.0:
* Added two new Python 3 porting checks, exception-escape and comprehension-escape
* Added a new deprecated-sys-function, emitted when accessing removed sys members.
* Added xreadlines-attribute, emitted when the xreadlines() attribute is accessed.
* The Python 3 porting mode can now run with Python 3 as well.
* docparams extension allows abstract methods to document what overriding
  implementations should return, and to raise NotImplementedError without
  documenting it.
* Special methods do not count towards too-few-methods,
  and are considered part of the public API.
* Enum classes do not trigger too-few-methods
* undefined-loop-variable takes in consideration non-empty iterred objects \ 
before emitting
* Add support for nupmydoc optional return value names.
* singleton-comparison accounts for negative checks
* Add a check consider-using-in for comparisons of a variable against
  multiple values with "==" and "or"s instead of checking if \ 
the variable
  is contained "in" a tuple of those values.
* defaultdict and subclasses of dict are now handled for dict-iter-* checks
* Added a new Python 2/3 check for accessing operator.div, which is removed in \ 
Python 3
* Added a new Python 2/3 check for accessing removed urllib functions
* logging-format-interpolation also emits when f-strings are used instead of % \ 
syntax.
* Don't trigger misplaced-bare-raise when the raise is in a finally clause
* Add a new check, possibly-unused-variable.
* no-else-return accounts for multiple cases
* Added two new checks, invalid-envvar-value and invalid-envvar-default.
* Add a check consider-using-join for concatenation of strings using \ 
str.join(sequence)
* Add a check consider-swap-variables for swapping variables with tuple unpacking
* Add new checker try-except-raise that warns the user if an except handler block
  has a raise statement as its first operator. The warning is shown when there is
  a bare raise statement, effectively re-raising the exception that was caught or the
  type of the exception being raised is the same as the one being handled.
* Don't crash on invalid strings when checking for logging-format-interpolation
* Exempt __doc__ from triggering a redefined-builtin
  __doc__ can be used to specify a docstring for a module without
  passing it as a first-statement string.
* Fix false positive bad-whitespace from function arguments with default
  values and annotations
* Fix stop-iteration-return false positive when next builtin has a
  default value in a generator
* Fix emission of false positive no-member message for class with  \ 
"private" attributes whose name is mangled.
* Fixed a crash which occurred when Uninferable wasn't properly handled in \ 
stop-iteration-return
* Use the proper node to get the name for redefined functions
* Don't crash when encountering bare raises while checking inconsistent returns
* Fix a false positive inconsistent-return-statements message when if statement \ 
is inside try/except.
* Fix a false positive inconsistent-return-statements message when while loop \ 
are used.
* Correct column number for whitespace conventions.
* Fix unused-argument false positives with overshadowed variable in
  dictionary comprehension.
* Fix false positive inconsistent-return-statements message when never
  returning functions are used (i.e sys.exit for example).
* Fix error when checking if function is exception, as in bad-exception-context.
* Fix false positive inconsistent-return-statements message when a
  function is defined under an if statement.
* New useless-return message when function or method ends with a \ 
"return" or
  "return None" statement and this is the only return statement in the \ 
body.
* Fix false positive inconsistent-return-statements message by
  avoiding useless exception inference if the exception is not handled.
* Fix bad thread instantiation check when target function is provided in args.
* Fixed false positive when a numpy Attributes section follows a Parameters
  section
* Fix incorrect file path when file absolute path contains multiple \ 
path_strip_prefix strings.
* Fix false positive undefined-variable for lambda argument in
    class definitions
* Add of a new checker that warns the user if some messages are enabled or disabled
  by id instead of symbol.
* Suppress false-positive not-callable messages from certain
  staticmethod descriptors
* Fix indentation handling with tabs
* Fix false-positive bad-continuation error
* Updated the default report format to include paths that can be clicked on in \ 
some terminals (e.g. iTerm).
   2018-04-06 14:13:15 by Adam Ciarcinski | Files touched by this commit (1)
Log message:
py-pylint: require newer py-astroid
   2018-04-06 10:35:07 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-pylint: updated to 1.8.4

pylint-1.8.4:
Fix lint errors
   2018-03-17 07:57:25 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-pylint: updated to 1.8.3

Pylint 1.8.3:
* Fix false positive inconsistent-return-statements message when a
  function is defined under an if statement.
* Exempt __doc__ from triggering a redefined-builtin
  __doc__ can be used to specify a docstring for a module without
  passing it as a first-statement string.
* Don't crash on invalid strings when checking for logging-format-interpolation
* Fix false positive inconsistent-return-statements message by
  avoiding useless exception inference if the exception is not handled.
* Fix false positive undefined-variable for lambda argument in
  class definitions
* Fix false-positive undefined-variable for generated
  comprehension variables in function default arguments
   2018-01-24 09:37:46 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-pylint: updated to 1.8.2

What's New in Pylint 1.8.2?
* Fixed a crash which occurred when Uninferable wasn't properly handled in \ 
stop-iteration-return
* Use the proper node to get the name for redefined functions
* Don't crash when encountering bare raises while checking inconsistent returns
* Fix a false positive inconsistent-return-statements message when if
  statement is inside try/except.
* Fix a false positive inconsistent-return-statements message when
  while loop are used.
* Fix unused-argument false positives with overshadowed variable in
  dictionary comprehension.
* Fix false positive inconsistent-return-statements message when never
  returning functions are used (i.e sys.exit for example).
* Fix error when checking if function is exception, as in bad-exception-context.
   2017-12-17 17:32:57 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-pylint: updated to 1.8.1

What's New in Pylint 1.8.1
* Wrong version number in __pkginfo__.

What's New in Pylint 1.8
* Respect disable=... in config file when running with --py3k.
* New warning shallow-copy-environ added
  Shallow copy of os.environ doesn't work as people may expect. os.environ
  is not a dict object but rather a proxy object, so any changes made
  on copy may have unexpected effects on os.environ
  Instead of copy.copy(os.environ) method os.environ.copy() should be
  used.
* Do not display no-absolute-import warning multiple times per file.
* trailing-comma-tuple refactor check now extends to assignment with
   more than one element (such as lists)
* Fixing u'' string in superfluous-parens message
* abstract-class-instantiated is now emitted for all inference paths.
* Add set of predefined naming style to ease configuration of checking
  naming conventions.
* Added a new check, keyword-arg-before-vararg
  This is emitted for function definitions
  in which keyword arguments are placed before variable
  positional arguments (*args).
  This may lead to args list getting modified if keyword argument's value
  is not provided in the function call assuming it will take default value
  provided in the definition.
* The invalid-name check contains the name of the template that caused the failure
* Using the -j flag won't start more child linters than needed.
* Fix a false positive with bad-python3-import on relative imports
* Added a new Python 3 check, non-ascii-bytes-literals
* Added a couple of new Python 3 checks for accessing dict methods in \ 
non-iterable context
* Protocol checks (not-a-mapping, not-an-iterable and co.) aren't emitted on \ 
classes with dynamic getattr
* Added a new warning, 'bad-thread-instantiation'
  This message is emitted when the threading.Thread class does not
  receive the target argument, but receives just one argument, which
  is by default the group parameter.
* In non-quiet mode, absolute path of used config file is logged to
  standard error.
* Raise meaningful exception for invalid reporter class being selected
  When unknown reporter class will be selected as Pylint reporter,
  meaningful error message would be raised instead of bare ImportError
  or AttribueError related to module or reporter class being not found.
* Added a new Python 3 check for accessing removed functions from itertools
  like izip or ifilterfalse
* Added a new Python 3 check for accessing removed fields from the types
  module like UnicodeType or XRangeType
* Added a new Python 3 check for declaring a method next that would have
  been treated as an iterator in Python 2 but a normal function in Python 3.
* Added a new key-value pair in json output. The key is message-id
  and the value is the message id.
* Added a new Python 3.0 check for raising a StopIteration inside a generator.
  The check about raising a StopIteration inside a generator is also valid if \ 
the exception
  raised inherit from StopIteration.
* Added a new warning, raising-format-tuple, to detect multi-argument
  exception construction instead of message string formatting.
* Added a new check for method of logging module that concatenate string via + \ 
operator
* Added parameter for limiting number of suggestions in spellchecking checkers
* Fix a corner-case in consider-using-ternary checker.
  When object A used in  X and A or B was falsy in boolean context,
  Pylint incorrectly emitted non-equivalent ternary-based suggestion.
  After a change message is correctly not emitted for this case.
* Added suggestion-mode configuration flag. When flag is enabled, informational
  message is emitted instead of cryptic error message for attributes accessed on
  c-extensions.
* Fix a false positive useless-super-delegation message when
  parameters default values are different from those used in the base class.
* Disabling 'wrong-import-order', 'wrong-import-position', or
  'ungrouped-imports' for a single line now prevents that line from
  triggering violations on subsequent lines.
* Added a new Python check for inconsistent return statements inside method or \ 
function.
* Fix superfluous-parens false positive related to handling logical statements
  involving in operator.
* function-redefined message is no longer emitted for functions and
  methods which names matches dummy variable name regular expression.
* Fix missing-param-doc and missing-type-doc false positives when
  mixing Args and Keyword Args in Google docstring.
* Fix missing-docstring false negatives when modules, classes, or methods
 consist of compound statements that exceed the docstring-min-length
* Fix useless-else-on-loop false positives when break statements are
  deeply nested inside loop.
* Fix no wrong-import-order message emitted on ordering of first and third party
  libraries. With this fix, pylint distinguishes third and first party
  modules when checking import order.
* Fix pylint disable=fixme directives ignored for comments following the
  last statement in a file.
* Fix line-too-long message deactivated by wrong disable directive.
  The directive disable=fixme doesn't deactivate anymore the emission
  of line-too-long message for long commented lines.
* If the rcfile specified on the command line doesn't exist, then an
  IOError exception is raised.