Pylint Workshop

Pylint is the most popular Python source code analyzer which looks for programming errors, helps enforce a coding standard and detects some code smells. It is possible to write plugins to add your own checks.


  • To understand how a pylint plugin works
  • To get some hands-on experience with writing plugins
  • To be able to write a non-complex plugin by the end of the workshop


  • Introduction to how pylint works
  • Implementing a plugin skeleton - hands-on exercise
  • Invoking the plugin - hands-on exercise
  • Parsing Abstract Syntax Trees in the Python shell – hands-on exercise
  • Putting together a minimalistic plugin - hands-on exercise

  • Formulating (your) ideas into actionable goals

  • Writing code and code review - hands-on exercise
  • Testing your plugin

Target audience

Developers who work with Python (and/or Django) and are fans of static analytic tools and/or QA engineers who work with the project source code directly! In order to get the maximum of this workshop you need to have moderate skills in programming with Python!

Technical requirements

  • Python 3.6 installed and running
  • Text editor or IDE of your choice – you must know how to use them !
  • virtualenv (virtualenv-wrapper) tools installed and running so you can configure a working environment for your pylint plugins
  • pylint >= 1.8 installed inside the virtualenv

Try to identify code patterns which are not detected by standard pylint checks so that you can write a plugin for them. Practice patters will be provided by trainer.

Try to keep the simplest checks at the top of your list and the more complex ones at the bottom.


Alexander Todorov – a Senior QA engineer at Red Hat with lots of experience in test automation and Python. Alex is also the current maintainer of pylint-django and a frequent contributor to pylint.


  • Corporate training: 1000 EUR/day, up to 10 people
  • Conference workshop: travel and hotel expenses only


  • April, Sofia, Bulgaria for SkyScanner - TBC
  • 19-20 May 2018, Tirana, Albania for OSCAL'18 - confirmed
  • 26-27 May 2018, Heidelberg, Germany for DjangoCon Europe - confirmed
  • 3rd June 2018, Prague, Czech Republic for PyConCZ - confirmed
  • July 2018, Edinburgh, UK for EuroPython - TBC
  • September 2018, Belgrade, Serbia - TBC