Today was the second day of the 10th anniversary Pylint sprint in Logilab's Toulouse office.
This morning, we started with a presentation by myself about how the inference engine works in astroid (former astng). Then we started thinking all together about how we should change its API to be able to plug more information during the inference process. The first use-case we wanted to assert was namedtuple, as explained in http://www.logilab.org/ticket/8796.
We ended up by addressing it by:
- enhancing the existing transformation feature so one may register a transformation function on any node rather than on a module node only;
- being able to specify, on a node instance, a custom inference function to use instead of the default (class) implementation.
We would then be able to customize both the tree structure and the inference process and so to resolve the cases we were targeting.
Once this was sufficiently sketched out, everyone got his own tasks to do. Here is a quick summary of what has been achieved today:
- Anthony resumed the check_messages thing and finished it for the simple cases, then he started on having a template for text reported,
- Julien and David made a lot of progress on the Python 3.3 compatibility, though not enough to get the full green test suite,
- Torsten continued backporting stuff from gpylint, all of them having been integrated by the end of the day,
- Sylvain implemented the new transformation API and had the namedtuple proof of concept working, and even some documentation! Now this have to be tested for more real-world uses.
So things are going really well, and see you tomorrow for even more improvements to pylint!