From 1050979bbf7efcbea2a7989ae8b65edb15f526dd Mon Sep 17 00:00:00 2001 From: Rok Mandeljc Date: Mon, 26 Oct 2020 13:07:47 +0100 Subject: [PATCH 1/2] tests: add import test for metpy Try importing metpy.plots instead of just metpy, as that triggers the search for colortables data, and thus uncovers more issues. --- requirements-test-libraries.txt | 1 + src/_pyinstaller_hooks_contrib/tests/test_libraries.py | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/requirements-test-libraries.txt b/requirements-test-libraries.txt index 3b412269..aafd39bc 100644 --- a/requirements-test-libraries.txt +++ b/requirements-test-libraries.txt @@ -16,6 +16,7 @@ iminuit==2.8.3 langdetect==1.0.9 mariadb==1.0.7; sys_platform != "darwin" markdown==3.3.4 +MetPy==1.1.0 mnemonic==0.20 msoffcrypto-tool==4.12.0 Office365-REST-Python-Client==2.3.8 diff --git a/src/_pyinstaller_hooks_contrib/tests/test_libraries.py b/src/_pyinstaller_hooks_contrib/tests/test_libraries.py index b7dd0af3..a57736b7 100644 --- a/src/_pyinstaller_hooks_contrib/tests/test_libraries.py +++ b/src/_pyinstaller_hooks_contrib/tests/test_libraries.py @@ -809,3 +809,11 @@ def test_folium(pyi_builder): import folium m = folium.Map(location=[0, 0], zoom_start=5) """) + + +@importorskip("metpy") +def test_metpy(pyi_builder): + # Import metpy.plots, which triggers search for colortables data. + pyi_builder.test_source(""" + import metpy.plots + """) From af87498ccff9cf8bd1df373c7afedfe45394fd14 Mon Sep 17 00:00:00 2001 From: Rok Mandeljc Date: Mon, 26 Oct 2020 14:14:08 +0100 Subject: [PATCH 2/2] hooks: add hook for metpy Basic hook that collects metadata and data files. --- news/60.new.rst | 1 + .../hooks/stdhooks/hook-metpy.py | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 news/60.new.rst create mode 100644 src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-metpy.py diff --git a/news/60.new.rst b/news/60.new.rst new file mode 100644 index 00000000..5e80f05c --- /dev/null +++ b/news/60.new.rst @@ -0,0 +1 @@ +Add hook for ``metpy``. diff --git a/src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-metpy.py b/src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-metpy.py new file mode 100644 index 00000000..d184d285 --- /dev/null +++ b/src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-metpy.py @@ -0,0 +1,21 @@ +# ------------------------------------------------------------------ +# Copyright (c) 2021 PyInstaller Development Team. +# +# This file is distributed under the terms of the GNU General Public +# License (version 2.0 or later). +# +# The full license is available in LICENSE.GPL.txt, distributed with +# this software. +# +# SPDX-License-Identifier: GPL-2.0-or-later +# ------------------------------------------------------------------ + +from PyInstaller.utils.hooks import copy_metadata, collect_data_files + +# MetPy requires metadata, because it queries its version via +# pkg_resources.get_distribution(__package__).version or, in newer +# versions, importlib.metadata.version(__package__) +datas = copy_metadata('metpy') + +# Collect data files +datas += collect_data_files('metpy')