[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