diff options
-rw-r--r-- | sources/pyside2/PySide2/CMakeLists.txt | 5 | ||||
-rw-r--r-- | sources/pyside2/PySide2/__init__.py.in | 29 | ||||
-rw-r--r-- | sources/pyside2/PySide2/_utils.py.in | 289 | ||||
-rw-r--r-- | sources/pyside2/tests/pysidetest/CMakeLists.txt | 1 | ||||
-rw-r--r-- | sources/pyside2/tests/pysidetest/utils_test.py | 51 |
5 files changed, 9 insertions, 366 deletions
diff --git a/sources/pyside2/PySide2/CMakeLists.txt b/sources/pyside2/PySide2/CMakeLists.txt index 98cb00b0a..931842b00 100644 --- a/sources/pyside2/PySide2/CMakeLists.txt +++ b/sources/pyside2/PySide2/CMakeLists.txt @@ -10,9 +10,6 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/__init__.py.in" configure_file("${CMAKE_CURRENT_SOURCE_DIR}/_config.py.in" "${CMAKE_CURRENT_BINARY_DIR}/_config.py" @ONLY) -configure_file("${CMAKE_CURRENT_SOURCE_DIR}/_utils.py.in" - "${CMAKE_CURRENT_BINARY_DIR}/_utils.py" @ONLY) - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/support/__init__.py" "${CMAKE_CURRENT_BINARY_DIR}/support/__init__.py" COPYONLY) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/support/signature/__init__.py" @@ -51,8 +48,6 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/__init__.py" DESTINATION "${PYTHON_SITE_PACKAGES}/${BINDING_NAME}${pyside2_SUFFIX}") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/_config.py" DESTINATION "${PYTHON_SITE_PACKAGES}/${BINDING_NAME}${pyside2_SUFFIX}") -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/_utils.py - DESTINATION "${PYTHON_SITE_PACKAGES}/${BINDING_NAME}${pyside2_SUFFIX}") install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/typesystem_templates.xml DESTINATION share/PySide2${pyside_SUFFIX}/typesystems) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pyside2_global.h diff --git a/sources/pyside2/PySide2/__init__.py.in b/sources/pyside2/PySide2/__init__.py.in index 77390af46..92e52a81a 100644 --- a/sources/pyside2/PySide2/__init__.py.in +++ b/sources/pyside2/PySide2/__init__.py.in @@ -12,31 +12,20 @@ __version_info__ = (@BINDING_API_MAJOR_VERSION@, @BINDING_API_MINOR_VERSION@, def _setupQtDirectories(): import sys import os - from . import _utils - os.environ["PYSIDE_PACKAGE_DIR"] = os.path.abspath(os.path.dirname(__file__)) + pyside_package_dir = os.path.abspath(os.path.dirname(__file__)) + # Used by signature module. + os.environ["PYSIDE_PACKAGE_DIR"] = pyside_package_dir - pysideDir = _utils.get_pyside_dir() - - # Register PySide qt.conf to override the built-in - # configuration variables, if there is no default qt.conf in - # executable folder - prefix = pysideDir.replace('\\', '/') - _utils.register_qt_conf(prefix=prefix, - binaries=prefix, - plugins=prefix+"/plugins", - imports=prefix+"/imports", - translations=prefix+"/translations") - - # On Windows add the PySide\openssl folder (if it exists) to the - # PATH so the SSL DLLs can be found when Qt tries to dynamically - # load them. Tell Qt to load them and then reset the PATH. + # On Windows add the PySide2\openssl folder (if it exists) to the + # PATH so that the SSL DLLs can be found when Qt tries to dynamically + # load them. Tell Qt to load them and then reset the PATH. if sys.platform == 'win32': - opensslDir = os.path.join(pysideDir, 'openssl') - if os.path.exists(opensslDir): + openssl_dir = os.path.join(pyside_package_dir, 'openssl') + if os.path.exists(openssl_dir): path = os.environ['PATH'] try: - os.environ['PATH'] = opensslDir + os.pathsep + path + os.environ['PATH'] = os.path.join(openssl_dir, path) try: from . import QtNetwork except ImportError: diff --git a/sources/pyside2/PySide2/_utils.py.in b/sources/pyside2/PySide2/_utils.py.in deleted file mode 100644 index 64a5a0567..000000000 --- a/sources/pyside2/PySide2/_utils.py.in +++ /dev/null @@ -1,289 +0,0 @@ -############################################################################# -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of PySide2. -## -## $QT_BEGIN_LICENSE:LGPL$ -## Commercial License Usage -## Licensees holding valid commercial Qt licenses may use this file in -## accordance with the commercial license agreement provided with the -## Software or, alternatively, in accordance with the terms contained in -## a written agreement between you and The Qt Company. For licensing terms -## and conditions see https://www.qt.io/terms-conditions. For further -## information use the contact form at https://www.qt.io/contact-us. -## -## GNU Lesser General Public License Usage -## Alternatively, this file may be used under the terms of the GNU Lesser -## General Public License version 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# - -import sys -import os -import fnmatch - - -if sys.platform == 'win32': - # On Windows get the PySide package path in case sensitive format. - # Even if the file system on Windows is case insensitive, - # some parts in Qt environment such as qml imports path, - # requires to be in case sensitive format. - import ctypes - from ctypes import POINTER, WinError, sizeof, byref, create_unicode_buffer - from ctypes.wintypes import MAX_PATH, LPCWSTR, LPWSTR, DWORD - - GetShortPathNameW = ctypes.windll.kernel32.GetShortPathNameW - GetShortPathNameW.argtypes = [LPCWSTR, LPWSTR, DWORD] - GetShortPathNameW.restype = DWORD - - GetLongPathNameW = ctypes.windll.kernel32.GetLongPathNameW - GetLongPathNameW.argtypes = [LPCWSTR, LPWSTR, DWORD] - GetLongPathNameW.restype = DWORD - - PY_2 = sys.version_info[0] < 3 - - if PY_2: - def u(x): - return unicode(x) - def u_fs(x): - return unicode(x, sys.getfilesystemencoding()) - else: - def u(x): - return x - def u_fs(x): - return x - - def _get_win32_short_name(s): - """ Returns short name """ - buf_size = MAX_PATH - for i in range(2): - buf = create_unicode_buffer(u('\0') * (buf_size + 1)) - r = GetShortPathNameW(u_fs(s), buf, buf_size) - if r == 0: - raise WinError() - if r < buf_size: - if PY_2: - return buf.value.encode(sys.getfilesystemencoding()) - return buf.value - buf_size = r - raise WinError() - - def _get_win32_long_name(s): - """ Returns long name """ - buf_size = MAX_PATH - for i in range(2): - buf = create_unicode_buffer(u('\0') * (buf_size + 1)) - r = GetLongPathNameW(u_fs(s), buf, buf_size) - if r == 0: - raise WinError() - if r < buf_size: - if PY_2: - return buf.value.encode(sys.getfilesystemencoding()) - return buf.value - buf_size = r - raise WinError() - - def _get_win32_case_sensitive_name(s): - """ Returns long name in case sensitive format """ - path = _get_win32_long_name(_get_win32_short_name(s)) - return path - - def get_pyside_dir(): - try: - from . import QtCore - except ImportError: - return _get_win32_case_sensitive_name(os.path.abspath(os.path.dirname(__file__))) - else: - return _get_win32_case_sensitive_name(os.path.abspath(os.path.dirname(QtCore.__file__))) - -else: - def get_pyside_dir(): - try: - from . import QtCore - except ImportError: - return os.path.abspath(os.path.dirname(__file__)) - else: - return os.path.abspath(os.path.dirname(QtCore.__file__)) - - -def _filter_match(name, patterns): - for pattern in patterns: - if pattern is None: - continue - if fnmatch.fnmatch(name, pattern): - return True - return False - - -def _dir_contains(dir, filter): - names = os.listdir(dir) - for name in names: - srcname = os.path.join(dir, name) - if not os.path.isdir(srcname) and _filter_match(name, filter): - return True - return False - - -def _rcc_write_number(out, number, width): - dividend = 1 - if width == 2: - dividend = 256 - elif width == 3: - dividend = 65536 - elif width == 4: - dividend = 16777216 - while dividend >= 1: - tmp = int(number / dividend) - out.append("%02x" % tmp) - number -= tmp * dividend - dividend = int(dividend / 256) - - -def _rcc_write_data(out, data): - _rcc_write_number(out, len(data), 4) - for d in data: - _rcc_write_number(out, ord(d), 1) - - -def _get_qt_conf_resource(prefix, binaries, plugins, imports, translations): - """ - Generate Qt resource with embedded qt.conf - """ - qt_conf_template = "\ -[Paths]\x0d\x0a\ -Prefix = %(prefix)s\x0d\x0a\ -Binaries = %(binaries)s\x0d\x0a\ -Imports = %(imports)s\x0d\x0a\ -Plugins = %(plugins)s\x0d\x0a\ -Translations = %(translations)s" - - rc_data_input = qt_conf_template % {"prefix": prefix, - "binaries": binaries, - "plugins": plugins, - "imports": imports, - "translations": translations} - rc_data_ouput = [] - _rcc_write_data(rc_data_ouput, rc_data_input) - - # The rc_struct and rc_name was pre-generated by pyside-rcc from file: - # <!DOCTYPE RCC><RCC version="1.0"> - # <qresource> - # <file>qt/etc/qt.conf</file> - # </qresource> - # </RCC> - PY_2 = sys.version_info[0] < 3 - if PY_2: - rc_struct = "\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x0a\x00\x02\x00\x00\ -\x00\x01\x00\x00\x00\x03\x00\x00\x00\x16\x00\x00\x00\x00\x00\x01\x00\x00\ -\x00\x00" - rc_name = "\ -\x00\x02\x00\x00\x07\x84\x00q\x00t\x00\x03\x00\x00l\xa3\x00e\x00t\x00c\x00\ -\x07\x08t\xa6\xa6\x00q\x00t\x00.\x00c\x00o\x00n\x00f" - rc_data = "".join(rc_data_ouput).decode('hex') - else: - rc_struct = b"\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x0a\x00\x02\x00\x00\ -\x00\x01\x00\x00\x00\x03\x00\x00\x00\x16\x00\x00\x00\x00\x00\x01\x00\x00\ -\x00\x00" - rc_name = b"\ -\x00\x02\x00\x00\x07\x84\x00q\x00t\x00\x03\x00\x00l\xa3\x00e\x00t\x00c\x00\ -\x07\x08t\xa6\xa6\x00q\x00t\x00.\x00c\x00o\x00n\x00f" - rc_data = bytes.fromhex("".join(rc_data_ouput)) - - return rc_struct, rc_name, rc_data - - -def register_qt_conf(prefix, binaries, plugins, imports, translations, - force=False): - """ - Register qt.conf in Qt resource system to override the built-in - configuration variables, if there is no default qt.conf in - executable folder and another qt.conf is not already registered in - Qt resource system. - """ - try: - from . import QtCore - except ImportError: - return - - # Check folder structure - if not prefix or not os.path.exists(prefix): - if force: - raise RuntimeError("Invalid prefix path specified: %s" % prefix) - else: - return - if not binaries or not os.path.exists(binaries): - if force: - raise RuntimeError("Invalid binaries path specified: %s" % binaries) - else: - return - else: - # Check if required Qt libs exists in binaries folder - if sys.platform == 'win32': - pattern = ["Qt5Core*.dll"] - else: - pattern = ["libQtCore.so.*"] - if not _dir_contains(binaries, pattern): - if force: - raise RuntimeError("QtCore lib not found in folder: %s" % \ - binaries) - else: - return - if not plugins or not os.path.exists(plugins): - if force: - raise RuntimeError("Invalid plugins path specified: %s" % plugins) - else: - return - if not imports or not os.path.exists(imports): - if force: - raise RuntimeError("Invalid imports path specified: %s" % imports) - else: - return - if not translations or not os.path.exists(translations): - if force: - raise RuntimeError("Invalid translations path specified: %s" \ - % translations) - else: - return - - # Check if there is no default qt.conf in executable folder - exec_prefix = os.path.dirname(sys.executable) - qtconf_path = os.path.join(exec_prefix, 'qt.conf') - if os.path.exists(qtconf_path) and not force: - return - - # Check if another qt.conf is not already registered in Qt resource system - if QtCore.QFile.exists(":/qt/etc/qt.conf") and not force: - return - - # Keep these variables alive - global rc_struct, rc_name, rc_data - rc_struct, rc_name, rc_data = _get_qt_conf_resource(prefix, binaries, - plugins, imports, - translations) - QtCore.qRegisterResourceData(0x01, rc_struct, rc_name, rc_data) - - # Initialize the Qt library by querying the QLibraryInfo - prefixPath = QtCore.QLibraryInfo.location(QtCore.QLibraryInfo.PrefixPath) diff --git a/sources/pyside2/tests/pysidetest/CMakeLists.txt b/sources/pyside2/tests/pysidetest/CMakeLists.txt index 0715777bb..8c86a0ab4 100644 --- a/sources/pyside2/tests/pysidetest/CMakeLists.txt +++ b/sources/pyside2/tests/pysidetest/CMakeLists.txt @@ -122,7 +122,6 @@ PYSIDE_TEST(signalemissionfrompython_test.py) PYSIDE_TEST(version_test.py) PYSIDE_TEST(typedef_signal_test.py) PYSIDE_TEST(bug_1016.py) -PYSIDE_TEST(utils_test.py) PYSIDE_TEST(mixin_signal_slots_test.py) PYSIDE_TEST(signal_slot_warning.py) PYSIDE_TEST(all_modules_load_test.py) diff --git a/sources/pyside2/tests/pysidetest/utils_test.py b/sources/pyside2/tests/pysidetest/utils_test.py deleted file mode 100644 index 30f283312..000000000 --- a/sources/pyside2/tests/pysidetest/utils_test.py +++ /dev/null @@ -1,51 +0,0 @@ -############################################################################# -## -## Copyright (C) 2016 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the test suite of PySide2. -## -## $QT_BEGIN_LICENSE:GPL-EXCEPT$ -## Commercial License Usage -## Licensees holding valid commercial Qt licenses may use this file in -## accordance with the commercial license agreement provided with the -## Software or, alternatively, in accordance with the terms contained in -## a written agreement between you and The Qt Company. For licensing terms -## and conditions see https://www.qt.io/terms-conditions. For further -## information use the contact form at https://www.qt.io/contact-us. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 3 as published by the Free Software -## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# - -import unittest -import sys -import os - - -if sys.platform == 'win32': - from PySide2._utils import _get_win32_case_sensitive_name - - class Win32UtilsTest(unittest.TestCase): - def testWin32CaseSensitiveName(self): - from tempfile import mkdtemp - caseSensitiveName = 'CaseSensitiveName' - tmpdir = mkdtemp(caseSensitiveName) - try: - path = _get_win32_case_sensitive_name(tmpdir.lower()) - self.assertTrue(path.endswith(caseSensitiveName)) - finally: - if os.path.exists(tmpdir): - os.rmdir(tmpdir) - - -if __name__ == '__main__': - unittest.main() |