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

Noel Power nopower at suse.com
Mon Apr 16 16:01:52 UTC 2018

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



[1] Note: not really looking for a review of this patch but rather the
issue of the missing 'six' However this is part of 
https://github.com/samba-team/samba/pull/161 :-)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: compat.patch
Type: text/x-patch
Size: 1242 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20180416/26867c39/compat.bin>

More information about the samba-technical mailing list