Skip to content

Incorrect "Module ... has no attribute" #7423

Closed
@be9

Description

@be9

I've created a full repro here.

In short, there's a main module which imports some names from another package:

# planner/web.py
from planner.scheduling import RandyScheduleBuilder, ScheduleBuilder, book_campaign, cancel_campaign, reserve_campaign
#  ...
# planner/scheduling/__init__.py
from planner.scheduling.reserve import (
    book_campaign,
    cancel_campaign,
    reserve_campaign,
)
from planner.scheduling.make_schedule import (
    LowLevelSchedulingStats,
    make_schedule,
)

from planner.scheduling.lowlevel.base import ScheduleBuilder, ScheduleBuilderMaker
from planner.scheduling.lowlevel.randy import RandyScheduleBuilder

All these names are correct, however mypy --strict -p planner shows errors:

planner/web.py:1: error: Module 'planner.scheduling' has no attribute 'RandyScheduleBuilder'; maybe "ScheduleBuilder"?
planner/web.py:1: error: Module 'planner.scheduling' has no attribute 'ScheduleBuilder'; maybe "ScheduleBuilderMaker" or "RandyScheduleBuilder"?
planner/web.py:1: error: Module 'planner.scheduling' has no attribute 'book_campaign'
planner/web.py:1: error: Module 'planner.scheduling' has no attribute 'cancel_campaign'
planner/web.py:1: error: Module 'planner.scheduling' has no attribute 'reserve_campaign'

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