Skip to content

stubgen drops default values for function arguments #13238

Closed

Description

@davidgilbertson

Bug Report

I have a file with some types defined (that I can't modify), and want to create a stub for this file so that I can fill out the remainder of the types.

So I run stubgen, and it creates draft stubs, but all the default parameter values that had been defined are lost.

.py source file:

def hash_pandas_object(
    obj: Index | DataFrame | Series,
    index: bool = True,
    encoding: str = "utf8",
    hash_key: str | None = _default_hash_key,
    categorize: bool = True,
) -> Series:

Generated .pyi file

def hash_pandas_object(
    obj: Union[Index, DataFrame, Series],
    index: bool = ...,
    encoding: str = ...,
    hash_key: Union[str, None] = ...,
    categorize: bool = ...,
) -> Series: ...

I understand that typically these default values are considered implementation code and don't 'belong' in a stub file, but nonetheless they are quite useful to me. For example, with a stub file present, IntelliJ will show me the signature from the stub, but now I've lost the information of what the default encoding is:
image

It would be nice to at least have an (opt-in) option when generating stubs to keep these default values.

Activity

  1. tmke8 commented on Jul 30, 2022

    @tmke8
    Contributor

    The title of the issue should probably be something like "stubgen drops default values for function arguments". Saying it "drops types" seems a bit misleading.

  2. changed the title [-]stubgen drops existing types[/-] [+]stubgen drops default values for function arguments[/+] on Jul 31, 2022
  3. davidgilbertson commented on Jul 31, 2022

    @davidgilbertson
    Author

    @thomkeh agreed, fixed.

  4. added a commit that references this issue on Jun 2, 2023
    4692138
  5. added a commit that references this issue on Nov 27, 2023
    e69c5cd
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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions