__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
# SPDX-License-Identifier: MIT
"""
Commonly useful filters for `attrs.asdict` and `attrs.astuple`.
"""
from ._make import Attribute
def _split_what(what):
"""
Returns a tuple of `frozenset`s of classes and attributes.
"""
return (
frozenset(cls for cls in what if isinstance(cls, type)),
frozenset(cls for cls in what if isinstance(cls, str)),
frozenset(cls for cls in what if isinstance(cls, Attribute)),
)
def include(*what):
"""
Create a filter that only allows *what*.
Args:
what (list[type, str, attrs.Attribute]):
What to include. Can be a type, a name, or an attribute.
Returns:
Callable:
A callable that can be passed to `attrs.asdict`'s and
`attrs.astuple`'s *filter* argument.
.. versionchanged:: 23.1.0 Accept strings with field names.
"""
cls, names, attrs = _split_what(what)
def include_(attribute, value):
return (
value.__class__ in cls
or attribute.name in names
or attribute in attrs
)
return include_
def exclude(*what):
"""
Create a filter that does **not** allow *what*.
Args:
what (list[type, str, attrs.Attribute]):
What to exclude. Can be a type, a name, or an attribute.
Returns:
Callable:
A callable that can be passed to `attrs.asdict`'s and
`attrs.astuple`'s *filter* argument.
.. versionchanged:: 23.3.0 Accept field name string as input argument
"""
cls, names, attrs = _split_what(what)
def exclude_(attribute, value):
return not (
value.__class__ in cls
or attribute.name in names
or attribute in attrs
)
return exclude_
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| __init__.py | File | 2.01 KB | 0644 |
|
| __init__.pyi | File | 11.02 KB | 0644 |
|
| _cmp.py | File | 4.03 KB | 0644 |
|
| _cmp.pyi | File | 368 B | 0644 |
|
| _compat.py | File | 2.64 KB | 0644 |
|
| _config.py | File | 843 B | 0644 |
|
| _funcs.py | File | 15.48 KB | 0644 |
|
| _make.py | File | 91.95 KB | 0644 |
|
| _next_gen.py | File | 23.82 KB | 0644 |
|
| _typing_compat.pyi | File | 469 B | 0644 |
|
| _version_info.py | File | 2.07 KB | 0644 |
|
| _version_info.pyi | File | 209 B | 0644 |
|
| converters.py | File | 3.77 KB | 0644 |
|
| converters.pyi | File | 643 B | 0644 |
|
| exceptions.py | File | 1.93 KB | 0644 |
|
| exceptions.pyi | File | 539 B | 0644 |
|
| filters.py | File | 1.75 KB | 0644 |
|
| filters.pyi | File | 208 B | 0644 |
|
| py.typed | File | 0 B | 0644 |
|
| setters.py | File | 1.58 KB | 0644 |
|
| setters.pyi | File | 584 B | 0644 |
|
| validators.py | File | 19.58 KB | 0644 |
|
| validators.pyi | File | 2.54 KB | 0644 |
|