[openstack-dev] Let's get rid of tablib and cliff-tablib

Victor Stinner vstinner at redhat.com
Mon Jun 29 10:01:27 UTC 2015


Hi,

Le 29/06/2015 11:03, Thomas Goirand a écrit :
> cliff-tablib is used for the unit tests of things like
> python-neutronclient. The annoying bit is that cliff-tablib depends on
> tablib, which itself is a huge mess. It has loads of 3rd party embedded
> packages and most of them aren't Python 3.x compatible.

tablib includes copies of various dependencies in its tablib/packages/ 
directory. Some of them are for Python 2, others are for Python 3.

It would be better to use dependencies (requirements in setup.py), not 
copies. Do you try to contact tablib authors to ask them to remove 
completly tablib/packages/?

setup.py uses a different list of packages on Python 2 and Python 3.

I tried "python3 setup.py install": the bytecode compilation of 
markup.py fails with an obvious SyntaxError, the code is for Python 2. 
But there is also markup3.py which is compiled successfully.

Even if the compilation of the markup.py fails, "python setup.py 
install" succeed with the exit code 0. What is your problem?

setup.py should be fixed to skip markup.py on Python 3, and skip 
markup3.py on Python 2. A workaround is to remove manually the file 
depending on the Python major version.

Note: "pip install tablib" works on Python 3 (pip uses the binary wheel 
package).


> I've seen that for python-openstackclient, recently, cliff-tablib was
> added. Let's do the reverse, and remove cliff-tablib whenever possible.
>
> If we really want to keep using cliff-tablib, then someone has to do the
> work to port tablib to Python3 (good luck with that...).

cliff-tablib is used in tests. If you remove the cliff-tablib 
dependency, tests will obviously fail.

What do you propose? Modify tests to reimplement cliff-tablib? Remove tests?

Victor



More information about the OpenStack-dev mailing list