Skip to content

importlib.reload not updated when only change a little bit code layout #120932

@BinBrian

Description

@BinBrian

Bug report

Bug description:

import os
import importlib

TEST_MODULE_NAME = "tmod"


def WriteCodeContext(text: str, filePath):
    with open(filePath, "w") as f:
        f.write(text)
        f.flush()


scriptDir = os.path.abspath(os.path.dirname(__file__))
testFilePath = os.path.join(scriptDir, f"{TEST_MODULE_NAME}.py")

source = """
a = 1
"""

target = """
a = 2
"""

WriteCodeContext(source, testFilePath)
mod = importlib.import_module(f"{TEST_MODULE_NAME}")

old = mod.a

WriteCodeContext(target, testFilePath)
importlib.reload(mod)

new = mod.a

assert old != new  # failed, 1 != 1

When I added a small number of comments, the results changed

# ... ...

target = """
a = 2 # some comments
"""

# ... ...

assert old != new  # pass, 1 != 2

CPython versions tested on:

3.8

Operating systems tested on:

Windows

Linked PRs

Metadata

Metadata

Labels

type-bugAn unexpected behavior, bug, or error

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions