hook-transformers.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. from PyInstaller.utils.hooks import (
  2. copy_metadata,
  3. get_module_attribute,
  4. is_module_satisfies,
  5. logger,
  6. )
  7. datas = []
  8. # At run-time, `transformers` queries the metadata of several packages to check for their presence. The list of required
  9. # (core) packages is stored as `transformers.dependency_versions_check.pkgs_to_check_at_runtime`. However, there is more
  10. # comprehensive list of dependencies and their versions available in `transformers.dependency_versions_table.deps`,
  11. # which includes non-core dependencies. Unfortunately, we cannot foresee which of those the user will actually require,
  12. # so we collect metadata for all listed dists that are available in the build environment, in order to make them visible
  13. # to `transformers` at run-time.
  14. try:
  15. dependencies = get_module_attribute(
  16. 'transformers.dependency_versions_table',
  17. 'deps',
  18. )
  19. except Exception:
  20. logger.warning(
  21. "hook-transformers: failed to query dependency table (transformers.dependency_versions_table.deps)!",
  22. exc_info=True,
  23. )
  24. dependencies = {}
  25. for dependency_name, dependency_req in dependencies.items():
  26. if not is_module_satisfies(dependency_req):
  27. continue
  28. try:
  29. datas += copy_metadata(dependency_name)
  30. except Exception:
  31. pass
  32. # Collect source .py files for JIT/torchscript. Requires PyInstaller >= 5.3, no-op in older versions.
  33. module_collection_mode = 'pyz+py'