aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/attrs/py3/attr/_funcs.py
diff options
context:
space:
mode:
authorAlexSm <alex@ydb.tech>2024-01-18 11:28:56 +0100
committerGitHub <noreply@github.com>2024-01-18 11:28:56 +0100
commit9d0a3761b3201e0d9db879a7adf91876ebdb0564 (patch)
tree541d11ac878c18efd7ebca81e35112aa0fef995b /contrib/python/attrs/py3/attr/_funcs.py
parent404ef8886ecc9736bc58ade6da2fbd83b486a408 (diff)
downloadydb-9d0a3761b3201e0d9db879a7adf91876ebdb0564.tar.gz
Library import 8 (#1074)
* Library import 8 * Add contrib/libs/cxxsupp/libcxx/include/__verbose_abort
Diffstat (limited to 'contrib/python/attrs/py3/attr/_funcs.py')
-rw-r--r--contrib/python/attrs/py3/attr/_funcs.py82
1 files changed, 44 insertions, 38 deletions
diff --git a/contrib/python/attrs/py3/attr/_funcs.py b/contrib/python/attrs/py3/attr/_funcs.py
index 7f5d9610f3..a888991d98 100644
--- a/contrib/python/attrs/py3/attr/_funcs.py
+++ b/contrib/python/attrs/py3/attr/_funcs.py
@@ -72,19 +72,25 @@ def asdict(
)
elif isinstance(v, (tuple, list, set, frozenset)):
cf = v.__class__ if retain_collection_types is True else list
- rv[a.name] = cf(
- [
- _asdict_anything(
- i,
- is_key=False,
- filter=filter,
- dict_factory=dict_factory,
- retain_collection_types=retain_collection_types,
- value_serializer=value_serializer,
- )
- for i in v
- ]
- )
+ items = [
+ _asdict_anything(
+ i,
+ is_key=False,
+ filter=filter,
+ dict_factory=dict_factory,
+ retain_collection_types=retain_collection_types,
+ value_serializer=value_serializer,
+ )
+ for i in v
+ ]
+ try:
+ rv[a.name] = cf(items)
+ except TypeError:
+ if not issubclass(cf, tuple):
+ raise
+ # Workaround for TypeError: cf.__new__() missing 1 required
+ # positional argument (which appears, for a namedturle)
+ rv[a.name] = cf(*items)
elif isinstance(v, dict):
df = dict_factory
rv[a.name] = df(
@@ -241,22 +247,26 @@ def astuple(
)
elif isinstance(v, (tuple, list, set, frozenset)):
cf = v.__class__ if retain is True else list
- rv.append(
- cf(
- [
- astuple(
- j,
- recurse=True,
- filter=filter,
- tuple_factory=tuple_factory,
- retain_collection_types=retain,
- )
- if has(j.__class__)
- else j
- for j in v
- ]
+ items = [
+ astuple(
+ j,
+ recurse=True,
+ filter=filter,
+ tuple_factory=tuple_factory,
+ retain_collection_types=retain,
)
- )
+ if has(j.__class__)
+ else j
+ for j in v
+ ]
+ try:
+ rv.append(cf(items))
+ except TypeError:
+ if not issubclass(cf, tuple):
+ raise
+ # Workaround for TypeError: cf.__new__() missing 1 required
+ # positional argument (which appears, for a namedturle)
+ rv.append(cf(*items))
elif isinstance(v, dict):
df = v.__class__ if retain is True else dict
rv.append(
@@ -344,9 +354,8 @@ def assoc(inst, **changes):
for k, v in changes.items():
a = getattr(attrs, k, NOTHING)
if a is NOTHING:
- raise AttrsAttributeNotFoundError(
- f"{k} is not an attrs attribute on {new.__class__}."
- )
+ msg = f"{k} is not an attrs attribute on {new.__class__}."
+ raise AttrsAttributeNotFoundError(msg)
_obj_setattr(new, k, v)
return new
@@ -379,17 +388,14 @@ def evolve(*args, **changes):
try:
(inst,) = args
except ValueError:
- raise TypeError(
- f"evolve() takes 1 positional argument, but {len(args)} "
- "were given"
- ) from None
+ msg = f"evolve() takes 1 positional argument, but {len(args)} were given"
+ raise TypeError(msg) from None
else:
try:
inst = changes.pop("inst")
except KeyError:
- raise TypeError(
- "evolve() missing 1 required positional argument: 'inst'"
- ) from None
+ msg = "evolve() missing 1 required positional argument: 'inst'"
+ raise TypeError(msg) from None
import warnings