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

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


Branch: CURRENT, Version: 2.3.1, Package name: py37-pylint-2.3.1, 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] [devel/py-astroid] [devel/py-mccabe] [devel/py-isort] [lang/python37]

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

Master sites:

SHA1: 9851421d4e4cb050db5b8314c06082ae95d9b7f2
RMD160: 917358dcdd31e8147c6ee4680ed46385767b11a2
Filesize: 564.226 KB

Version history: (Expand)


CVS history: (Expand)


   2019-03-02 15:12:28 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-pylint: updated to 2.3.1

What's New in Pylint 2.3.1?
* Properly pass quote=False to html.escape in the JSON reporter
   2019-02-28 10:20:07 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-pylint: updated to 2.3.0

What's New in Pylint 2.3.0?
* Protect against NonDeducibleTypeHierarchy when calling semi-private is_subtype
  astroid.helpers.is_subtype raises NonDeducibleTypeHierarchy when it cannot infer
  the base classes of the given types, but that makes sense in its context given that
  the method is mostly used to inform the inference process about the hierarchy \ 
of classes.
  Doesn't make that much sense for pylint itself, which is why we're handling the
  exception here, rather than in astroid
* Added a new command line option list-groups for listing all the check groups \ 
pylint knows about.
* Allow BaseException for emitting broad-except, just like Exception.
* Fixed a crash that occurred for bad-str-strip-call when strip() received None
* Don't emit *-not-iterating checks for builtins consumed by itertools
* Fix a crash caused by iterating over Uninferable in a string formatting check.
* Fixed false positives for no-self-argument and unsubscriptable-object when \ 
using __class_getitem__ (new in Python 3.7)
* Support Ellipsis as a synonym for pass statements.
* fixme gets triggered only on comments.
* Fixed a false positive for unused-variable and nonlocal assignments
* Added load_configuration() hook for plugins
  New optional hook for plugins is added: load_configuration().
  This hook is executed after configuration is loaded to prevent
  overwriting plugin specific configuration via user-based
  configuration.
* Fix missing-raises-doc false positive (W9006)
* Exempt starred unpacking from *-not-iterating Python 3 checks
* Make compare-to-zero less zealous by checking against equality and identity
* Add no-else-raise warning (R1720)
* Exempt yield from from *-not-iterating Python 3 checks.
* Fix incorrect generation of no-else-return warnings (R1705)
  Fixed issue where if statements with nested if statements
  were incorrectly being flagged as no-else-return in some cases and
  not being flagged as no-else-return in other cases.  Added tests
  for verification and updated pylint source files to eliminate newly
  exposed warnings.
* Fix false positive with not-async-context-manager caused by not understanding \ 
contextlib.asynccontextmanager
* Refactor bad-reversed-sequence to account for more objects that can define \ 
__reversed__
  One such object would be an enum class, for which __reversed__ yields each \ 
individual enum.
  As such, the check for bad-reversed-sequence needs to not differentiate \ 
between classes
  and instances when it comes for checking of __reversed__ presence.
* Added wrong-exception-operation
  Used when an operation is done against an exception, but the operation
  is not valid for the exception in question. Usually emitted when having
  binary operations between exceptions in except handlers.
* no-member is emitted for enums when they lack a member
  Previously we weren't doing this because we detected a
  __getattr__ implementation on the Enum class
  (and this check is skipped for classes with __getattr__),
  but that is fine for Enums, given that they are inferred in a customised
  way in astroid.
* Generalize chained-comparison
  Previous version incorrectly detects a < b < c and b < d and fails to
  detect a < b < c and c < d.
* Avoid popping __main__ when using multiple jobs
* Add a new option 'check-str-concat-over-line-jumps' to check \ 
'implicit-str-concat-in-sequence'
* Fixes for the new style logging format linter.
  The number of arguments was not handled properly, leading to an always
  successful check.
* Fix false positive not-callable for uninferable properties.
* Fix false positive useless-else-on-loop if the break is deep in the else
  of an inner loop.
   2018-11-28 15:37:03 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-pylint: updated to 2.2.2

What's New in Pylint 2.2.2?

* Change the logging-format-style to use name identifier instead of their
  corresponding Python identifiers

  This is to prevent users having to think about escaping the default value for
  logging-format-style in the generated config file. Also our config parsing
  utilities don't quite support escaped values when it comes to choices detection,
  so this would have needed various hacks around that.
   2018-11-27 17:16:55 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-pylint: updated to 2.2.1

2.2.1:
Unknown changes
   2018-11-26 10:09:34 by Adam Ciarcinski | Files touched by this commit (4) | Package updated
Log message:
py-pylint: updated to 2.2.0

What's New in Pylint 2.2?

* Consider range() objects for undefined-loop-variable leaking from iteration.
* deprecated-method can use the attribute name for identifying a deprecated method
  Previously we were using the fully qualified name, which we still do, but the fully
  qualified name for some unittest deprecated aliases leads to a generic
  deprecation function. Instead on relying on that, we now also rely on the attribute
  name, which should solve some false positives.
