#
# spec file for package python-pylint
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%define modname pylint
Name:           python-%{modname}
Version:        1.6.4
Release:        1.1
Summary:        Syntax and style checker for Python code
License:        GPL-2.0+
Group:          Development/Languages/Python
Url:            http://www.logilab.org/projects/pylint/
Source:         https://pypi.python.org/packages/source/p/pylint/pylint-%{version}.tar.gz
BuildRequires:  python-astroid >= 1.4.5
BuildRequires:  python-devel
BuildRequires:  python-six
BuildRequires:  python-isort >= 4.2.5
BuildRequires:  python-mccabe
Requires:       python-astroid >= 1.4.5
Provides:       pylint = %{version}
Obsoletes:      pylint < %{version}
Requires(post): update-alternatives
Requires(postun): update-alternatives
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} <= 1110
%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%else
BuildArch:      noarch
%endif

%description
Pylint analyzes Python source code looking for bugs and signs of poor
quality.

Pylint is a python tool that checks if a module satisfies a coding
standard. Pylint can be seen as another PyChecker since nearly all
tests you can do with PyChecker can also be done with Pylint. But
Pylint offers some more features, like checking line-code's length,
checking if variable names are well-formed according to your coding
standard, or checking if declared interfaces are truly implemented, and
much more (see the complete check list).

The big advantage with Pylint is that it is highly configurable,
customizable, and you can easily write a small plugin to add a personal
feature.

%prep
%setup -q -n %{modname}-%{version}

%build
python setup.py build

%install
#export PYTHONOPTIMIZE=1 #--optimize=1
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
# fix non-executable rpmlint warning
chmod +x %{buildroot}%{python_sitelib}/%{modname}/epylint.py
# update-alternatives
mv %{buildroot}%{_bindir}/pylint %{buildroot}%{_bindir}/pylint-%{py_ver}
mv %{buildroot}%{_bindir}/epylint %{buildroot}%{_bindir}/epylint-%{py_ver}
mv %{buildroot}%{_bindir}/pylint-gui %{buildroot}%{_bindir}/pylint-gui-%{py_ver}
mv %{buildroot}%{_bindir}/pyreverse %{buildroot}%{_bindir}/pyreverse-%{py_ver}
mv %{buildroot}%{_bindir}/symilar %{buildroot}%{_bindir}/symilar-%{py_ver}
pushd %{buildroot}%{_bindir}
ln -s pylint-%{py_ver} pylint
ln -s epylint-%{py_ver} epylint
ln -s pylint-gui-%{py_ver} pylint-gui
ln -s pyreverse-%{py_ver} pyreverse
ln -s symilar-%{py_ver} symilar
popd

%pre
# Since /usr/bin/pylint, etc. became ghosted to be used with update-alternatives, we have to get rid
# of the old binary resulting from the non-update-alternativies-ified package:
[[ ! -L %{_bindir}/pylint ]] && rm -f %{_bindir}/pylint
[[ ! -L %{_bindir}/epylint ]] && rm -f %{_bindir}/epylint
[[ ! -L %{_bindir}/pylint-gui ]] && rm -f %{_bindir}/pylint-gui
[[ ! -L %{_bindir}/pyreverse ]] && rm -f %{_bindir}/pyreverse
[[ ! -L %{_bindir}/symilar ]] && rm -f %{_bindir}/symilar
exit 0

%post
update-alternatives \
   --install %{_bindir}/pylint pylint %{_bindir}/pylint-%{py_ver} 30 \
   --slave %{_bindir}/epylint epylint %{_bindir}/epylint-%{py_ver} \
   --slave %{_bindir}/pylint-gui pylint-gui %{_bindir}/pylint-gui-%{py_ver} \
   --slave %{_bindir}/pyreverse pyreverse %{_bindir}/pyreverse-%{py_ver} \
   --slave %{_bindir}/symilar symilar %{_bindir}/symilar-%{py_ver}

%preun
if [ $1 -eq 0 ] ; then
    update-alternatives --remove pylint %{_bindir}/pylint-%{py_ver}
fi

%files
%defattr(-,root,root)
%doc ChangeLog COPYING README.rst examples/
%{_bindir}/pylint-%{py_ver}
%{_bindir}/epylint-%{py_ver}
%{_bindir}/pylint-gui-%{py_ver}
%{_bindir}/pyreverse-%{py_ver}
%{_bindir}/symilar-%{py_ver}
%{_bindir}/pylint
%{_bindir}/epylint
%{_bindir}/pylint-gui
%{_bindir}/pyreverse
%{_bindir}/symilar
%{python_sitelib}/%{modname}/
%{python_sitelib}/%{modname}-%{version}-py%{py_ver}.egg-info

%changelog
* Wed Sep  2 2015 mcihar@suse.cz
- Update to 1.4.4:
  * Avoid breaking pylint when using logilab.common >= 1.0.
* Mon Mar 16 2015 mcihar@suse.cz
- Update to 1.4.3:
  * Remove three warnings: star-args, abstract-class-little-used,
    abstract-class-not-used. These warnings don't add any real value
    and they don't imply errors or problems in the code.
  * Added a new option for controlling the peephole optimizer in astroid.
    The option ``--optimize-ast`` will control the peephole optimizer,
    which is used to optimize a couple of AST subtrees. The current problem
    solved by the peephole optimizer is when multiple joined strings,
    with the addition operator, are encountered. If the numbers of such
    strings is high enough, Pylint will then fail with a maximum recursion
    depth exceeded error, due to its visitor architecture. The peephole
    just transforms such calls, if it can, into the final resulting string
    and this exhibit a problem, because the visit_binop method stops being
    called (in the optimized AST it will be a Const node).
