Skip to content

bagrat/multimple

Repository files navigation

multimple

Build Status Code Health Coverage Status GitHub license

Multimple provides a decorator that lets you define multiple implementations a Python class and use them in an easy way. Ok, less words, more code:

from multimple import multimple

@multimple
class YourClass(object):
    @multimple('impl1')
    def your_function(self):
        print('This is impl1')

    @your_function.multimple('impl2')
    def your_function(self):
        print('This is impl2')

Now go ahead and use your beautiful new class:

>>> Impl1 = YourClass.multimple('impl1')
>>> Impl2 = YourClass.multimple('impl2')
>>> Impl3 = YourClass.multimple('impl3')
>>> Impl1().your_function()
This is impl1
>>> Impl2().your_function()
This is impl2
>>> Impl3().your_function()
Traceback (most recent call last):
    ...
NotImplementedError: 'your_function' is not implemented for 'impl3'

About

Multiple implementations to your Python classes

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages