46 lines
1.5 KiB
Python
46 lines
1.5 KiB
Python
"""A collection of functions which are triggered automatically by finder when
|
|
importlib namespace is included.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import TYPE_CHECKING
|
|
|
|
from cx_Freeze._compat import IS_MINGW, IS_WINDOWS
|
|
|
|
if TYPE_CHECKING:
|
|
from cx_Freeze.finder import ModuleFinder
|
|
from cx_Freeze.module import Module
|
|
|
|
|
|
def load_importlib(_, module: Module) -> None:
|
|
"""The module shouldn't import internal names."""
|
|
module.exclude_names.add("_frozen_importlib")
|
|
module.exclude_names.add("_frozen_importlib_external")
|
|
|
|
|
|
def load_importlib_abc(_, module: Module) -> None:
|
|
"""The module shouldn't import internal names."""
|
|
module.exclude_names.add("_frozen_importlib")
|
|
module.exclude_names.add("_frozen_importlib_external")
|
|
|
|
|
|
def load_importlib__bootstrap(_, module: Module) -> None:
|
|
"""The module shouldn't import internal names."""
|
|
module.exclude_names.add("_frozen_importlib_external")
|
|
|
|
|
|
def load_importlib__bootstrap_external(_, module: Module) -> None:
|
|
"""Ignore modules not found in current OS."""
|
|
if IS_WINDOWS:
|
|
module.exclude_names.add("posix")
|
|
elif not IS_MINGW:
|
|
module.exclude_names.update(("nt", "winreg"))
|
|
|
|
|
|
def load_importlib_metadata(finder: ModuleFinder, module: Module) -> None:
|
|
"""The importlib.metadata module should filter import names."""
|
|
if module.name == "importlib.metadata":
|
|
module.exclude_names.add("pep517")
|
|
finder.include_module("email")
|