* Thu Mar 12 2015 mcihar@suse.cz
- Update to 1.4.2:
  * Don't require a docstring for empty modules. Closes issue #261.
  * Fix a false positive with `too-few-format-args` string warning,
    emitted when the string format contained a normal positional
    argument ('{0}'), mixed with a positional argument which did
    an attribute access ('{0.__class__}').
    Closes issue #463.
  * Take in account all the methods from the ancestors
    when checking for too-few-public-methods. Closes issue #471.
  * Catch enchant errors and emit 'invalid-characters-in-docstring'
    when checking for spelling errors. Closes issue #469.
  * Use all the inferred statements for the super-init-not-called
    check. Closes issue #389.
  * Add a new warning, 'unichr-builtin', emitted by the Python 3
    porting checker, when the unichr builtin is found. Closes issue #472.
  * Add a new warning, 'intern-builtin', emitted by the Python 3
    porting checker, when the intern builtin is found. Closes issue #473.
  * Add support for editable installations.
  * The HTML output accepts the `--msg-template` option. Patch by
    Dan Goldsmith.
  * Add 'map-builtin-not-iterating' (replacing 'implicit-map-evaluation'),
    'zip-builtin-not-iterating', 'range-builtin-not-iterating', and
    'filter-builtin-not-iterating' which are emitted by `--py3k` when the
    appropriate built-in is not used in an iterating context (semantics
    taken from 2to3).
  * Add a new warning, 'unidiomatic-typecheck', emitted when an explicit
    typecheck uses type() instead of isinstance(). For example,
    `type(x) == Y` instead of `isinstance(x, Y)`. Patch by Chris Rebert.
    Closes issue #299.
  * Add support for combining the Python 3 checker mode with the --jobs
    flag (--py3k and --jobs). Closes issue #467.
  * Add a new warning for the Python 3 porting checker, 'using-cmp-argument',
    emitted when the `cmp` argument for the `list.sort` or `sorted builtin`
    is encountered.
  * Make the --py3k flag commutative with the -E flag. Also, this patch
    fixes the leaks of error messages from the Python 3 checker when
    the errors mode was activated. Closes issue #437.
* Wed Feb 18 2015 mcihar@suse.cz
- Update to 1.4.1:
  * Look only in the current function's scope for bad-super-call.
    Closes issue #403.
  * Check the return of properties when checking for not-callable.
    Closes issue #406.
  * Warn about using the input() or round() built-ins for Python 3.
    Closes issue #411.
  * Proper abstract method lookup while checking for
    abstract-class-instantiated. Closes issue #401.
  * Use a mro traversal for finding abstract methods. Closes issue #415.
  * Fix a false positive with catching-non-exception and tuples of
    exceptions.
  * Fix a false negative with raising-non-exception, when the raise used
    an uninferrable exception context.
  * Fix a false positive on Python 2 for raising-bad-type, when
    raising tuples in the form 'raise (ZeroDivisionError, None)'.
  * Fix a false positive with invalid-slots-objects, where the slot entry
    was an unicode string on Python 2. Closes issue #421.
  * Add a new warning, 'redundant-unittest-assert', emitted when using
    unittest's methods assertTrue and assertFalse with constant value
    as argument. Patch by Vlad Temian.
  * Add a new JSON reporter, usable through -f flag.
  * Add the method names for the 'signature-differs' and 'argument-differs'
    warnings. Closes issue #433.
  * Don't compile test files when installing.
  * Fix a crash which occurred when using multiple jobs and the files
    given as argument didn't exist at all.
* Mon Dec  8 2014 mcihar@suse.cz
- Lower tk dependency to Recommends as it's only needed for optional GUI
* Mon Dec  8 2014 mcihar@suse.cz
- Update to 1.4.0:
  * Added new options for controlling the loading of C extensions.
    By default, only C extensions from the stdlib will be loaded
    into the active Python interpreter for inspection, because they
    can run arbitrary code on import. The option
    `--extension-pkg-whitelist` can be used to specify modules
    or packages that are safe to load.
  * Change default max-line-length to 100 rather than 80
  * Drop BaseRawChecker class which were only there for backward
    compat for a while now
  * Don't try to analyze string formatting with objects coming from
    function arguments. Closes issue #373.
  * Port source code to be Python 2/3 compatible. This drops the
    need for 2to3, but does drop support for Python 2.5.
  * Each message now comes with a confidence level attached, and
    can be filtered base on this level. This allows to filter out
    all messages that were emitted even though an inference failure
    happened during checking.
  * Improved presenting unused-import message. Closes issue #293.
  * Add new checker for finding spelling errors. New messages:
    wrong-spelling-in-comment, wrong-spelling-in-docstring.
    New options: spelling-dict, spelling-ignore-words.
  * Add new '-j' option for running checks in sub-processes.
  * Added new checks for line endings if they are mixed (LF vs CRLF)
    or if they are not as expected. New messages: mixed-line-endings,
    unexpected-line-ending-format. New option: expected-line-ending-format.
  * 'dangerous-default-value' no longer evaluates the value of the arguments,
    which could result in long error messages or sensitive data being leaked.
    Closes issue #282
  * Fix a false positive with string formatting checker, when
    encountering a string which uses only position-based arguments.
    Closes issue #285.
  * Fix a false positive with string formatting checker, when using
    keyword argument packing. Closes issue #288.
  * Proper handle class level scope for lambdas.
  * Handle 'too-few-format-args' or 'too-many-format-args' for format
    strings with both named and positional fields. Closes issue #286.
