a0bi S SK rS SKrS r\R S 5 r\R S\R R 4S j5 r S r
g) Nc F ^ [ R " T 5 U 4S j5 nU$ )z
Wrap func so it's not called if its first param is None
>>> print_text = pass_none(print)
>>> print_text('text')
text
>>> print_text(None)
c $ > U b T" U /UQ70 UD6$ g )N )paramargskwargsfuncs ڙ/builddir/build/BUILDROOT/alt-python313-setuptools-69.0.2-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/setuptools/_distutils/_functools.pywrapperpass_none..wrapper s# //// ) functoolswraps)r r s ` r
pass_noner s' __T0 0 Nr
c U" U 6 $ )zSplat args to func.r r r s r
_splat_innerr s ;r
r c U" S0 U D6$ )zSplat kargs to func as kwargs.r r r s r
_r s <$<r
c h [ R " U 5 " [ R " [ U S95 $ )aM
Wrap func to expect its parameters to be passed positionally in a tuple.
Has a similar effect to that of ``itertools.starmap`` over
simple ``map``.
>>> import itertools, operator
>>> pairs = [(-1, 1), (0, 2)]
>>> _ = tuple(itertools.starmap(print, pairs))
-1 1
0 2
>>> _ = tuple(map(splat(print), pairs))
-1 1
0 2
The approach generalizes to other iterators that don't have a "star"
equivalent, such as a "starfilter".
>>> list(filter(splat(operator.add), pairs))
[(0, 2)]
Splat also accepts a mapping argument.
>>> def is_nice(msg, code):
... return "smile" in msg or code == 0
>>> msgs = [
... dict(msg='smile!', code=20),
... dict(msg='error :(', code=1),
... dict(msg='unknown', code=0),
... ]
>>> for msg in filter(splat(is_nice), msgs):
... print(msg)
{'msg': 'smile!', 'code': 20}
{'msg': 'unknown', 'code': 0}
r )r r partialr r s r
splatr % s&