mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-06 22:14:27 +08:00
Fix dataclass decorator other parameters
This commit is contained in:
@@ -613,6 +613,9 @@ def _dataclass(value, arguments, callback):
|
|||||||
# The decorator function from dataclass_transform acting as the
|
# The decorator function from dataclass_transform acting as the
|
||||||
# dataclass decorator.
|
# dataclass decorator.
|
||||||
and not isinstance(value, Decoratee)
|
and not isinstance(value, Decoratee)
|
||||||
|
# The decorator function from dataclass_transform acting as the
|
||||||
|
# dataclass decorator with customized parameters
|
||||||
|
and not isinstance(value, DataclassDecorator)
|
||||||
)
|
)
|
||||||
|
|
||||||
return ValueSet(
|
return ValueSet(
|
||||||
|
|||||||
@@ -471,8 +471,7 @@ dataclass_transform_cases = [
|
|||||||
t: int
|
t: int
|
||||||
p = 5
|
p = 5
|
||||||
class X(ModelBase):'''), [], True],
|
class X(ModelBase):'''), [], True],
|
||||||
# 3/ Init tweaks
|
# 3/ Init custom init
|
||||||
# custom init
|
|
||||||
[dedent('''
|
[dedent('''
|
||||||
@dataclass_transform()
|
@dataclass_transform()
|
||||||
class Y():
|
class Y():
|
||||||
@@ -482,21 +481,22 @@ dataclass_transform_cases = [
|
|||||||
def __init__(self, toto: str):
|
def __init__(self, toto: str):
|
||||||
pass
|
pass
|
||||||
'''), ["toto"], False],
|
'''), ["toto"], False],
|
||||||
# Class based init=false
|
# 4/ init=false
|
||||||
|
# Class based
|
||||||
[dedent('''
|
[dedent('''
|
||||||
@dataclass_transform
|
@dataclass_transform
|
||||||
class Y():
|
class Y():
|
||||||
y: int
|
y: int
|
||||||
z = 5
|
z = 5
|
||||||
class X(Y, init=False):'''), [], False],
|
class X(Y, init=False):'''), [], False],
|
||||||
# Decorator based init=false
|
# Decorator based
|
||||||
[dedent('''
|
[dedent('''
|
||||||
@dataclass_transform
|
@dataclass_transform
|
||||||
def create_model():
|
def create_model():
|
||||||
pass
|
pass
|
||||||
@create_model(init=False)
|
@create_model(init=False)
|
||||||
class X:'''), [], False],
|
class X:'''), [], False],
|
||||||
# Metaclass based init=false
|
# Metaclass based
|
||||||
[dedent('''
|
[dedent('''
|
||||||
@dataclass_transform
|
@dataclass_transform
|
||||||
class ModelMeta():
|
class ModelMeta():
|
||||||
@@ -506,6 +506,31 @@ dataclass_transform_cases = [
|
|||||||
t: int
|
t: int
|
||||||
p = 5
|
p = 5
|
||||||
class X(ModelBase, init=False):'''), [], False],
|
class X(ModelBase, init=False):'''), [], False],
|
||||||
|
# 4/ Other parameters
|
||||||
|
# Class based
|
||||||
|
[dedent('''
|
||||||
|
@dataclass_transform
|
||||||
|
class Y():
|
||||||
|
y: int
|
||||||
|
z = 5
|
||||||
|
class X(Y, eq=True):'''), [], True],
|
||||||
|
# Decorator based
|
||||||
|
[dedent('''
|
||||||
|
@dataclass_transform
|
||||||
|
def create_model():
|
||||||
|
pass
|
||||||
|
@create_model(eq=True)
|
||||||
|
class X:'''), [], True],
|
||||||
|
# Metaclass based
|
||||||
|
[dedent('''
|
||||||
|
@dataclass_transform
|
||||||
|
class ModelMeta():
|
||||||
|
y: int
|
||||||
|
z = 5
|
||||||
|
class ModelBase(metaclass=ModelMeta):
|
||||||
|
t: int
|
||||||
|
p = 5
|
||||||
|
class X(ModelBase, eq=True):'''), [], True],
|
||||||
]
|
]
|
||||||
|
|
||||||
ids = [
|
ids = [
|
||||||
@@ -520,6 +545,9 @@ ids = [
|
|||||||
"base_transformed_init_false",
|
"base_transformed_init_false",
|
||||||
"decorator_transformed_init_false",
|
"decorator_transformed_init_false",
|
||||||
"metaclass_transformed_init_false",
|
"metaclass_transformed_init_false",
|
||||||
|
"base_transformed_other_parameters",
|
||||||
|
"decorator_transformed_other_parameters",
|
||||||
|
"metaclass_transformed_other_parameters",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user