This project aims to improve Ceph’s Python infrastructure, making the codebase clean, modern, and maintainable. A major part of this improvement would be migrating to advanced Pythonic idioms and porting all the components written in Python 2 to the new, and more feature-rich Python 3 version. This will be done while also maintaining support for Python 2 using a project-wide compatibility layer.
With Ceph’s growing codebase and complexity, it is imperative to structure the Python code into independent packages for easy maintenance. The build system of Cython bindings for Ceph libraries like RADOS, RBD, and Ceph FS will be improved, making them ready to be deployed to PyPI. Some other open-ended goals of the project are to refactor and rewrite components of Ceph which have seen very little maintenance in the past.