At ICRAR we develop and maintain the New Generation Archiving System – NGAS (currently handling hundreds of millions of files and tens of PetaBytes of astronomical data). NGAS is used by several observatories and facilities worldwide, including the MWA and ASKAP observatories located in Western Australia.
NGAS is fully written in Python. In particular, it uses Python 2.7, which will stop being maintained in 2020. On the other hand, Python 3 (the latest major version of the language) will continue to be maintained. Python 3 is highly, but not fully, compatible with Python 2; thus it requires some effort to port code from one version to another, or (also possible) to support both versions at the same time.
The aim of this project is to make NGAS compatible with Python 3, ensuring that it remains usable and competitive in the next years. This will also allow us to start using Python 3-specific features that would improve the system even further in the future. Retaining Python 2.7 compatibility can also be optionally addressed. If there is time left, other sub-projects can be carried out as well.
This project is a great opportunity for students to get involved in the development and maintenance of a real, production-level, high-impact software product of a considerable size and complexity, to become familiar with common software industry practices and tools, and to greatly increase their expertise about core Python concepts. Recently Python reached the top of the IEEE Spectrum list of programming languages, indicating that it became more popular than C, Java, C++ and C#.