Hi,

As many of you know, Python 2 reaches end of life at the end of this year. So, 
I've been working to get the current code moved to Python 3.

One of the big impediments in this process is the fact that our code relies 
heavily on ctypesgen which has been unmaintained for several years. This caused 
problems with recent versions of libc which have some floating point constants 
which it didn't recognize. The code even had some Python 1 constructs in it. 
Parts of it were a bit crufty.

I've just finished a preliminary port of ctypesgen to python 3 including fixing 
these bugs, getting rid of some crufty constructs, reformatting the code with 
black, and updating the tests to use tox+pytest - my favorite combination. You 
can find that code here: https://github.com/Alan-R/ctypesgen This version works 
with Python 2 or Python 3 and all the libraries on my recent Ubuntu system.

With this taken care of, I can now move the rest of the Assimilation code to 
Python >= 3.7 (exclusively). There are quite a few advantages to python 3. For 
example, the ctypesgen tests run about twice as fast on Python 3.7 as they did 
on Python 2.7. It also supports type declarations and checks using mypy. I've 
been using Python 3.7 for quite a while at work, and I love it.

I still plan on packaging the CMA as a docker container, which means dependency 
problems disappear, and ease of installation goes way up. Of course, if you 
want to build it yourself, you can always run it outside of a container.

I've been using gRPC at work. I'm thinking about that for some of the CMA APIs. 
There are good bindings for most languages. In particular, there is a need for 
an event API to get notified when various kinds of events occur in the 
collective.

-- 
  Alan Robertson
  al...@unix.sh
_______________________________________________
Assimilation mailing list - Discovery-Driven Monitoring
Assimilation@lists.community.tummy.com
http://lists.community.tummy.com/cgi-bin/mailman/listinfo/assimilation
http://assimmon.org/

Reply via email to