PHP 8.2.30
Preview: _functools.py Size: 1.73 KB
/opt/alt/python312/lib/python3.12/site-packages/setuptools/_distutils/_functools.py

import collections.abc
import functools


# from jaraco.functools 3.5
def pass_none(func):
    """
    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)
    """

    @functools.wraps(func)
    def wrapper(param, *args, **kwargs):
        if param is not None:
            return func(param, *args, **kwargs)

    return wrapper


# from jaraco.functools 4.0
@functools.singledispatch
def _splat_inner(args, func):
    """Splat args to func."""
    return func(*args)


@_splat_inner.register
def _(args: collections.abc.Mapping, func):
    """Splat kargs to func as kwargs."""
    return func(**args)


def splat(func):
    """
    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}
    """
    return functools.wraps(func)(functools.partial(_splat_inner, func=func))

Directory Contents

Dirs: 2 × Files: 35

Name Size Perms Modified Actions
command DIR
- drwxr-xr-x 2026-02-10 08:06:45
Edit Download
- drwxr-xr-x 2026-02-10 08:06:45
Edit Download
8.37 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
14.38 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
47.50 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
17.44 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
4.80 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
9.18 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
11.64 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
139 B lrw-r--r-- 2026-01-08 18:42:35
Edit Download
349 B lrw-r--r-- 2026-01-08 18:42:35
Edit Download
7.88 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
49.00 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
3.50 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
10.03 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
17.48 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
13.39 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
8.02 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
1.17 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
29.48 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
23.02 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
217 B lrw-r--r-- 2026-01-08 18:42:35
Edit Download
1.92 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
3.41 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
18.48 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
11.80 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
15.24 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
17.68 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
12.65 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
5.08 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
5.18 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
1.73 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
43 B lrw-r--r-- 2026-01-08 18:42:35
Edit Download
239 B lrw-r--r-- 2026-01-08 18:42:35
Edit Download
2.35 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
19.16 KB lrw-r--r-- 2026-01-08 18:42:35
Edit Download
359 B lrw-r--r-- 2026-01-08 18:42:35
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).