* Fix compatibility with changes to stdlib tokenizer.
* pylint is less eager to consume the whole line for pragmas
* Obtain the correct number of CPUs for virtualized or containerized environments.
* Change unbalanced-tuple-unpacking back to a warning.
  It used to be a warning until a couple of years ago, after it was promoted to
  an error. But the check might be suggesting the wrong thing in some cases,
  for instance when checking against sys.argv which cannot be known at static
  analysis time. Given it might rely on potential unknown data, it's best to
  have it as a warning.
* Remove enumerate usage suggestion when defining __iter__ (C0200)
* Emit too-many-starred-assignment only when the number of Starred nodes is per \ 
assignment elements
* try-except-raise checker now handles multilevel inheritance hirerachy for \ 
exceptions correctly.
* Add a new check, simplifiable-if-expression for expressions like True if cond \ 
else False.
* too-few-public-methods is not reported for typing.NamedTuple
* too-few-public-methods is not reported for dataclasses created with options.
* Remove wrong modules from 'bad-python3-import'.
* The json reporter prints an empty list when no messages are emitted
* Add a new check, duplicate-string-formatting-argument
  This new check is emitted whenever a duplicate string formatting argument
  is found.
* assignment-from-no-return is not emitted for coroutines.
* Report format string type mismatches.
* consider-using-ternary and simplified-boolean-expression no longer emit for \ 
sequence based checks
* Handle AstroidSyntaxError when trying to import a module.
* Allow __module__ to be redefined at a class level.
* pylint used to emit a unused-variable error if unused import was found in the \ 
function. Now instead of
  unused-variable, unused-import is emitted.
* Handle asyncio.coroutine when looking for not-an-iterable check.
* The locally-enabled check is gone.
* Infer decorated methods when looking for method-hidden
* Pick the latest value from the inferred values when looking for \ 
raising-non-exception
* Extend the TYPE_CHECKING guard to TYPE_CHECKING name as well, not just the \ 
attribute
* Ignore import x.y.z as z cases for checker useless-import-alias.
* Fix false positive undefined-variable and used-before-assignment with nonlocal \ 
keyword usage.
* Stop protected-access exception for missing class attributes
* Don't emit assignment-from-no-return for decorated function nodes
* unnecessary-pass is now also emitted when a function or class contains only \ 
docstring and pass statement.
   In Python, stubbed functions often have a body that contains just a single \ 
pass statement,
   indicating that the function doesn't do anything. However, a stubbed function \ 
can also have just a
   docstring, and function with a docstring and no body also does nothing.
* duplicate-argument-name is emitted for more than one duplicate argument per \ 
function
* Allow double indentation levels for more distinguishable indentations
* Consider tuples in exception handler for try-except-raise.
* Fix astroid.ClassDef check in checkers.utils.is_subclass_of
* Fix wildcard imports being ignored by the import checker
* Fix external/internal distinction being broken in the import graph
* Fix wildcard import check not skipping __init__.py
* Fix --ignore-imports to understand multi-line imports
* Add a new check 'implicit-str-concat-in-sequence' to spot string concatenation \ 
inside lists, sets & tuples.
* literal-comparison is now emitted for 0 and 1 literals.
   2018-08-06 21:58:41 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-pylint: updated to 2.1.1

What's New in Pylint 2.1.1?
* fix pylint crash due to misplaced-format-function not correctly handling class \ 
attribute.
   2018-08-02 17:19:23 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-pylint: updated to 2.1.0

What's New in Pylint 2.1?

   * trailing-comma-tuple gets emitted for yield statements as well.

   * Get only the arguments of the scope function for redefined-argument-from-local

   * Add a check misplaced-format-function which is emitted if format function \ 
is used on
     non str object.

   * chain.from_iterable no longer emits dict-{}-not-iterating when dealing with \ 
dict values and keys

   * Demote the try-except-raise message from an error to a warning (E0705 -> \ 
W0706)

   * Correctly handle the new name of the Python implementation of the abc module.

    * Modules with __getattr__ are exempted by default from no-member

      There's no easy way to figure out if a module has a particular member when
      the said module uses __getattr__, which is a new addition to Python 3.7.
      Instead we assume the safe thing to do, in the same way we do for classes,
      and skip those modules from checking.

    * Fix a false positive invalid name message when method or attribute name is \ 
longer then 30 characters.

    * Include the type of the next branch in no-else-return

    * Fix inconsistent behaviour for bad-continuation on first line of file

     * Fix not being able to disable certain messages on the last line through
       the global disable option

    * Don't emit useless-return when we have a single statement that is the \ 
return itself

      We still want to be explicit when a function is supposed to return
      an optional value; even though pass could still work, it's not explicit
      enough and the function might look like it's missing an implementation.

   * Fix false-positive undefined-variable for self referential class name in lamdbas

    * Don't crash when pylint is unable to infer the value of an argument to next()

    * Don't emit not-an-iterable when dealing with async iterators.

      But do emit it when using the usual iteration protocol against
      async iterators.

   * Can specify a default docstring type for when the check cannot guess the type
   2018-07-24 08:15:31 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-pylint: updated to 2.0.1

2.0.1:
Don't crash when pylint is unable to infer the value of an argument to next()