def get_filters(self, origin_scope=None): yield MergedFilter( ParserTreeFilter(parent_context=self.as_context(), origin_scope=origin_scope), GlobalNameFilter(self.as_context(), self.tree_node), ) yield DictFilter(self.sub_modules_dict()) yield DictFilter(self._module_attributes_dict()) yield from self.iter_star_filters()
def get_filters(self, origin_scope=None): yield DictFilter(dict( name=compiled.create_simple_object(self.inference_state, self._name.string_name).name, value=self._name, )) for f in self._get_wrapped_value().get_filters(): yield f
def wrapper(cls, metaclasses): for metaclass in metaclasses: if metaclass.py__name__() == 'EnumMeta' \ and metaclass.get_root_context().py__name__() == 'enum': filter_ = ParserTreeFilter(parent_context=cls.as_context()) return [DictFilter({ name.string_name: EnumInstance(cls, name).name for name in filter_.values() })] return func(cls, metaclasses)
def _new_dict_filter(cls): filters = cls.get_filters(is_instance=True, include_metaclasses=False) dct = { name.string_name: DjangoModelName(cls, name) for filter_ in reversed(list(filters)) for name in filter_.values() } manager = _create_manager_for(cls) if manager: dct['objects'] = manager.name return DictFilter(dct)
def _new_dict_filter(cls, is_instance): filters = list( cls.get_filters(is_instance=is_instance, include_metaclasses=False, include_type_when_class=False)) dct = { name.string_name: DjangoModelName(cls, name, is_instance) for filter_ in reversed(filters) for name in filter_.values() } if is_instance: # Replace the objects with a name that amounts to nothing when accessed # in an instance. This is not perfect and still completes "objects" in # that case, but it at least not inferes stuff like `.objects.filter`. # It would be nicer to do that in a better way, so that it also doesn't # show up in completions, but it's probably just not worth doing that # for the extra amount of work. dct['objects'] = EmptyCompiledName(cls.inference_state, 'objects') return DictFilter(dct)
def get_filters(self, origin_scope=None): yield DictFilter(self.sub_modules_dict())
def _new_dict_filter(cls): filter_ = ParserTreeFilter(parent_context=cls.as_context()) return DictFilter({ name.string_name: DjangoModelName(cls, name) for name in filter_.values() })