RFC: CI limitations and using 'six' module for python2/3 compatability

Alexander Bokovoy ab at samba.org
Mon Apr 16 16:12:23 UTC 2018

On ma, 16 huhti 2018, Noel Power via samba-technical wrote:
> Hi team,
> I like to start a discussion about the use of 'six' (a python2/3
> compatability layer api) https://pythonhosted.org/six/
> Recently I have code across a couple of instances where I wanted to use
> the 'six' library to port some samba python code to be python2/python3
> compatible. Currently it is not possible to use 'six' as the CI machine
> does not have it installed. I guess it is likely (I don't know) that the
> autobuild machines also don't have it, does someone know ?
> What is the possibility of getting the 'six' library in place it the CI
> (and/or) autobuild machines?
> For the moment my approach is to use the existing python/samba/compat.py
> (currently not used) see attached patch [1] But.. I fear this is going
> to become poor relation 'six' clone, my hope is using and extending this
> is a temporary measure until we can kill it and replace it with six. The
> transition from compat to six should be trivial e.g. and example of code
> using the the existing content of the compat.py could be changed as follows
>   -from samba.compat import urllib_quote
>   +from six.moves.urllib.parse import urllib_quote
> Thoughts?
python-six is a good thing to use and it should already be available on
all platforms we test against, either as a native package (python-six on
Ubuntu/RHEL/CentOS, python{2,3}-six on Fedora) or can be installed with
pip otherwise.

I certainly would prefer using python-six to inventing our own
compatibility code for those places where we have an overlap as
python-six is quite widely used in Python community already.

Metze, could we get it installed in autobuild?

/ Alexander Bokovoy

More information about the samba-technical mailing list