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

Doug Hellmann doug at doughellmann.com
Mon Jun 29 11:39:55 UTC 2015


Excerpts from Victor Stinner's message of 2015-06-29 12:01:27 +0200:
> 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/?

tablib is managed by Kenneth Reitz, and as with his requests library
he feels vendoring is the best way to distribute dependencies. For
a while I've had a to-do on my list to rewrite those formatters to
not use tablib, it just hasn't been a high priority.

Doug

> 
> 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