__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ 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
"""
Classes Without Boilerplate
"""
from functools import partial
from typing import Callable, Literal, Protocol
from . import converters, exceptions, filters, setters, validators
from ._cmp import cmp_using
from ._config import get_run_validators, set_run_validators
from ._funcs import asdict, assoc, astuple, has, resolve_types
from ._make import (
NOTHING,
Attribute,
Converter,
Factory,
_Nothing,
attrib,
attrs,
evolve,
fields,
fields_dict,
make_class,
validate,
)
from ._next_gen import define, field, frozen, mutable
from ._version_info import VersionInfo
s = attributes = attrs
ib = attr = attrib
dataclass = partial(attrs, auto_attribs=True) # happy Easter ;)
class AttrsInstance(Protocol):
pass
NothingType = Literal[_Nothing.NOTHING]
__all__ = [
"NOTHING",
"Attribute",
"AttrsInstance",
"Converter",
"Factory",
"NothingType",
"asdict",
"assoc",
"astuple",
"attr",
"attrib",
"attributes",
"attrs",
"cmp_using",
"converters",
"define",
"evolve",
"exceptions",
"field",
"fields",
"fields_dict",
"filters",
"frozen",
"get_run_validators",
"has",
"ib",
"make_class",
"mutable",
"resolve_types",
"s",
"set_run_validators",
"setters",
"validate",
"validators",
]
def _make_getattr(mod_name: str) -> Callable:
"""
Create a metadata proxy for packaging information that uses *mod_name* in
its warnings and errors.
"""
def __getattr__(name: str) -> str:
if name not in ("__version__", "__version_info__"):
msg = f"module {mod_name} has no attribute {name}"
raise AttributeError(msg)
from importlib.metadata import metadata
meta = metadata("attrs")
if name == "__version_info__":
return VersionInfo._from_version_string(meta["version"])
return meta["version"]
return __getattr__
__getattr__ = _make_getattr(__name__)
| 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 |
|