FREE Standard Delivery for orders over £35 (ex VAT)

Farewell to Python 2: Moving Onwards with Python 3

At AB Electronics UK, we are committed to providing the best tools and libraries for your projects. Python was the first language that we supported and we have made regular updates to our Python libraries over the years, adding support for new development boards, new features and improving performance. 

As part of our ongoing efforts to improve our software and keep it up to date, we have made the decision to drop support for Python 2 in our main Python library, available at https://github.com/abelectronicsuk/ABElectronics_Python_Libraries.

Why We Are No Longer Supporting Python 2

Python 2 reached its official end of life on 1st January 2020. Since then, there have been no further updates, security patches, or improvements made by the Python Software Foundation. The wider Python community has steadily moved towards full Python 3 adoption and it has become increasingly difficult for us to maintain compatibility with both Python 2 and Python 3 without limiting the potential of our libraries.

Additionally, the Raspberry Pi OS, the primary operating system for Raspberry Pi computers, has also dropped support for Python 2 in its default installation. Python 3 is now the standard across all modern Raspberry Pi devices, meaning Python 2 is no longer needed or recommended for new projects.

Maintaining dual compatibility placed unnecessary constraints on our Python development, increasing the complexity of adding new features. By dropping support for Python 2 and focusing on Python 3, we can use more modern programming techniques, improve performance, and simplify our codebase.

Our Commitment to Open Source

We have been Linux users for as long as we have been building and selling hardware, and for a good while before that. It is what runs on many of our bench machines, build systems and servers. It is also, of course, what runs on the Raspberry Pi, so the choice was made for us the day we started designing boards for it.

Working with Linux and other open source software for years teaches you something about why open source matters. A board is only as useful as the code that drives it. If that code is a closed binary supplied by a manufacturer, then the useful life of the hardware is tied to how long that manufacturer stays interested in maintaining it. Kernels change, Python versions move on, and software nobody can read is software nobody can fix. We have been on the wrong end of that with other people's equipment often enough to be firm about not doing it to our customers.

So every library we publish is source, in full, on GitHub. If our ADC Pi code does something you did not expect, you can open the file and see exactly what it writes to the I2C bus. If we have made a mistake, you can point at the line. Several improvements in our libraries started as an issue or a pull request from someone who had read the code more carefully than we had.

All of our libraries are released under the MIT License. It is a short, permissive licence: you can use the code, change it, build it into your own projects and sell those projects, commercially or otherwise, without asking us and without any obligation to publish what you have written. The only condition is that the copyright and licence notice stays with the code. 

What Happens to the Python 2 Compatible Version?

We recognise that some projects may still rely on the older Python 2 compatible code. To ensure those users are not left behind, we have moved the last Python 2 compatible version of our libraries into a dedicated archive repository: https://github.com/abelectronicsuk/ABElectronics_Python2_Libraries.

This archive will remain available for anyone who still needs it, but it will not receive any further updates or new features. We recommend all users to update their projects to Python 3 wherever possible to benefit from future improvements.

Looking to the Future

Focusing solely on Python 3 will allow us to streamline our libraries, using features not available in Python 2. Over the coming months, we are planning to add new functionality and enhancements that simply would not have been possible while maintaining Python 2 compatibility.

If you have any suggestions for new features or improvements to our Python libraries, or any of the other software languages we support, we would love to hear from you.

Thank you for your continued support.

The AB Electronics UK Team