Skip to content

Docstrings confuse autocompletion #966

Closed

Description

@Andriamanitra

I ran into an issue where the autocompletion starts thinking an example from the docstring of the function is the signature of the function.

The original code where I ran into this was a bit more complicated but I managed to create a somewhat minimal reproduction (the inheritance is significant, without inheriting it works correctly):

from collections.abc import Sequence


class C(Sequence):
    @classmethod
    def cmethod(cls, number: int, lst: list[int] = []):
        """
        Return a list of numbers

        Example:
        ========
        C.cmethod(1337, [1, 2]) # => [1, 2, 1337]
        """
        return lst + [number]

image

The autocompletion (and the documentation pop-up) seems to not realize that 1337 and [1 and 2 are literals rather than parameter names, and the cls parameter for a class method gets turned into obj for whatever reason.

Activity

  1. added a commit that references this issue on Aug 25, 2022
  2. sebastinas commented on Aug 25, 2022

    @sebastinas
    Contributor

    There are multiple issues as far as I can tell. First issue is that parsing of default values is broken in with type annotations.

  3. sebastinas commented on Aug 25, 2022

    @sebastinas
    Contributor

    Indeed, fixlongargs is broken with type annotations.

  4. added this to the release-0.23 milestone on Aug 29, 2022
  5. added a commit that references this issue on Feb 25, 2026
    1bc255b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions