29 lines
1020 B
Python
29 lines
1020 B
Python
"""A collection of functions which are triggered automatically by finder when
|
|
torchvision package is included.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import TYPE_CHECKING
|
|
|
|
if TYPE_CHECKING:
|
|
from cx_Freeze.finder import ModuleFinder
|
|
from cx_Freeze.module import Module
|
|
|
|
|
|
def load_torchvision(finder: ModuleFinder, module: Module) -> None:
|
|
"""Hook for torchvision."""
|
|
module_path = module.file.parent
|
|
source_dir = module_path.parent / f"{module.name}.libs"
|
|
if source_dir.exists():
|
|
target_dir = f"lib/{source_dir.name}"
|
|
for source in source_dir.iterdir():
|
|
finder.lib_files[source] = f"{target_dir}/{source.name}"
|
|
|
|
# include source of torchvision.models
|
|
site_packages_path = module_path.parent
|
|
source_path = site_packages_path / "torchvision/models"
|
|
for source in source_path.rglob("*.py"): # type: Path
|
|
target = "lib" / source.relative_to(site_packages_path)
|
|
finder.include_files(source, target)
|