Esempio n. 1
0
 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()
Esempio n. 2
0
 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
Esempio n. 3
0
 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)
Esempio n. 4
0
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)
Esempio n. 5
0
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)
Esempio n. 6
0
File: namespace.py Progetto: pg83/zm
 def get_filters(self, origin_scope=None):
     yield DictFilter(self.sub_modules_dict())
Esempio n. 7
0
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()
    })