Skip to content

error: Cannot determine type of 'f3' #7552

Closed
@wugifer

Description

@wugifer

When I mix codes with 'import loop', 'class decorator', sometimes mypy cannot determine my function type:

$ mypy level1.py
level2.py:3: error: Cannot determine type of 'f3'

but run python ok:

$ python3 level1.py
$

Below are my codes:

$ cat level1.py
import  level2

$ cat level2.py
import level3

f3 = level3.f3

$ cat level3.py
from level4 import v4

class C3(object):
    def deco(self, func):
        def new_func():
            pass

        return new_func

obj = C3()

@obj.deco
def f3():
    pass

$ cat level4.py
import level2

v4 = 4

I have do some tests, here are the results:

  • level4.py removes 'v4=4', level3.py changes to 'import level4', mypy ok
  • level4.py removes 'import level2', mypy ok
  • level2.py changes to 'from level3 import f3', mypy ok
  • level3.py changes to non-class decorator, mypy ok

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions