mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-07 22:44:27 +08:00
Some other small refactorings
This commit is contained in:
@@ -58,7 +58,7 @@ def _infer_scalar_field(cls, field, field_tree_instance):
|
|||||||
module = cls.inference_state.import_module((module_name,))
|
module = cls.inference_state.import_module((module_name,))
|
||||||
|
|
||||||
attribute, = module.py__getattribute__(attribute_name)
|
attribute, = module.py__getattribute__(attribute_name)
|
||||||
return DjangoModelField(attribute, field).name
|
return DjangoModelField(attribute, field)
|
||||||
|
|
||||||
|
|
||||||
def _infer_field(cls, field):
|
def _infer_field(cls, field):
|
||||||
@@ -76,9 +76,9 @@ def _infer_field(cls, field):
|
|||||||
if value.name.string_name == 'str':
|
if value.name.string_name == 'str':
|
||||||
foreign_key_class_name = value.get_safe_value()
|
foreign_key_class_name = value.get_safe_value()
|
||||||
for v in cls.parent_context.py__getattribute__(foreign_key_class_name):
|
for v in cls.parent_context.py__getattribute__(foreign_key_class_name):
|
||||||
return DjangoModelField(v, field).name
|
return DjangoModelField(v, field)
|
||||||
else:
|
else:
|
||||||
return DjangoModelField(value, field).name
|
return DjangoModelField(value, field)
|
||||||
|
|
||||||
debug.dbg('django plugin: fail to infer `%s` from class `%s`',
|
debug.dbg('django plugin: fail to infer `%s` from class `%s`',
|
||||||
field.string_name, cls.name.string_name)
|
field.string_name, cls.name.string_name)
|
||||||
@@ -86,9 +86,13 @@ def _infer_field(cls, field):
|
|||||||
|
|
||||||
|
|
||||||
def _new_dict_filter(cls):
|
def _new_dict_filter(cls):
|
||||||
filter_ = ParserTreeFilter(parent_context=cls.as_context())
|
def iterate():
|
||||||
res = {f.string_name: _infer_field(cls, f) for f in filter_.values()}
|
filter_ = ParserTreeFilter(parent_context=cls.as_context())
|
||||||
return DictFilter({x: y for x, y in res.items() if y is not None})
|
for f in filter_.values():
|
||||||
|
django_field = _infer_field(cls, f)
|
||||||
|
if django_field is not None:
|
||||||
|
yield f.string_name, django_field.name
|
||||||
|
return DictFilter(dict(iterate()))
|
||||||
|
|
||||||
|
|
||||||
def get_metaclass_filters(func):
|
def get_metaclass_filters(func):
|
||||||
|
|||||||
Reference in New Issue
Block a user