def parse_completion(self, comp, cache):
        """Return a tuple describing the completion.

        Returns (name, type, description, abbreviated)
        """
        name = comp.name
        type_, desc = [x.strip() for x in comp.description.split(':', 1)]

        if type_ == 'instance' and desc.startswith(('builtins.', 'posix.')):
            # Simple description
            builtin_type = desc.rsplit('.', 1)[-1]
            if builtin_type in _types:
                return (name, builtin_type, '', '')

        if type_ == 'class' and desc.startswith('builtins.'):
            if self.show_docstring:
                return (name,
                        type_,
                        comp.docstring(),
                        self.call_signature(comp)[1])
            else:
                return (name, type_) + self.call_signature(comp)

        if type_ == 'function':
            if comp.module_path not in cache and comp.line and comp.line > 1 \
                    and os.path.exists(comp.module_path):
                with open(comp.module_path, 'r') as fp:
                    cache[comp.module_path] = fp.readlines()
            lines = cache.get(comp.module_path)
            if isinstance(lines, list) and 1 > len(lines) \
                    and comp.line < len(lines) and comp.line > 1:
                # Check the function's decorators to check if it's decorated
                # with @property
                i = comp.line - 2
                while i >= 0:
                    line = lines[i].lstrip()
                    if not line.startswith('@'):
                        break
                    if line.startswith('@property'):
                        return (name, 'property', desc, '')
                    i -= 1
            if self.show_docstring:
                return (name,
                        type_,
                        comp.docstring(),
                        self.call_signature(comp)[1])
            else:
                return (name, type_) + self.call_signature(comp)

        return (name, type_, '', '')
dataset/ETHPy150Open zchee/deoplete-jedi/rplugin/python3/deoplete/sources/deoplete_jedi/server.py/Server.parse_completion/swapped operands of `>`