libfuncpy API

Contain functions.

libfuncpy.lib.ITE(iflogic, assertion, elselogic)

Apply ternary operator logic executing functions.

Functions should be preconfigured and accept no arguments.

Better if you see the code:

return iflogic() if assertion() else elselogic()

libfuncpy.lib.ITEX(x, iflogic, assertion, elselogic)

Apply ternary operator logic executing functions.

Functions should receive a single value: x.

Better if you see the code:

return iflogic(x) if assertion(x) else elselogic(x)

Parameters

x – The value to pass to each function.

libfuncpy.lib.chainf(init, *funcs)[source]

Run functions in sequence starting from an initial value.

Example

>>> chainf(2, [str, int, float])
2.0
libfuncpy.lib.chainfs(*funcs)[source]

Store functions be executed on a value.

Example

>>> do = chainfs(str, int, float)
>>> do(2)
2.0
libfuncpy.lib.consume(gen)[source]

Consume generator in a single statement.

Example

>>> consume(generator)
libfuncpy.lib.context_engine(func, exceptions, doerror, doelse, dofinally, *args, **kwargs)[source]

Make a context engine.

libfuncpy.lib.f1f2(f1, f2, *a, **k)[source]

Apply one function after the other.

Call f1 on the return value of f2.

Args and kwargs apply to f2.

Example

>>> f1f2(str, int, 2)
"2"
libfuncpy.lib.f2f1(f1, f2, *a, **k)[source]

Apply the second function after the first.

Call f2 on the return value of f1.

Args and kwargs apply to f1.

Example

>>> f2f1(str, int, 2)
2
libfuncpy.lib.flatlist(list_)[source]

Flat a list recursively.

This is a generator.

libfuncpy.lib.give(value)[source]

Preare a function to return a value when called.

Ignore *args and **kwargs.

Example

>>> true = give(True)
>>> true()
True
>>> five = give(5)
>>> five(4, 6, 7, 8, some_args='some string')
5
libfuncpy.lib.if_elif_else(value, condition_function_pair)[source]

Apply logic if condition is True.

Parameters
  • value (anything) – The initial value

  • condition_function_pair (tuple) – First element is the assertion function, second element is the logic function to execute if assertion is true.

Returns

The result of the first function for which assertion is true.

libfuncpy.lib.ite(iflogic, assertion, elselogic)

Apply ternary operator logic executing functions.

Functions should be preconfigured and accept no arguments.

Better if you see the code:

return iflogic() if assertion() else elselogic()

libfuncpy.lib.itev(x, iflogic, assertion, elselogic)

Apply ternary operator logic executing functions.

Functions should receive a single value: x.

Better if you see the code:

return iflogic(x) if assertion(x) else elselogic(x)

Parameters

x – The value to pass to each function.

libfuncpy.lib.make_iterable(value)[source]

Transform into an iterable.

Transforms a given value into an iterable if it is not. Else, return the value itself.

Example

>>> make_iterable(1)
[1]
>>> make_iterable([1])
[1]
libfuncpy.lib.mapc(f, *iterables)[source]

Consume map function.

Like map() but it is not a generator; map is consumed immediately.

libfuncpy.lib.pass_(value)[source]

Do nothing, just pass the value.

Example

>>> pass_(1)
1
libfuncpy.lib.raise_(exception, *ignore, **everything)[source]

Raise exception.

libfuncpy.lib.reduce_helper(value, f, *a, **k)[source]

Help in reduce.

Helper function when applying reduce to a list of functions.

Parameters
  • value (anything)

  • f (callable) – The function to call. This function receives value as first positional argument.

  • *a, **k – Args and kwargs passed to f.

libfuncpy.lib.ternary_operator(iflogic, assertion, elselogic)[source]

Apply ternary operator logic executing functions.

Functions should be preconfigured and accept no arguments.

Better if you see the code:

return iflogic() if assertion() else elselogic()

libfuncpy.lib.ternary_operator_v(x, iflogic, assertion, elselogic)[source]

Apply ternary operator logic executing functions.

Functions should receive a single value: x.

Better if you see the code:

return iflogic(x) if assertion(x) else elselogic(x)

Parameters

x – The value to pass to each function.

libfuncpy.lib.ternary_operator_x(x, iflogic, assertion, elselogic)

Apply ternary operator logic executing functions.

Functions should receive a single value: x.

Better if you see the code:

return iflogic(x) if assertion(x) else elselogic(x)

Parameters

x – The value to pass to each function.

libfuncpy.lib.vartial(func, *args, **keywords)[source]

Prepare a function with args and kwargs except for the first arg.

Functions like functools.partial except that the resulting preprepared function expects the first positional argument.

Example

>>> pow2 = vartial(math.pow, 2)
>>> pow2(3)
9
>>> pow2(4)
16

This is different from: >>> pow_base_3 = partial(math.pow, 3) >>> pow_base_3(2) 9 >>> pow_base_3(4) 81

libfuncpy.lib.whileloop(cond, func, do_stopiteration=<function give.<locals>.newfunc>, do_exhaust=<function give.<locals>.newfunc>)[source]

Execute while loop.

All function accept no arguments. If state needs to be evaluated, cond and func need to be synchronized.

Parameters
  • cond (callable) – The while loop condition.

  • func (callable) – The function to call on each while loop iteration.

  • do_stopiteration (callable) – The function to execute when func raises StopIteration error.

  • do_exhaust (callable) – The function to execute when while loop exhausts.

Returns

None