ubelt.util_func module

Helpers for functional programming

ubelt.util_func.identity(arg)[source]

The identity function. Simply returns its inputs.

Example

>>> assert identity(42) == 42
ubelt.util_func.inject_method(self, func, name=None)[source]

Injects a function into an object instance as a bound method

Parameters:
  • self (object) – instance to inject a function into
  • func (func) – the function to inject (must contain an arg for self)
  • name (str) – name of the method. optional. If not specified the name of the function is used.

Example

>>> class Foo(object):
>>>     def bar(self):
>>>         return 'bar'
>>> def baz(self):
>>>     return 'baz'
>>> self = Foo()
>>> assert self.bar() == 'bar'
>>> assert not hasattr(self, 'baz')
>>> inject_method(self, baz)
>>> assert not hasattr(Foo, 'baz'), 'should only change one instance'
>>> assert self.baz() == 'baz'
>>> inject_method(self, baz, 'bar')
>>> assert self.bar() == 'baz'