Skip to content

networkx.algorithms.connectivity.edge_kcomponents.EdgeComponentAuxGraph.construct first param is not cls at runtime - #13587

Closed
Avasam wants to merge 2 commits into
python:mainfrom
Avasam:EdgeComponentAuxGraph.construct-first-param
Closed

Avasam wants to merge 2 commits into
python:mainfrom
Avasam:EdgeComponentAuxGraph.construct-first-param

Conversation

@Avasam

@Avasam Avasam commented Mar 6, 2025 •

Copy link
Copy Markdown
Collaborator

Mainly just testing if the following mypy/stubtest issue is solved: python/mypy#16583

@github-actions

github-actions Bot commented Mar 6, 2025

Copy link
Copy Markdown
Contributor

According to mypy_primer, this change has no effect on the checked open source code. 🤖🎉

JelleZijlstra pushed a commit to python/mypy that referenced this pull request Oct 19, 2026
…d cls (#21941)

fixes #16583

the first parameter of a classmethod can be called anything . networkx
really does write
`def construct(EdgeComponentAuxGraph, G)` . stubtest checked that name
against a list of four
and raised `StubtestFailure` when it did not match :

```
StubtestFailure: unexpected class parameter name 'EdgeComponentAuxGraph' in pkg.EdgeComponentAuxGraph.construct
```

that is not a normal stubtest error , it stops the whole run , so one
oddly named parameter
takes out stub checking for a whole distribution . that is what happens
on
python/typeshed#13587 .

the name is never used for anything . the line right under it drops the
argument by position ,
so the check was not guarding the code below it . it looks at the
argument kind now instead .

while testing i found a second way onto the same line . a stub written
`def f(*args)` under
`@classmethod` also crashed . there is nothing bound to drop in that
case , and
`inspect.signature` of the runtime classmethod keeps the star argument
too , so both sides
already match and it returns unchanged . dropping it would have made a
false mismatch .

two cases added to `test_static_class_method` , one for the odd name and
one for `*args` .
both fail on master with the crash above .

`teststubtest.py` and `teststubgen.py` give 440 passed , 1 skipped , 2
xfailed . self check
on the two files is clean , and so are black and ruff .

small heads up , #21863 adds its own cases to `test_static_class_method`
starting on the same
line , so whichever goes in second will need a rebase . it is only the
test file , that one
changes `verify_var` and this one changes
`_resolve_funcitem_from_decorator` , so they do not
touch the same code .
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant