FS#26173 - [pylint] Missing python 3 version

Attached to Project: Arch Linux
Opened by Médéric Boquien (mboquien) - Saturday, 01 October 2011, 08:09 GMT
Last edited by Angel Velasquez (angvp) - Friday, 28 June 2013, 18:22 GMT
Task Type Feature Request
Category Packages: Extra
Status Closed
Assigned To Angel Velasquez (angvp)
Stéphane Gaudreault (stephane)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 5
Private No



Pylint supports Python 3, however only the Python 2 version is available in Arch. It would be great to add the python 3 version too.


This task depends upon

Closed by  Angel Velasquez (angvp)
Friday, 28 June 2013, 18:22 GMT
Reason for closing:  Fixed
Additional comments about closing:  Fixed on python-logilab-common-0.59.1-2 release, now we have pylint on python3 woohoo
Comment by Stéphane Gaudreault (stephane) - Wednesday, 12 October 2011, 21:01 GMT
I have no objection to do this. However, my understanding is that the python3 portage is simply made by running the 2to3 script on all modules. I do not think that there is aditional python3 features. Hence, there might be only little benefit to have both python2 and python3 version.
Comment by Hermann Zahnweh (eigengrau) - Monday, 20 August 2012, 11:10 GMT
I'm not sure it's really the case that there's no benefit from a python3 installation. Correct me if I'm wrong, but afaik pylint doesn't analyze raw file inputs, but rather analyzes module objects, which means that analyzed code is imported into the interpreter the pylint instance is running on. I tried analyzing some python3 modules by invoking the python2 pylint with a forced, absolute path to the module, but it throws lots of syntax errors on python3-only constructs even though the code itself is fine. I'd appreciate it if you looked into this some more. Sadly, the upstream documentation and the bug tracker aren't very helpful on this, although in the changelogs it says python3 should be fully supported by now.
Comment by Michael Helmling (supermihi) - Tuesday, 21 August 2012, 08:08 GMT
Actually you need the python3 version of pylint in order to analyze python3 code (otherwise, pylint reports tons of syntax errors for non-2 syntax) ... so there'd be a _huge_ benefit from having a py3-version in portage!

However, according to the README.Python3 file of pylint (http://hg.logilab.org/pylint/file/tip/README.Python3) setup.py needs to be called in a specific way for the python3 version, and the python3-versions of the dependencies logilab-{common,astng} aren't in portage yet either.
Comment by Stéphane Gaudreault (stephane) - Thursday, 23 August 2012, 02:45 GMT
In portage ???! We are talking about Arch here ... :D

Anyway, I will look at this in September, after the holidays :)
Comment by Michael Helmling (supermihi) - Thursday, 23 August 2012, 20:24 GMT
Whoops, sorry ... of course I meant pacman, not portage. ;-)
Comment by Phil Schaf (flying-sheep) - Monday, 01 October 2012, 13:44 GMT
furthermore, the package is named wrongly: all python 2 packages should be named python2-libname, so in this case python2-pylint.

since there is none, i’ll make a python-pylint AUR package (for python 3).

also: there is always a benefit in providing a python 3 version: we want to be able to uninstall python2 one day, because everything has been ported to python 3!

i’ll report back as soon as my package is ready.
Comment by Phil Schaf (flying-sheep) - Monday, 01 October 2012, 13:59 GMT
meh, there’s a tail of dependencies with wrong (python 3) names. i filed bugs, and as soon as they are fixed, and the proper names for all dependencies are available and not occupied by python 2 packages, i’ll continue.

for now it’s just too painful to build a package named python-egenix-mx-base while there is already a package wrongly named python-egenix-mx-base.
Comment by Stéphane Gaudreault (stephane) - Tuesday, 16 October 2012, 15:53 GMT
I was not able to build python-egenix-mx-base with python 3.3.0 (patch welcome). When this will be fixed, I will look at pylint and other logilab pkgs.
Comment by kachelaqa (kachelaqa) - Saturday, 17 November 2012, 20:52 GMT
pylint for python2 depends on python2-logilab-astng and python2-logilab-common, which in turn depends on python2-egenix-mx-base.

logilab only uses mx.DateTime objects from egenix-mx-base. but as of version 0.40.1, it can also use ordinary python datetime objects if the mx ones are unavailable. this is actually a critical requirement for pylint's python3 support, because egenix-mx-base does not currently have any python3 support itself.

so since egenix-mx-base is really only an optional dependency of pylint, there is now no reason why pylint/logilab packages for python3 shouldn't be made available.
Comment by Stéphane Gaudreault (stephane) - Tuesday, 27 November 2012, 13:23 GMT
python3 version for logilab-astng and logilab-common are in [extra].
I will upload python3 version of pylint once this get fixed : http://www.logilab.org/ticket/110213
Comment by Mathieu Pasquet (mathieui) - Tuesday, 30 April 2013, 10:40 GMT
python-pylint got uploaded to [extra] last friday, however it does not work (I didn’t create a new ticket because this one isn’t closed yet).

A simple script with an import statement will make python-pylint traceback, as in the attached file.
   a.py (0.1 KiB)
   tb (3.2 KiB)
Comment by Stéphane Gaudreault (stephane) - Tuesday, 30 April 2013, 14:13 GMT
Angel : it seems that the python3 version is not working. Could you please look at that?
Comment by Angel Velasquez (angvp) - Wednesday, 01 May 2013, 18:37 GMT
Yes, looking at it, actually was a mistake by my side to release the python3 version, i'll let you know.
Comment by Jeremy Audet (ichimonji10) - Saturday, 11 May 2013, 15:08 GMT
I got pylint working by installing the python-setuptools_git AUR package. See attachment "pylint-fix.txt".

Well, pylint now works for simple stuff like `pylint --version`, but it still fails under actual use. See "pylint-test.txt". Same symptoms with the pylint-python3 AUR package.
Comment by Angel Velasquez (angvp) - Friday, 28 June 2013, 17:31 GMT
Now we have a different bug:

AttributeError: 'NoneType' object has no attribute 'startswith'

Is supposed to be fixed for the next release of astng [1] .. will check the commits and try to get a patch from there.

[1] https://bitbucket.org/logilab/pylint/issue/14/crashes-on-missing-import