A simple, class based dispatcher
Callouts - a minimalist dispatch system
A python module implementing lose, class-based coupling.
Imagine we had an application that checks weather for one place, but using multiple service. The functionality to get weather for a specific service could be implemented in individual modules.
To implement this with
callouts, we first need to implement the extensibility base by creating a class with the
@callouts.base class Weather: def get_for(location: str) -> str: pass
Now, individual implementations can be added
simply by extending the class and implementing the
class FirstWeatherService(Weather): def get_for(location: str) -> str: return 'sunny'
class SecondWeatherService(Weather): def get_for(location: str) -> str: return 'cloudy'
with those definition in place, as soon as the modes are loaded it is possible to get both weathers by calling the
get_for method on the
will print out
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.