From 86a6eb7fc7d04d9003bb46789b16b7f48c06a8d1 Mon Sep 17 00:00:00 2001 From: eric15342335 <70310617+eric15342335@users.noreply.github.com> Date: Wed, 8 Sep 2021 00:33:16 +0800 Subject: [PATCH] Update hiddenimports for pymssql 2.2.0+ (#315) * hook: fix pymssql._mssql hidden cython extension import * Add decimal as an hidden import --- news/315.update.rst | 1 + requirements-test-libraries.txt | 1 + .../hooks/stdhooks/hook-pymssql.py | 11 +++++++++-- .../tests/test_libraries.py | 7 +++++++ 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 news/315.update.rst diff --git a/news/315.update.rst b/news/315.update.rst new file mode 100644 index 00000000..916ae74d --- /dev/null +++ b/news/315.update.rst @@ -0,0 +1 @@ +Update hiddenimports for ``pymssql > 2.1.5``. diff --git a/requirements-test-libraries.txt b/requirements-test-libraries.txt index f165008c..5b5b5c38 100644 --- a/requirements-test-libraries.txt +++ b/requirements-test-libraries.txt @@ -34,6 +34,7 @@ pyexcelerate==0.10.0 pylint==2.10.2 pyusb==1.2.1 pynput==1.7.3 +pymssql==2.2.2 pystray==0.17.3 pyzmq==22.2.1 PyQt5==5.15.4 diff --git a/src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pymssql.py b/src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pymssql.py index dd53bf7e..d9c4edb6 100644 --- a/src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pymssql.py +++ b/src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-pymssql.py @@ -1,5 +1,5 @@ # ------------------------------------------------------------------ -# Copyright (c) 2020 PyInstaller Development Team. +# Copyright (c) 2020-2021 PyInstaller Development Team. # # This file is distributed under the terms of the GNU General Public # License (version 2.0 or later). @@ -10,4 +10,11 @@ # SPDX-License-Identifier: GPL-2.0-or-later # ------------------------------------------------------------------ -hiddenimports = ['_mssql'] +from PyInstaller.utils.hooks import is_module_satisfies + +hiddenimports = ["decimal"] +# In newer versions of pymssql, the _mssql was under pymssql +if is_module_satisfies("pymssql > 2.1.5"): + hiddenimports += ["pymssql._mssql", "uuid"] +else: + hiddenimports += ["_mssql"] diff --git a/src/_pyinstaller_hooks_contrib/tests/test_libraries.py b/src/_pyinstaller_hooks_contrib/tests/test_libraries.py index 10ddda3e..92a7efb6 100644 --- a/src/_pyinstaller_hooks_contrib/tests/test_libraries.py +++ b/src/_pyinstaller_hooks_contrib/tests/test_libraries.py @@ -787,3 +787,10 @@ def test_tableauhyperapi(pyi_builder): pyi_builder.test_source(""" import tableauhyperapi """) + + +@importorskip("pymssql") +def test_pymssql(pyi_builder): + pyi_builder.test_source(""" + import pymssql + """)