cfme.utils.varmeth module

Method variant decorator. You specify the desired method variant by a kwarg.

from cfme.utils.varmeth import variable

class SomeClass(object):
    secret = 42

    @variable
    def mymethod(self):
        print("I am default!")

    @mymethod.variant("foo", "foo_too")
    def i_foo(self):
        print("I foo!")

    @mymethod.variant("bar")
    def in_bar(self):
        print("In bar!")

    @variable(alias="foo")
    def myfoo(self):
        print("foo!")

s = SomeClass()
s.mymethod()  # => I am default!
s.mymethod(method="moo")  # => I am default!
s.mymethod(method="foo")  # => I foo!
s.mymethod(method="foo_too")  # => I foo!
s.mymethod(method="bar")  # => In bar!
s.mymethod(method="baz")  # => AttributeError
s.myfoo()  # => foo!
s.myfoo(method="foo")  # => foo!
Original idea:
Pete Savage
Implementation:
Milan Falešník
class cfme.utils.varmeth.variable(*args, **kwargs)[source]

Bases: object

Create a new variable method.

variant(*names)[source]

Register a new variant of a method under a name.