- Switched to tar.gz upstream
* Tue Nov  4 2014 mcihar@suse.cz
- Update to 1.3.1:
  * Fix a false positive with string formatting checker, when
    encountering a string which uses only position-based arguments.
    Closes issue #285.
  * Fix a false positive with string formatting checker, when using
    keyword argument packing. Closes issue #288.
  * Handle 'too-few-format-args' or 'too-many-format-args' for format
    strings with both named and positional fields. Closes issue #286.
  * Analyze only strings by the string format checker. Closes issue #287.
  * Properly handle nested format string fields. Closes issue #294.
  * Properly handle unicode format strings for Python 2.
    Closes issue #296.
  * Fix a false positive with 'too-few-format-args', when the format
    strings contains duplicate manual position arguments.
    Closes issue #310.
  * fixme regex handles comments without spaces after the hash.
    Closes issue #311.
  * Fix a crash encountered when looking for attribute docstrings.
  * Fix a crash which ocurred while checking for 'method-hidden',
    when the parent frame was something different than a function.
* Tue Aug 12 2014 mcihar@suse.cz
- Adjusted dependencies as pylint 1.3.0 needs atroid 1.2.0 or newer
* Mon Aug 11 2014 mcihar@suse.cz
- Update to version 1.3.0
  * Allow hanging continued indentation for implicitly concatenated
    strings. Closes issue #232.
  * PyLint works under Python 2.5 again, and its test suite passes.
  * Fix some false positives for the cellvar-from-loop warnings.
    Closes issue #233.
  * Return new astroid class nodes when the inferencer can detect that
    that result of a function invocation on a type (like `type` or
    `abc.ABCMeta`) is requested. Closes #205.
  * Emit 'undefined-variable' for undefined names when using the
    Python 3 `metaclass=` argument.
  * Checkers respect priority now. Close issue #229.
  * Fix a false positive regarding W0511. Closes issue #149.
  * Fix unused-import false positive with Python 3 metaclasses (#143).
  * Don't warn with 'bad-format-character' when encountering
    the 'a' format on Python 3.
  * Add multiple checks for PEP 3101 advanced string formatting:
    'bad-format-string', 'missing-format-argument-key',
    'unused-format-string-argument', 'format-combined-specification',
    'missing-format-attribute' and 'invalid-format-index'.
  * Issue broad-except and bare-except even if the number
    of except handlers is different than 1. Fixes issue #113.
  * Issue attribute-defined-outside-init for all cases, not just
    for the last assignment. Closes issue #262.
  * Emit 'not-callable' when calling properties. Closes issue #268.
  * Fix a false positive with unbalanced iterable unpacking,
    when encountering starred nodes. Closes issue #273.
  * Add new checks, 'invalid-slice-index' and 'invalid-sequence-index'
    for invalid sequence and slice indices.
  * Add 'assigning-non-slot' warning, which detects assignments to
    attributes not defined in slots.
  * Don't emit 'no-name-in-module' for ignored modules.
    Closes issue #223.
  * Fix an 'unused-variable' false positive, where the variable is
    assigned through an import. Closes issue #196.
  * Definition order is considered for classes, function arguments
    and annotations. Closes issue #257.
  * Don't emit 'unused-variable' when assigning to a nonlocal.
    Closes issue #275.
  * Do not let ImportError propagate from the import checker, leading to crash
    in some namespace package related cases. Closes issue #203.
  * Don't emit 'pointless-string-statement' for attribute docstrings.
    Closes issue #193.
  * Use the proper mode for pickle when opening and writing the stats file.
    Closes issue #148.
  * Don't emit hidden-method message when the attribute has been
    monkey-patched, you're on your own when you do that.
  * Only emit attribute-defined-outside-init for definition within the same
    module as the offended class, avoiding to mangle the output in some cases.
  * Don't emit 'unnecessary-lambda' if the body of the lambda call contains
    call chaining. Closes issue #243.
  * Don't emit 'missing-docstring' when the actual docstring uses `.format`.
    Closes issue #281.
- Use zip from pypi as this now the only distribution channel
- Add unzip to BuildRequires to above
* Thu Jul 10 2014 toddrme2178@gmail.com
- Update to version 1.2.1
  * Restore the ability to specify the init-hook option via the
    configuration file, which was accidentally broken in 1.2.0.
  * Add a new warning [bad-continuation] for badly indentend continued
    lines.
  * Emit [assignment-from-none] when the function contains bare returns.
    Fixes BitBucket issue #191.
  * Added a new warning for closing over variables that are
    defined in loops. Fixes Bitbucket issue #176.
  * Do not warn about \u escapes in string literals when Unicode literals
    are used for Python 2.*. Fixes BitBucket issue #151.
  * Extend the checking for unbalanced-tuple-unpacking and
    unpacking-non-sequence to instance attribute unpacking as well.
  * Fix explicit checking of python script (1.2 regression, #219)
  * Restore --init-hook, renamed accidentally into --init-hooks in 1.2.0
    (#211)
  * Add 'indexing-exception' warning, which detects that indexing
    an exception occurs in Python 2 (behaviour removed in Python 3).
* Thu Apr 24 2014 mcihar@suse.cz
- update to version 1.2.0
  * Pass the current python paths to pylint process when invoked via
    epylint.  Fixes BitBucket issue #133.
  * Add -i / --include-ids and -s / --symbols back as completely ignored
    options. Fixes BitBucket issue #180.
  * Extend the number of cases in which logging calls are detected. Fixes
    bitbucket issue #182.
  * Improve pragma handling to not detect pylint:* strings in non-comments.
    Fixes BitBucket issue #79.
  * Do not crash with UnknownMessage if an unknown message ID/name appears
    in disable or enable in the configuration. Patch by Cole Robinson.
    Fixes bitbucket issue #170.
  * Add new warning 'eval-used', checking that the builtin function `eval`
    was used.
  * Make it possible to show a naming hint for invalid name by setting
    include-naming-hint. Also make the naming hints configurable. Fixes
    BitBucket issue #138.
  * Added support for enforcing multiple, but consistent name styles for
    different name types inside a single module; based on a patch written
    by morbo@google.com.
  * Also warn about empty docstrings on overridden methods; contributed
    by sebastianu@google.com.
  * Also inspect arguments to constructor calls, and emit relevant
    warnings; contributed by sebastianu@google.com.
  * Added a new configuration option logging-modules to make the list
    of module names that can be checked for 'logging-not-lazy' et. al.
    configurable; contributed by morbo@google.com.
  * ensure init-hooks is evaluated before other options, notably load-plugins
    (#166)
  * Python 2.5 support restored: fixed small issues preventing pylint to run
    on python 2.5. Bitbucket issues #50 and #62.
  * bitbucket #128: pylint doesn't crash when looking
    for used-before-assignment in context manager
    assignments.
  * Add new warning, 'bad-reversed-sequence', for checking that the
    reversed() builtin receive a sequence (implements __getitem__ and __len__,
    without being a dict or a dict subclass) or an instance which implements
* Wed Mar  5 2014 arun@gmx.de
- update to version 1.1.0
  * Add new check for use of deprecated pragma directives "pylint:disable-msg"
    or "pylint:enable-msg" (I0022, deprecated-pragma) which was previously
    emmited as a regular warn().
  * Avoid false used-before-assignment for except handler defined
    identifier used on the same line (#111).
  * Combine 'no-space-after-operator', 'no-space-after-comma' and
    'no-space-before-operator' into a new warning 'bad-whitespace'.
  * Add a new warning 'superfluous-parens' for unnecessary
    parentheses after certain keywords.
  * Fix a potential crash in the redefine-in-handler warning
    if the redefined name is a nested getattr node.
  * Add a new option for the multi-statement warning to
    allow single-line if statements.
  * Add 'bad-context-manager' error, checking that '__exit__'
    special method accepts the right number of arguments.
  * Run pylint as a python module 'python -m pylint' (anatoly techtonik).
  * Check for non-exception classes inside an except clause.
  * epylint support options to give to pylint after the file to analyze and
    have basic input validation (bitbucket #53 and #54), patches provided by
    felipeochoa and Brian Lane.
  * Added a new warning, 'non-iterator-returned', for non-iterators
    returned by '__iter__'.
  * Add new checks for unpacking non-sequences in assignments
    (unpacking-non-sequence) as well as unbalanced tuple unpacking
    (unbalanced-tuple-unpacking).
  * useless-else-on-loop not emited if there is a break in the
    else clause of inner loop (#117).
  * don't mark `input` as a bad function when using python3 (#110).
  * badly-implemented-container caused several problems in its
    current implementation. Deactivate it until we have something
    better. See #112 for instance.
  * Use attribute regexp for properties in python3, as in python2
  * Create the PYLINTHOME directory when needed, it might fail and lead to
    spurious warnings on import of pylint.config.
  * Fix setup.py so that pylint properly install on Windows when using python3
  * Various documentation fixes and enhancements
  * Fix issue #55 (false-positive trailing-whitespace on Windows)
* Fri Nov 29 2013 toddrme2178@gmail.com
- Implement update-alternatives
* Thu Nov 28 2013 toddrme2178@gmail.com
- Update requires and buildrequires
* Wed Nov 27 2013 p.drouand@gmail.com
- Update to version 1.0.0
  * Add check for the use of 'exec' function
  * New --msg-template option to control output, deprecating "msvc" and
    "parseable" output formats as well as killing `--include-ids` and `--symbols`
    options
  * Do not emit [fixme] for every line if the config value 'notes'
    is empty, but [fixme] is enabled.
  * Emit warnings about lines exceeding the column limit when
    those lines are inside multiline docstrings.
  * Do not double-check parameter names with the regex for parameters and
    inline variables.
  * Added a new warning missing-final-newline (C0304) for files missing
    the final newline.
  * Methods that are decorated as properties are now treated as attributes
    for the purposes of name checking.
  * Names of derived instance class member are not checked any more.
  * Names in global statements are now checked against the regular
    expression for constants.
  * For toplevel name assignment, the class name regex will be used if
    pylint can detect that value on the right-hand side is a class
    (like collections.namedtuple()).
  * Simplified invalid-name message
  * Added a new warning invalid-encoded-data (W0512) for files that
    contain data that cannot be decoded with the specified or
    default encoding.
  * New warning bad-open-mode (W1501) for calls to open (or file) that
    specify invalid open modes (Original implementation by Sasha Issayev).
  * New warning old-style-class (C1001) for classes that do not have any
    base class.
  * Add new name type 'class_attribute' for attributes defined
    in class scope. By default, allow both const and variable names.
  * New warning trailing-whitespace (C0303) that warns about
    trailing whitespace.
  * Added a new warning unpacking-in-except (W0712) about unpacking
    exceptions in handlers, which is unsupported in Python 3.
  * Add a configuration option for missing-docstring to
    optionally exempt short functions/methods/classes from
    the check.
  * Add the type of the offending node to missing-docstring
    and empty-docstring.
  * New utility classes for per-checker unittests in testutils.py
  * Do not warn about redefinitions of variables that match the
    dummy regex.
  * Do not treat all variables starting with _ as dummy variables,
    only _ itself.
  * Make the line-too-long warning configurable by adding a regex for lines
    for with the length limit should not be enforced
  * Do not warn about a long line if a pylint disable
    option brings it above the length limit
  * Do not flag names in nested with statements as undefined.
  * Added a new warning 'old-raise-syntax' for the deprecated syntax
    raise Exception, args
  * Support for PEP 3102 and new missing-kwoa (E1125) message for missing
    mandatory keyword argument (logilab.org's #107788)
  * Fix spelling of max-branchs option, now max-branches
  * Added a new base class and interface for checkers that work on the
    tokens rather than the syntax, and only tokenize the input file
    once.
  * Follow astng renaming to astroid
  * bitbucket #37: check for unbalanced unpacking in assignments
  * bitbucket #25: fix incomplete-protocol false positive for read-only
    containers like tuple
  * bitbucket #16: fix False positive E1003 on Python 3 for argument-less super()
  * bitbucket #6: put back documentation in source distribution
  * bitbucket #15: epylint shouldn't hang anymore when there is a large
    output on pylint'stderr
  * bitbucket #7: fix epylint w/ python3
  * bitbucket #3: remove string module from the default list of deprecated
    modules
- Remove unwanted %%{py_requires} macro
- Remove redundant %%clean section
* Thu May 30 2013 dmueller@suse.com
- update to 0.28.0:
  * bitbucket #1: fix "dictionary changed size during iteration" crash
  * #74013: new E1310[bad-str-strip-call] message warning when a call to a
    {l,r,}strip method contains duplicate characters (patch by Torsten Marek)
  * #123233: new E0108[duplicate-argument-name] message reporting duplicate
    argument names
  * #81378: emit W0120[useless-else-on-loop] for loops without break
  * #124660: internal dependencies should not appear in external dependencies
    report
  * #124662: fix name error causing crash when symbols are included in output
    messages
  * #123285: apply pragmas for warnings attached to lines to physical source
    code lines
  * #123259: do not emit E0105 for yield expressions inside lambdas
  * #123892: don't crash when attempting to show source code line that can't
    be encoded with the current locale settings
  * Simplify checks for dangerous default values by unifying tests for all
    different mutable compound literals.
  * Improve the description for E1124[redundant-keyword-arg]
  * #20693: replace pylint.el by Ian Eure version (patch by J.Kotta)
  * #105327: add support for --disable=all option and deprecate the
    'disable-all' inline directive in favour of 'skip-file' (patch by
    A.Fayolle)
  * #110840: add messages I0020 and I0021 for reporting of suppressed
    messages and useless suppression pragmas. (patch by Torsten Marek)
* Fri May  4 2012 toddrme2178@gmail.com
- Fix rpmlint warnings
- Added full url to source file
* Mon Apr 30 2012 toddrme2178@gmail.com
- Cleaned up spec file formatting
- Added python 3 package
* Thu Feb 23 2012 saschpe@suse.de
- Provide detail about each version update to please darix ;-)
* Sat Feb 18 2012 toganm@opensuse.org
- Update to version 0.25.1:
  * #81078: Warn if names in  exception handlers clobber
    overwrite existing names (patch by tmarek@google.com)
  * #81113: Fix W0702 messages appearing with the wrong line
    number. (patch by tmarek@google.com)
  * #50461, #52020, #51222: Do not issue warnings when using
    2.6's property.setter/deleter functionality
    (patch by dneil@google.com)
  * #9188, #4024: Do not trigger W0631 if a loop variable is
    assigned in the else branch of a for loop.
- Changes from version 0.25.0:
  * #74742: make allowed name for first argument of class method configurable
    (patch by Google)
  * #74087: handle case where inference of a module return YES; this avoid
    some cases of "TypeError: '_Yes' object does not support indexing" (patch
    by Google)
  * #74745: make "too general" exception names configurable (patch by Google)
  * #74747: crash occurs when lookup up a special attribute in class scope
    (patch by google)
  * #76920: crash if on eg "pylint --rcfile"(patch by Torsten Marek)
  * #77237: warning for E0202 may be very misleading
  * #73941: HTML report messages table is badly rendered
* Wed Sep 21 2011 dmueller@suse.de
- Update to version 0.24.0:
  * #69738: add regular expressions support for "generated-members"
  * #69993: Additional string format checks for logging module:
    check for missing arguments, too many arguments, or invalid string
    formats in the logging checker module. Contributed by Daniel Arena
  * #69220: add column offset to the reports. If you've a custom reporter,
    this change may break it has now location gain a new item giving the
    column offset.
  * #60828: Fix false positive in reimport check
  * #70495: absolute imports fail depending on module path (patch by Jacek Konieczny)
  * #22273: Fix --ignore option documentation to match reality
* Tue Aug 30 2011 andrea.turrini@gmail.com
- fixed typo and standardized "Authors:" format in description of
  python-pylint.spec
* Mon Apr 11 2011 hpj@urpla.net
- fix build
- Update to version 0.23.0:
  * documentation update, add manpages
  * several performance improvements
  * finalize python3 support
  * new W0106 warning 'Expression "%%s" is assigned to nothing'
  * drop E0501 and E0502 messages about wrong source encoding: not anymore
    interesting since it's a syntax error for python >= 2.5 and we now only
    support this python version and above.
  * don't emit W0221 or W0222 when methods as variable arguments (eg *arg
    and/or **args). Patch submitted by Charles Duffy.
* Fri Jan  7 2011 hpj@urpla.net
- Update to version 0.22.0:
  * python versions: minimal python3.x support; drop python < 2.5 support
  - 2010-10-27  --  0.21.4
  * fix #48066: pylint crashes when redirecting output containing non-ascii characters
  * fix #19799: "pylint -blah" exit with status 2
  * update documentation
  - 2010-09-28  --  0.21.3
  * restored python 2.3 compatibility. Along with logilab-astng
    0.21.3 and logilab-common 0.52, this will much probably be the
    latest release supporting python < 2.5.
* Wed Dec  1 2010 dmueller@suse.de
- fix dependencies (bnc#656797)
* Thu Aug 26 2010 alexandre@exatati.com.br
- Update to 0.21.2:
  * fix #36193: import checker raise exception on cyclic import
  * fix #28796: regression in --generated-members introduced pylint 0.20
  * some documentation cleanups
* Mon Jun  7 2010 alexandre@exatati.com.br
- Update to 0.21.1:
  * fix #28962: pylint crash with new options, due to missing stats data
    while writing the Statistics by types report
  * updated man page to 0.21 or greater command line usage (fix debian #582494)
  - Aditional changes from 0.21.0:
  * command line updated (closes #9774, #9787, #9992, #22962):
  * all enable-* / disable-* options have been merged into --enable / --disable
  * BACKWARD INCOMPATIBLE CHANGE: short name of --errors-only becomes -E, -e being
    affected to --enable
  * pylint --help output much simplified, with --long-help available to get the
    complete one
  * revisited gui, thanks to students from Toronto university (they are great
    contributors to this release!)
  * fix #21591: html reporter produces no output if reports is set to 'no'
  * fix #4581: not Missing docstring (C0111) warning if a method is overridden
  * fix #4683: Non-ASCII characters count double if utf8 encode
  * fix #9018: when using defining-attr-method, method order matters
  * fix #4595: Comma not followed by a space should not occurs on trailing comma
    in list/tuple/dict definition
  * fix #22585: [Patch] fix man warnings for pyreverse.1 manpage
  * fix #20067: AttributeError: 'NoneType' object has no attribute 'name' with with
- Spec file cleaned with spec-cleaner;
- Minor changes to use macros on commands on spec file.
* Sun Apr 18 2010 dmueller@suse.de
- update to 0.20.0:
  * fix #19339: pylint.el : non existing py-mod-map
    (closes Debian Bug report logs - #475939)
  * implement #18860, new W0199 message on assert (a, b)
  * implement #9776, 'W0150' break or return statement in finally block may
    swallow exception.
  * fix #9263, __init__ and __new__ are checked for unused arguments
  * fix #20991, class scope definitions ignored in a genexpr
  * fix #5975, Abstract intermediate class not recognized as such
  * fix #5977, yield and return statement have their own counters, no more R0911
    (Too many return statements) when a function have many yield stamtements
  * implement #5564, function / method arguments with leading "_" are ignored in
    arguments / local variables count.
  * implement #9982, E0711 specific error message when raising NotImplemented
  * remove --cache-size option
* Fri Dec 18 2009 dmueller@suse.de
- update to 0.19.0 (bnc#555993):
  * include James Lingard string format checker
  * include simple message (ids) listing by Vincent Férotin (#9791)
  * --errors-only does not hide fatal error anymore
  * include james Lingard patches for ++/-- and duplicate key in dicts
  * include James Lingard patches for function call arguments checker
  * improved flymake code and doc provided by Derek Harland
  * refactor and fix the imports checker
  * fix #18862: E0601 false positive with lambda functions
  * fix #8764: More than one statement on a single line false positive with
    try/except/finally
  * fix #9215: false undefined variable error in lambda function
  * fix for w0108 false positive (Nathaniel)
  * fix test/fulltest.sh
  * #5821 added a utility function to run pylint in another process (patch provide by Vincent Férotin)
* Wed Sep 16 2009 poeml@suse.de
- fix build on SLE10 by not including %%{py_sitedir}/*egg-info in
  the filelist there
* Wed Sep  9 2009 dmueller@suse.de
- update to 0.18.1:
  * improved flymake code and doc provided by Derek Harland
  * refactor & fix the imports checker
  * fix #8764: More than one statement on a single line false positive with
    try/except/finally
  * Nathaniel's fix for w0108 false positive
  * fix 9215: false undefined variable error in lambda function
* Sat Aug  8 2009 hpj@urpla.net
- rename package to python-pylint
* Wed Aug  5 2009 hpj@urpla.net
- Update to version 0.18.0:
  * tests ok with python 2.4, 2.5, 2.6. 2.3 not tested
  * fix #8687, W0613 false positive on inner function
  * fix #8350, C0322 false positive on multi-line string
  * fix #8332: set E0501 line no to the first line where non ascii character
    has been found
  * avoid some E0203 / E0602 false negatives by detecting respectivly
    AttributeError / NameError
  * implements #4037: don't issue W0142 (* or ** magic) when they are barely
    passed from */** arguments
  * complete #5573: more complete list of special methods, also skip W0613
    for python internal method
  * don't show information messages by default
    2009-03-19  --  0.17.0
  * semicolon check : move W0601 to W0301
  * remove rpython : remove all rpython checker, modules and tests
  * astng 0.18 compatibility: support for _ast module modifies interfaces
    2009-01-28  --  0.16.0
  * change [en|dis]able-msg-cat options: only accept message categories
    identified by their first letter (eg IRCWEF) without the need for comma
    as separator
  * add epylint.bat script to fix Windows installation
  * setuptools/easy_install support
  * include a modified version of Maarten ter Huurne patch to avoid W0613
    warning on arguments from overridden method
  * implement #5575  drop dumb W0704 message) by adding W0704 to ignored
    messages by default
  * new W0108 message, checking for suspicious lambda (provided by  Nathaniel
    Manista)
  * fix W0631, false positive reported by Paul Hachmann
  * fix #6951: false positive with W0104
  * fix #6949
  * patches by Mads Kiilerich:
  * implement #4691, make pylint exits with a non zero return
  status if any messages other then Information are issued
  * fix #3711, #5626 (name resolution bug w/ decorator and class members)
  * fix #6954
    2008-10-13  --  0.15.2
  * fix #5672: W0706 weirdness ( W0706 removed )
  * fix #5998: documentation points to wrong url for mailing list
  * fix #6022: no error message on wrong module names
  * fix #6040: pytest doesn't run test/func_test.py
    2008-09-15  --  0.15.1
  * fix #4910: default values are missing in manpage
  * fix #5991: missing files in 0.15.0 tarball
  * fix #5993: epylint should work with python 2.3
* Fri Sep 12 2008 garloff@suse.de
- Update to version 0.15.0:
  * include pyreverse package and class diagram generation
  * included Stefan Rank's patch to deal with 2.4 relative import
  * included Robert Kirkpatrick's tutorial and typos fixes
  * fix bug in reenabling message
  * fix #2473: invoking pylint on __init__.py (hopefuly)
  * typecheck: acquired-members option has been dropped in favor of the more
    generic generated-members option. If the zope option is set, the behaviour
    is now to add some default values to generated-members.
  * flymake integration: added bin/epylint and elisp/pylint-flymake.el
* Fri Aug 22 2008 garloff@suse.de
- Update to verions 0.14.0:
  * fix #3733: Messages (dis)appear depending on order of file names
  * fix #4026: pylint.el should require compile
  * fix a bug in colorized reporter, spotted by Dave Borowitz
  * applied patch from Stefan Rank to avoid W0410 false positive when
    multiple "from __future__" import statements
  * implement #4012: flag back tick as deprecated (new W0333 message)
  * new ignored-class option on typecheck checker allowing to skip members
    checking based on class name (patch provided by Thomas W Barr)
* Mon Jul 16 2007 garloff@suse.de
- Update to pylint 0.13.2:
  * fix disable-checker option so that it won't accidentally enable the
    rpython checker which is disabled by default
  * added note about the gedit plugin into documentation
- Update to pylint 0.13.1:
  * fix some unexplained 0.13.0 packaging issue which led a bunch of
    files missing from the distribution
- Update to pylint 0.13.0:
  * new RPython (Restricted Python) checker for PyPy felow or people
    wanting to get a compiled version of their python program using the
    translator of the PyPy project. For more information about PyPy or
    RPython, visit http://codespeak.net/pypy/
  * new E0104 and E0105 messages introduced to respectivly warn about
    "return" and "yield" outside function or method
  * new E0106 message when "yield" and "return something" are mixed in a
    function or method
  * new W0107 message for unnecessary pass statement
  * new W0614 message to differentiate between unused 'import X' and
    unused 'from X import *" (#3209, patch submitted by Daniel Drake)
  * included Daniel Drake's patch to have a different message E1003 instead of
    E1001 when a missing member is found but an inference failure has been
    detected
  * msvs reporter for Visual Studio line number reporting (#3285)
  * allow disable-all option inline (#3218, patch submitted by Daniel Drake)
  * --init-hook option to call arbitray code necessary to set
    environment (eg sys.path) (#3156)
  * One more Daniel's patch fixing a command line option parsing
    problem, this'll definitly be the DDrake release :)
  * fix #3184: crashes on "return" outside function
  * fix #3205: W0704 false positive
  * fix #3123: W0212 false positive on static method
  * fix #2485: W0222 false positive
  * fix #3259: when a message is explicitly enabled, check the checker
    emitting it is enabled
- Update to pylint 0.12.2:
  * fix #3143: W0233 bug w/ YES objects
  * fix #3119: Off-by-one error counting lines in a file
  * fix #3117: ease sys.stdout overriding for reporters
  * fix #2508: E0601 false positive with lambda
  * fix #3125: E1101 false positive and a message duplication. Only the last part
    is actually fixed since the initial false positive is due to dynaming setting of
    attributes on the decimal.Context class.
  * fix #3149: E0101 false positives and introduced E0100 for generator __init__
    methods
  * fixed some format checker false positives
- Update to pylint 0.12.1:
  * fixed python >= 2.4 format false positive with multiple lines statement
  * fixed some 2.5 issues
  * fixed generator expression scope bug (depends on astng 0.16.1)
  * stop requiring __revision__
* Tue Sep 26 2006 cthiel@suse.de
- fix build with python 2.5
- update to version 0.12.0
  * usability changes:
    o parseable, html and color options are now handled by a single
    output-format option
    o enable-<checkerid> and disable-all options are now handled by
    two (exclusive) enable-checker and disable-checker options
    taking a comma separated list of checker names as value
    o renamed debug-mode option to errors-only
  * started a reference user manual
  * new W0212 message for access to protected member from client code
  * new W0105 and W0106 messages extracted from W0104 (statement seems to
    have no effect) respectivly when the statement is actually string
    (that's sometimes used instead of comments for documentation) or an
    empty statement generated by a useless semicolumn
  * reclassified W0302 to C0302
  * fix so that global messages are not anymore connected to the last
    analyzed module
  * fix some bugs related to local disabling of messages
  * fix cr/lf pb when generating the rc file on windows platforms
- changes from 0.10.0 to 0.11.0
  * fix crash caused by the exceptions checker in some case
  * fix some E1101 false positive with abstract method or classes defining
    __getattr__
  * dirty fix to avoid "_socketobject" has not "connect" member. The actual
    problem is that astng isn't able to understand the code used to create
    socket.socket object with exec
  * added an option in the similarity checker to ignore docstrings, enabled
    by default
  * included patch from Benjamin Niemann to allow block level
    enabling/disabling of messages
- changes from 0.9.0 to 0.10.0
  * WARNING, this release include some configuration changes (see below), so
    you may have to check and update your own configuration file(s) if you
    use one
  * this release require the 0.15 version of astng or superior (it will save
    you a lot of pylint crashes...)
  * W0705 has been reclassified to E0701, and is now detecting more
    inheriting problem, and a false positive when empty except clause is
    following an Exception catch has been fixed
  * E0212 and E0214 (metaclass/class method should have mcs/cls as first
    argument have been reclassified to C0202 and C0203 since this not as
    well established as "self" for instance method (E0213)
  * W0224 has been reclassified into F0220 (failed to resolve interfaces
    implemented by a class)
  * a new typecheck checker, introducing the following checks:
    o E1101, access to unexistant member (implements #10430), remove the
    need of E0201 and so some options has been moved from the classes
    checker to this one
    o E1102, calling a non callable object
    o E1111 and W1111 when an assigment is done on a function call but the
    infered function returns None (implements #10431)
  * change in the base checker:
    o checks module level and instance attribute names (new const-rgx
    and attr-rgx configuration option)
    o list comprehension and generator expression variables have their
    own regular expression  (the inlinevar-rgx option)
    o the C0101 check with its min-name-lentgh option has
    been removed (this can be specified in the regxp after all...)
    o W0103 and W0121 are now handled by the variables checker
    (W0103 is now W0603 and W0604 has been splitted into different messages)
    o W0131 and W0132 messages  have been reclassified to C0111 and
    C0112 respectivly
    o new W0104 message on statement without effect
  * regexp support for dummy-variables (dummy-variables-rgx option
    replace dummy-variables)
  * better global statement handling, see W0602, W0603, W0604 messages
  * --debug-mode option, disabling all checkers without error message
    and filtering others to only display error
  * fixed some R0201 (method could be a function) false positive
* Tue Feb 28 2006 jmatejek@suse.cz
- updated to reflect python changes due to #149809
* Sat Jan 28 2006 garloff@suse.de
- Update to 0.9.0:
  * Updates induced by astng-0.14.
  * Allow additional plugins.
  * Use local dir's pylintrc in preference over others.
  * Many bugfixes (W0706, E0611, E0203, E0214, W0212, W0401, #9789)
* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Thu Dec 22 2005 garloff@suse.de
- Add dependency on python-logilab-astng.
* Mon Dec 19 2005 garloff@suse.de
- Update to 0.8.1:
  * fix "deprecated module" false positive when the code imports a
    module whose name starts with a deprecated module's name.
  * fix "module has no name __dict__" false positive.
  * fix "access to undefined variable __path__" false positive.
  * fix "explicit return in __init__" false positive when return is
    actually in an inner function.
- Update to 0.8.0:
  * check names imported from a module exists in the module (E0611),
    patch contributed by Amaury Forgeot d'Arc.
  * print a warning (W0212) for methods that could be a function.
  * new --defining-attr-methods option on classes checker.
  * new --acquired-members option on the classes checker, used when
  - -zope=yes to avoid false positive on acquired attributes (listed
    using this new option).
  * generate one E0602 for each use of an undefined variable
    (previously, only one for the first use but not for the following).
  * make profile option saveable.
  * fix Windows .bat file, patch contributed by Amaury Forgeot d'Arc
  * fix one more false positive for E0601 (access before definition)
    with for loop such as "for i in range(10): print i" (test
    func_noerror_defined_and_used_on_same_line)
  * fix false positive for E0201 (undefined member) when accessing to
    __name__ on a class object
  * fix astng checkers traversal order
  * fix bug in format checker when parsing a file from a platform
    using different new line characters
  * fix encoding detection regexp
  * fix --rcfile handling (support for --rcfile=file, close #9590)
- bzip2 sources.
* Fri Aug 12 2005 ro@suse.de
- remove noarch for now
* Tue Jul 26 2005 garloff@suse.de
- Make it a noarch package.
* Sun Jul 17 2005 garloff@suse.de
- Initial creation of package pylint-0.7.0.