mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-06 05:54:25 +08:00
Fix attrs + remove dataclass_transform init=false tests
This commit is contained in:
@@ -624,8 +624,11 @@ def _dataclass(value, arguments, callback):
|
||||
)
|
||||
]
|
||||
)
|
||||
else:
|
||||
# Decorator customization
|
||||
elif c.is_function():
|
||||
# dataclass_transform on a decorator equivalent of @dataclass
|
||||
return ValueSet([value])
|
||||
elif value.name.string_name != "dataclass_transform":
|
||||
# dataclass (or like) decorator customization
|
||||
return ValueSet(
|
||||
[
|
||||
DataclassDecorator(
|
||||
@@ -634,6 +637,9 @@ def _dataclass(value, arguments, callback):
|
||||
)
|
||||
]
|
||||
)
|
||||
else:
|
||||
# dataclass_transform decorator customization; nothing impactful
|
||||
return ValueSet([value])
|
||||
return NO_VALUES
|
||||
|
||||
|
||||
@@ -796,17 +802,6 @@ _implemented = {
|
||||
# For now this works at least better than Jedi trying to understand it.
|
||||
'dataclass': _dataclass
|
||||
},
|
||||
# attrs exposes declaration interface roughly compatible with dataclasses
|
||||
# via attrs.define, attrs.frozen and attrs.mutable
|
||||
# https://www.attrs.org/en/stable/names.html
|
||||
'attr': {
|
||||
'define': _dataclass,
|
||||
'frozen': _dataclass,
|
||||
},
|
||||
'attrs': {
|
||||
'define': _dataclass,
|
||||
'frozen': _dataclass,
|
||||
},
|
||||
'os.path': {
|
||||
'dirname': _create_string_input_function(os.path.dirname),
|
||||
'abspath': _create_string_input_function(os.path.abspath),
|
||||
|
||||
@@ -432,7 +432,7 @@ dataclass_transform_cases = [
|
||||
# Base Class
|
||||
['@dataclass_transform\nclass X:', [], False],
|
||||
# Base Class with params
|
||||
['@dataclass_transform(eq=True)\nclass X:', [], False],
|
||||
['@dataclass_transform(eq_default=True)\nclass X:', [], False],
|
||||
# Subclass
|
||||
[dedent('''
|
||||
class Y():
|
||||
@@ -447,6 +447,13 @@ dataclass_transform_cases = [
|
||||
y: int
|
||||
z = 5
|
||||
class X(Y):'''), [], True],
|
||||
# Class based with params
|
||||
[dedent('''
|
||||
@dataclass_transform(eq_default=True)
|
||||
class Y():
|
||||
y: int
|
||||
z = 5
|
||||
class X(Y):'''), [], True],
|
||||
# Decorator based
|
||||
[dedent('''
|
||||
@dataclass_transform
|
||||
@@ -465,19 +472,6 @@ dataclass_transform_cases = [
|
||||
p = 5
|
||||
class X(ModelBase):'''), [], True],
|
||||
# 3/ Init tweaks
|
||||
# init=False
|
||||
[dedent('''
|
||||
@dataclass_transform(init=False)
|
||||
class Y():
|
||||
y: int
|
||||
z = 5
|
||||
class X(Y):'''), [], False],
|
||||
[dedent('''
|
||||
@dataclass_transform(eq=True, init=False)
|
||||
class Y():
|
||||
y: int
|
||||
z = 5
|
||||
class X(Y):'''), [], False],
|
||||
# custom init
|
||||
[dedent('''
|
||||
@dataclass_transform()
|
||||
@@ -495,10 +489,9 @@ ids = [
|
||||
"transformer_with_params",
|
||||
"subclass_transformer",
|
||||
"base_transformed",
|
||||
"base_transformed_with_params",
|
||||
"decorator_transformed",
|
||||
"metaclass_transformed",
|
||||
"init_false",
|
||||
"init_false_multiple",
|
||||
"custom_init",
|
||||
]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user