Build plugins using Pluggy

Kracekumar Ramaraju (~kracekumar)


2

Votes

Description:

Summary

As a programmer, we build applications all the time. The application design needs to be scalable, manageable, testable, and extensible. The plugins are one of the ways to make the application components extensible.

The dynamic nature of Python and packaging tools allows the host program to register the thrid-party plugins and run the plugins during the life-cycle of the program.

Pluggy is a plugin management and hook calling system developed for the pytest. It offers plugin management to any python project using setup.py entry points or directly registering the plugin.

Pytest plugins are developed using pluggy. Pluggy is a powerful framework for developing the plugin architecture.

This talk will provide an introduction to pluggy framework, concepts, and show how to build an application using pluggy.

Talk outline

  • Introduction and working of the Plugin system
  • Explaining Pluggy library
    • What is the specification with an example?
    • What is the implementation with an example?
    • How to register the plugin?
  • Running the plugin system hook with an example
  • Do's and Don't's with pluggy
  • Testing the plugin system
  • Conclusion

Audience Talkaway

  1. What is the plugin system?
  2. Why one should consider using plugin architecture?
  3. How to use pluggy to build a plugin system?

Links in the description

Prerequisites:

  • Familiarity with Python
  • An understanding of how Python setup.py works - https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins

Content URLs:

  • Slides: Coming Soon
  • GH Repo - Coming Soon

Speaker Info:

I'm Kracekumar and been using Python for a long time for fun, social causes, and profit. I work as a data engineer.

Speaker Links:

Python introduced Type Hints a few years ago, I gave a talk about using Python Type hints at work in PySangamam Conference in Chennai - Python Type hints Talk Video.

Section: Others
Type: Talks
Target Audience: Intermediate
Last Updated: