Skip to content

Commit

Permalink
add pyinstaller hooks
Browse files Browse the repository at this point in the history
  • Loading branch information
SoulMelody committed Sep 15, 2024
1 parent 54c44e1 commit 2e36fc9
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 23 deletions.
5 changes: 5 additions & 0 deletions libresvip/__pyinstaller/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from libresvip.core.constants import pkg_dir


def get_hook_dirs() -> list[str]:
return [str(pkg_dir / "__pyinstaller")]
15 changes: 15 additions & 0 deletions libresvip/__pyinstaller/hook-libresvip.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from PyInstaller.utils.hooks import collect_data_files, collect_submodules # noqa: N999

from libresvip.core.constants import pkg_dir

hiddenimports = (
collect_submodules("libresvip.core")
+ collect_submodules("libresvip.model")
+ collect_submodules("libresvip.utils")
)

datas = [
(str(pkg_dir / "middlewares"), "libresvip/middlewares"),
(str(pkg_dir / "plugins"), "libresvip/plugins"),
*collect_data_files("libresvip", excludes=["__pyinstaller"]),
]
11 changes: 4 additions & 7 deletions packaging/libresvip-web.spec
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ sys.modules['FixTk'] = None

import nicegui
import shellingham
from PyInstaller.utils.hooks import collect_data_files, collect_entry_point, collect_submodules
from PyInstaller.utils.hooks import collect_data_files, collect_entry_point
from PyInstaller.utils.misc import is_win

from libresvip.core.constants import pkg_dir
Expand All @@ -31,10 +31,7 @@ a = Analysis(
os.path.join(nicegui.__path__[0], os.pardir)
],
binaries=[],
datas=[
(str(pkg_dir / "middlewares"), "libresvip/middlewares"),
(str(pkg_dir / "plugins"), "libresvip/plugins"),
] + collect_data_files("libresvip") + collect_data_files("nicegui") + collect_data_files("xsdata") + collect_entry_point("xsdata.plugins.class_types")[0],
datas=collect_data_files("nicegui") + collect_data_files("xsdata") + collect_entry_point("xsdata.plugins.class_types")[0],
hiddenimports=[
"bidict",
"construct_typed",
Expand All @@ -55,8 +52,8 @@ a = Analysis(
"xsdata_pydantic.fields",
"xsdata_pydantic.hooks.class_type",
"zstandard",
] + collect_submodules("libresvip.core") + collect_submodules("libresvip.model") + collect_submodules("libresvip.utils"),
hookspath=[],
],
hookspath=[pkg_dir / "__pyinstaller"],
hooksconfig={},
runtime_hooks=[],
excludes=[
Expand Down
23 changes: 8 additions & 15 deletions packaging/libresvip.spec
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ sys.modules['FixTk'] = None
import libresvip
import PySide6
import shellingham
from PyInstaller.utils.hooks import collect_data_files, collect_entry_point, collect_submodules
from PyInstaller.utils.hooks import collect_data_files, collect_entry_point
from PyInstaller.utils.misc import is_win

from libresvip.core.constants import pkg_dir
Expand All @@ -31,14 +31,10 @@ if not (is_win and platform.machine() == "ARM64"):
cli_a = Analysis(
['../libresvip/cli/__main__.py'],
pathex=[
os.path.join(os.__file__, os.pardir),
os.path.join(PySide6.__path__[0], os.pardir)
os.path.join(os.__file__, os.pardir)
],
binaries=[],
datas=[
(str(pkg_dir / "middlewares"), "libresvip/middlewares"),
(str(pkg_dir / "plugins"), "libresvip/plugins"),
] + collect_data_files("libresvip") + collect_data_files("xsdata") + collect_entry_point("xsdata.plugins.class_types")[0],
datas=collect_data_files("xsdata") + collect_entry_point("xsdata.plugins.class_types")[0],
hiddenimports=[
"bidict",
"construct_typed",
Expand All @@ -58,8 +54,8 @@ if not (is_win and platform.machine() == "ARM64"):
"xsdata_pydantic.fields",
"xsdata_pydantic.hooks.class_type",
"zstandard",
] + collect_submodules("libresvip.core") + collect_submodules("libresvip.model") + collect_submodules("libresvip.utils"),
hookspath=[],
],
hookspath=[pkg_dir / "__pyinstaller"],
hooksconfig={},
runtime_hooks=[],
excludes=[
Expand Down Expand Up @@ -123,10 +119,7 @@ gui_a = Analysis(
os.path.join(PySide6.__path__[0], os.pardir)
],
binaries=[],
datas=[
(str(pkg_dir / "middlewares"), "libresvip/middlewares"),
(str(pkg_dir / "plugins"), "libresvip/plugins"),
] + collect_data_files("libresvip") + collect_data_files("desktop_notifier") + collect_data_files("fonticon_mdi7") + collect_data_files("xsdata") + collect_entry_point("xsdata.plugins.class_types")[0],
datas=collect_data_files("desktop_notifier") + collect_data_files("fonticon_mdi7") + collect_data_files("xsdata") + collect_entry_point("xsdata.plugins.class_types")[0],
hiddenimports=[
"bidict",
"construct_typed",
Expand All @@ -146,8 +139,8 @@ gui_a = Analysis(
"xsdata_pydantic.fields",
"xsdata_pydantic.hooks.class_type",
"zstandard",
] + collect_submodules("libresvip.core") + collect_submodules("libresvip.model") + collect_submodules("libresvip.utils"),
hookspath=[],
],
hookspath=[pkg_dir / "__pyinstaller"],
hooksconfig={},
runtime_hooks=[],
excludes=[
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ test = ["pytest>=8.3.3", "pytest-datadir>=1.5.0"]

[tool.pdm.build]
includes = ["libresvip"]
excludes = ["tests", "libresvip/res/qml/**", "libresvip/res/locales/*.ts", "libresvip/**/*.po", "**/.mypy_cache"]
excludes = ["tests", "libresvip/__pyinstaller/*", "libresvip/res/qml/**", "libresvip/res/locales/*.ts", "libresvip/**/*.po", "**/.mypy_cache"]

[tool.pytest.ini_options]
addopts = "-s -p no:warnings"
Expand Down

0 comments on commit 2e36fc9

Please sign in to comment.