Files
openide/python/testData/paramInfo/InitializingDataclassTransformFieldSpecifierKwOnlyArgumentBaseClassApiClassSpecifiers.py
Mikhail Golubev 740771109f PY-54560 Fix handling of class-based field specifiers, add extra tests
GitOrigin-RevId: e411c00a4aeb12da59787c0273e678cab70b3e07
2024-09-09 23:17:25 +00:00

84 lines
2.9 KiB
Python

from typing import dataclass_transform
class FieldKwOnlyDefaultFalse:
def __init__(self, kw_only: bool = False):
...
class FieldKwOnlyDefaultTrue:
def __init__(self, kw_only: bool = True):
...
class FieldNoOwnParams:
def __init__(self):
...
@dataclass_transform(field_specifiers=(FieldKwOnlyDefaultFalse, FieldKwOnlyDefaultTrue, FieldNoOwnParams))
class MyDataclass:
def __init_subclass__(cls, **kwargs):
...
@dataclass_transform(kw_only_default=True,
field_specifiers=(FieldKwOnlyDefaultFalse, FieldKwOnlyDefaultTrue, FieldNoOwnParams))
class MyDataclassKwOnlyDefaultTrue:
def __init_subclass__(cls, **kwargs):
...
@dataclass_transform(kw_only_default=False,
field_specifiers=(FieldKwOnlyDefaultFalse, FieldKwOnlyDefaultTrue, FieldNoOwnParams))
class MyDataclassKwOnlyDefaultFalse:
def __init_subclass__(cls, **kwargs):
...
class DataclassKwOnlyTrue(MyDataclass, kw_only=True):
not_kw_only_spec_default: int = FieldKwOnlyDefaultFalse()
not_kw_only_spec_arg: int = FieldKwOnlyDefaultTrue(kw_only=False)
kw_only_inferred: int = FieldNoOwnParams()
kw_only_spec_default: int = FieldKwOnlyDefaultTrue()
kw_only_spec_arg: int = FieldKwOnlyDefaultFalse(kw_only=True)
class DataclassKwOnlyDefaultTrue(MyDataclassKwOnlyDefaultTrue):
not_kw_only_spec_default: int = FieldKwOnlyDefaultFalse()
not_kw_only_spec_arg: int = FieldKwOnlyDefaultTrue(kw_only=False)
kw_only_inferred: int = FieldNoOwnParams()
kw_only_spec_default: int = FieldKwOnlyDefaultTrue()
kw_only_spec_arg: int = FieldKwOnlyDefaultFalse(kw_only=True)
class DataclassKwOnlyFalse(MyDataclass, kw_only=False):
not_kw_only_spec_default: int = FieldKwOnlyDefaultFalse()
not_kw_only_spec_arg: int = FieldKwOnlyDefaultTrue(kw_only=False)
not_kw_only_inferred: int = FieldNoOwnParams()
kw_only_spec_default: int = FieldKwOnlyDefaultTrue()
kw_only_spec_arg: int = FieldKwOnlyDefaultFalse(kw_only=True)
class DataclassKwOnlyDefaultFalse(MyDataclassKwOnlyDefaultFalse):
not_kw_only_spec_default: int = FieldKwOnlyDefaultFalse()
not_kw_only_spec_arg: int = FieldKwOnlyDefaultTrue(kw_only=False)
not_kw_only_inferred: int = FieldNoOwnParams()
kw_only_spec_default: int = FieldKwOnlyDefaultTrue()
kw_only_spec_arg: int = FieldKwOnlyDefaultFalse(kw_only=True)
class DataclassImplicitKwOnlyFalse(MyDataclass):
not_kw_only_spec_default: int = FieldKwOnlyDefaultFalse()
not_kw_only_spec_arg: int = FieldKwOnlyDefaultTrue(kw_only=False)
not_kw_only_inferred: int = FieldNoOwnParams()
kw_only_spec_default: int = FieldKwOnlyDefaultTrue()
kw_only_spec_arg: int = FieldKwOnlyDefaultFalse(kw_only=True)
DataclassKwOnlyTrue(<arg1>)
DataclassKwOnlyDefaultTrue(<arg2>)
DataclassKwOnlyFalse(<arg3>)
DataclassKwOnlyDefaultFalse(<arg4>)
DataclassImplicitKwOnlyFalse(<arg5>)