mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-07 22:44:27 +08:00
A small dataclass refactoring
This commit is contained in:
@@ -169,16 +169,13 @@ class ParamNameInterface(object):
|
|||||||
|
|
||||||
|
|
||||||
class BaseTreeParamName(ParamNameInterface, AbstractTreeName):
|
class BaseTreeParamName(ParamNameInterface, AbstractTreeName):
|
||||||
def get_default_node(self):
|
annotation_node = None
|
||||||
return None
|
default_node = None
|
||||||
|
|
||||||
def get_annotation_node(self):
|
|
||||||
return None
|
|
||||||
|
|
||||||
def to_string(self):
|
def to_string(self):
|
||||||
output = self._kind_string() + self.string_name
|
output = self._kind_string() + self.string_name
|
||||||
annotation = self.get_annotation_node()
|
annotation = self.annotation_node
|
||||||
default = self.get_default_node()
|
default = self.default_node
|
||||||
if annotation is not None:
|
if annotation is not None:
|
||||||
output += ': ' + annotation.get_code(include_prefix=False)
|
output += ': ' + annotation.get_code(include_prefix=False)
|
||||||
if default is not None:
|
if default is not None:
|
||||||
@@ -190,10 +187,12 @@ class ParamName(BaseTreeParamName):
|
|||||||
def _get_param_node(self):
|
def _get_param_node(self):
|
||||||
return search_ancestor(self.tree_name, 'param')
|
return search_ancestor(self.tree_name, 'param')
|
||||||
|
|
||||||
def get_annotation_node(self):
|
@property
|
||||||
|
def annotation_node(self):
|
||||||
return self._get_param_node().annotation
|
return self._get_param_node().annotation
|
||||||
|
|
||||||
def get_default_node(self):
|
@property
|
||||||
|
def default_node(self):
|
||||||
return self._get_param_node().default
|
return self._get_param_node().default
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|||||||
@@ -566,24 +566,18 @@ class DataclassSignature(AbstractSignature):
|
|||||||
class DataclassParamName(BaseTreeParamName):
|
class DataclassParamName(BaseTreeParamName):
|
||||||
def __init__(self, parent_context, tree_name, annotation_node, default_node):
|
def __init__(self, parent_context, tree_name, annotation_node, default_node):
|
||||||
super(DataclassParamName, self).__init__(parent_context, tree_name)
|
super(DataclassParamName, self).__init__(parent_context, tree_name)
|
||||||
self._annotation_node = annotation_node
|
self.annotation_node = annotation_node
|
||||||
self._default_node = default_node
|
self.default_node = default_node
|
||||||
|
|
||||||
def get_kind(self):
|
def get_kind(self):
|
||||||
return Parameter.POSITIONAL_OR_KEYWORD
|
return Parameter.POSITIONAL_OR_KEYWORD
|
||||||
#TODO get_param?
|
#TODO get_param?
|
||||||
|
|
||||||
def get_annotation_node(self):
|
|
||||||
return self._annotation_node
|
|
||||||
|
|
||||||
def get_default_node(self):
|
|
||||||
return self._default_node
|
|
||||||
|
|
||||||
def infer(self):
|
def infer(self):
|
||||||
if self._annotation_node is None:
|
if self.annotation_node is None:
|
||||||
return NO_CONTEXTS # TODO implement
|
return NO_CONTEXTS
|
||||||
else:
|
else:
|
||||||
return self.parent_context.eval_node(self._annotation_node)
|
return self.parent_context.eval_node(self.annotation_node)
|
||||||
|
|
||||||
|
|
||||||
class ItemGetterCallable(ContextWrapper):
|
class ItemGetterCallable(ContextWrapper):
|
||||||
|
|||||||
Reference in New Issue
Block a user