Creating the Dependency Provider

We will now need to expose our TemplateRenderer as a Nameko Dependency Provider. In the jinja2.py file we made earlier, update our imports to include the following:

from nameko.extensions import DependencyProvider 

Then add the following code:

class Jinja2(DependencyProvider): 
 
    def setup(self): 
        self.template_renderer = TemplateRenderer( 
            'temp_messenger', 'templates' 
        ) 
 
    def get_dependency(self, worker_ctx): 
        return self.template_renderer 

This is extremely similar to our previous Redis dependency. We specify a setup method that creates an instance of our TemplateRenderer and a get_dependency method that will inject it into the worker.

This is now ready to be used by our WebServer.

Get Python Programming Blueprints now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.