Skip to content

Commit f00fbad

Browse files
committed
Add PyInstaller hook
1 parent 703eff2 commit f00fbad

File tree

3 files changed

+51
-1
lines changed

3 files changed

+51
-1
lines changed

setup.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,5 +52,8 @@ def run(self):
5252
"PyQt5" if sys.version_info.major >= 3 else "python_qt5",
5353
"numpy-stl", "namegenerator", "PILLOW"],
5454
},
55-
cmdclass={"build": Build}
55+
cmdclass={"build": Build},
56+
entry_points={
57+
"pyinstaller40": ["hook-dirs = vtkplotlib.data:_get_hooks_dir"]
58+
},
5659
) # yapf:disable
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# -*- coding: utf-8 -*-
2+
# =============================================================================
3+
# Created on Tue Sep 08 23:19:14 2020
4+
#
5+
# @author: Brénainn
6+
#
7+
# hook-vtkplotlib.py
8+
# Copyright (C) 2019-2020 Brénainn Woodsend
9+
#
10+
# This program is free software: you can redistribute it and/or modify
11+
# it under the terms of the GNU General Public License as published by
12+
# the Free Software Foundation, either version 3 of the License, or
13+
# (at your option) any later version.
14+
#
15+
# This program is distributed in the hope that it will be useful,
16+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
17+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18+
# GNU General Public License for more details.
19+
#
20+
# You should have received a copy of the GNU General Public License
21+
# along with this program. If not, see <https://www.gnu.org/licenses/>.
22+
# =============================================================================
23+
"""
24+
Hook for PyInstaller.
25+
"""
26+
27+
from PyInstaller.utils.hooks import collect_data_files
28+
29+
datas = []
30+
31+
# These lines can be removed to skip specific unwanted data files.
32+
33+
# Icon used by QtFigure2.add_screenshot_button().
34+
datas += collect_data_files("vtkplotlib", includes=["**/screenshot.png"])
35+
36+
# Icons used by QtFigure2.add_preset_views().
37+
datas += collect_data_files("vtkplotlib", includes=["**/*.jpg"])
38+
39+
# The rabbit STL. Only used for demonstrating.
40+
# datas += collect_data_files("vtkplotlib", includes=["**/rabbit/"])

vtkplotlib/data/__init__.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,18 @@ def get_rabbit_stl():
4242
ICONS_FOLDER = DATA_FOLDER / "icons"
4343
ICONS = {i.stem: str(i) for i in ICONS_FOLDER.glob("*.jpg")}
4444

45+
_HOOKS_DIR = DATA_FOLDER.with_name("__PyInstaller")
46+
47+
48+
def _get_hooks_dir():
49+
return [str(_HOOKS_DIR)]
50+
4551

4652
def assert_ok():
4753
assert ICONS_FOLDER.is_dir()
4854
assert MODELS_FOLDER.is_dir()
4955
assert Path(get_rabbit_stl()).exists()
56+
assert _HOOKS_DIR.exists()
5057

5158

5259
if __name__ == "__main__":

0 commit comments

Comments
 (0)